树莓派3搭建迅雷远程下载服务器

2017/10/15 树莓派

准备工作

  • 树莓派3一个,并安装好 raspberrypi 操作系统,我是用 NOOBS 安装的最新版本的操作系统,如下:
$ uname -a
Linux raspberrypi 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linux
  • 一个容量4G以上的U盘或者移动硬盘(由于树莓派TF卡安装完操作系统后剩余空间已不多,因此需要使用外接存储来保存下载的文件会比较合适,这里我实验使用的是一个32G的U盘,文件系统采用NTFS格式,这个也是目前比较通用的格式)

  • 迅雷 Xware 版本:Xware1.0.31_armel_v5te_glibc

安装步骤

安装迅雷

$ mkdir -p /home/pi/xunlei

$ unzip Xware1.0.31_armel_v5te_glibc.zip -d /home/pi/xunlei

$ cd /home/pi/xunlei

# 启动迅雷
$ sudo /home/pi/xunlei/portal
initing...
try stopping xunlei service first...
setting xunlei runtime env...
port: 9000 is usable.

YOUR CONTROL PORT IS: 9000

starting xunlei service...
etm path: /home/pi/xunlei
execv: /home/pi/xunlei/lib/ETMDaemon.

getting xunlei service info...
Connecting to 127.0.0.1:9000 (127.0.0.1:9000)

THE ACTIVE CODE IS: kxauqz

go to http://yuancheng.xunlei.com, bind your device with the active code.
finished.

稍等片刻,会在最后输出一个激活码,如:kxauqz

绑定迅雷远程下载

使用迅雷帐号登录迅雷远程下载,登录之后,左侧会有一个添加按钮,点击添加按钮,绑定上面产生的激活码。

添加完成后进行验证,访问:http://192.168.244.111:9000/getsysinfo,192.168.244.111 为树莓派的IP地址,可以看到类似的信息:

[
0,
1,
1,
1,
"",
1,
"2.215.3.310",
"蜗牛",
1,
"28764008",
0
]

其中有用的几项为:

  • 第一项:0表示返回结果成功
  • 第二项:1表示检测网络正常,0表示检测网络异常
  • 第四项:1表示已绑定成功,0表示未绑定
  • 第五项:未绑定的情况下,为绑定的需要的激活码
  • 第六项:1表示磁盘挂载检测成功,0表示磁盘挂载检测失败

再访问:http://192.168.244.111:9000/getusedpartitioninfo,可以看到迅雷远程下载的目录映射情况(只能选择这里的目录进行下载):

[ 0, [ "C", "\/var\/lib\/docker\/devicemapper" ], [ "D", "\/media\/pi\/c66bf914-89d6-4479-a70d-20b535e9c0d5" ] ]

这里表示:

  • C 盘对应 /var/lib/docker/devicemapper
  • D 盘对应 /media/pi/c66bf914-89d6-4479-a70d-20b535e9c0d5

使用外接的存储设备

将准备好的U盘插入树莓派3,然后查看一下设备的挂载情况:

$ sudo fdisk -l
Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1        8192 62333951 62325760 29.7G  7 HPFS/NTFS/exFAT

$ sudo df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/root        16G  7.1G  7.5G   49% /
devtmpfs        458M     0  458M    0% /dev
tmpfs           462M   19M  443M    5% /dev/shm
tmpfs           462M   13M  450M    3% /run
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           462M     0  462M    0% /sys/fs/cgroup
/dev/mmcblk0p6   68M   21M   47M   31% /boot
tmpfs            93M     0   93M    0% /run/user/1000
/dev/mmcblk0p9   12G   65M   11G    1% /media/pi/c66bf914-89d6-4479-a70d-20b535e9c0d5
/dev/mmcblk0p8  512M  143M  370M   28% /media/pi/229C-BF01
/dev/mmcblk0p5   30M  453K   28M    2% /media/pi/SETTINGS
/dev/sda1        30G   87M   30G    1% /media/pi/269C78C19C788D55

发现树莓派3已自动识别出了U盘,为/dev/sda1,并挂载到了/media/pi/269C78C19C788D55目录,但是此时进入/media/pi/269C78C19C788D55目录,会发现这个目录是只读的,这样肯定不行。因此,需要对/dev/sda1进行重新挂载。

$ sudo mount | grep sda1
/dev/sda1 on /media/pi/269C78C19C788D55 type ntfs (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0177,dmask=077,nls=utf8,errors=continue,mft_zone_multiplier=1,uhelper=udisks2)

# 取消挂载
$ sudo umount /media/pi/269C78C19C788D55

# 检查ntfs-3g
$ sudo dpkg -l|grep ntfs-3g

# 安装ntfs-3g
$ sudo apt-get install ntfs-3g

# 创建挂载目录
$ sudo mkdir -p /mnt/thunder

# 赋权 
$ sudo chmod 777 /mnt/thunder 

# 挂载
$ sudo mount -o uid=pi,gid=pi /dev/sda1 /mnt/thunder

$ sudo df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/root        16G  7.1G  7.5G   49% /
devtmpfs        458M     0  458M    0% /dev
tmpfs           462M   18M  445M    4% /dev/shm
tmpfs           462M   13M  450M    3% /run
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           462M     0  462M    0% /sys/fs/cgroup
/dev/mmcblk0p6   68M   21M   47M   31% /boot
tmpfs            93M     0   93M    0% /run/user/1000
/dev/mmcblk0p9   12G   65M   11G    1% /media/pi/c66bf914-89d6-4479-a70d-20b535e9c0d5
/dev/mmcblk0p8  512M  143M  370M   28% /media/pi/229C-BF01
/dev/mmcblk0p5   30M  453K   28M    2% /media/pi/SETTINGS
/dev/sda1        30G  129M   30G    1% /mnt/thunder

$ sudo cd /mnt/thunder

$ sudo cd touch abc.txt

发现U盘已重新挂载到/mnt/thunder,并且拥有读写的权限。

重启迅雷

# 关闭迅雷
$ sudo /home/pi/xunlei/portal -s  
initing...
service is stopped.

# 重启迅雷
$ sudo /home/pi/xunlei/portal
initing...
try stopping xunlei service first...
killall: ETMDaemon: no process killed
killall: EmbedThunderManager: no process killed
killall: vod_httpserver: no process killed
setting xunlei runtime env...
port: 9004 is usable.

YOUR CONTROL PORT IS: 9000

starting xunlei service...
etm path: /home/pi/xunlei
execv: /home/pi/xunlei/lib/ETMDaemon.

getting xunlei service info...
Connecting to 127.0.0.1:9004 (127.0.0.1:9004)

THIS DEVICE HAS BOUND TO USER: 蜗牛.

finished.

再访问:http://192.168.244.111:9000/getusedpartitioninfo,可以看到迅雷远程下载的目录映射情况(只能选择这里的目录进行下载):

[ 0, [ "C", "\/var\/lib\/docker\/devicemapper" ], [ "D", "\/media\/pi\/c66bf914-89d6-4479-a70d-20b535e9c0d5" ], [ "E", "\/mnt\/thunder" ] ]

发现多出了一个E盘,映射的正是刚才挂载的U盘目录。

下载测试

迅雷远程下载中下载一个测试文件(这里用的是QQ音乐的地址):

https://dldir1.qq.com/music/clntupate/QQMusicSetup.exe

发现可以选择E盘,并能正常下载,说明下载服务器搭建成功。

$ sudo ls -lh /mnt/thunder/TDDOWNLOAD/ 
总用量 42M
-rwxrwxrwx 1 pi pi 42M 10月 15 11:52 QQMusicSetup.exe

下载完成后发现/mnt/thunder下产生了一个TDDOWNLOAD的目录,并且文件被正常下载到了此目录下。

迅雷远程下载中的设置菜单中,可以将该盘符设置为默认下载位置,还有一些其他的选项也可以进行设置。

设置截图

设置自启动

在reboot树莓派后,发现U盘又被自动挂载为/media/pi/269C78C19C788D55,但此时发现可以写入了,应该是安装了ntfs-3g的原因,这样处理起来就更方便了,省去了手工重新挂载的步骤,接上U盘就能正常使用了。

下面设置一下迅雷的开机自启动:

  • 创建启动脚本
sudo tee /etc/init.d/xunlei <<-'EOF'
#!/bin/sh

### BEGIN INIT INFO
# Provides:          xunlei
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop::    $network $local_fs $remote_fs
# Should-Start:      $all
# Should-Stop:       $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start xunlei at boot time
# Description:       A downloader
### END INIT INFO

do_start()
{
       /home/pi/xunlei/portal
}

do_stop()
{
       /home/pi/xunlei/portal -s
}

case "$1" in
 start)
   do_start
   ;;
 stop)
   do_stop
   ;;
esac

exit 0
EOF
  • 启动关闭服务
sudo chmod +x /etc/init.d/xunlei
sudo service xunlei start
sudo service xunlei stop
  • 让xunlei开机启动
sudo update-rc.d xunlei defaults
  • 取消xunlei的开机自动启动
sudo update-rc.d -f xunlei remove

共享下载目录

为了使下载后的文件方便在局域网内共享使用,需要对下载目录做一个简单的samba共享,操作如下:

# 使用阿里云的源
$ sudo tee /etc/apt/sources.list <<-'EOF'
deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contrib rpi
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contrib rpi
EOF

# 更新软件索引清单
$ sudo apt-get update

# 更新已安装的包
$ sudo apt-get upgrade -y

# 安装samba
$ sudo apt-get install samba samba-common

# 配置samba(免密登录)
$ sudo tee /etc/samba/smb.conf <<-'EOF'
[global]
  workgroup = WORKGROUP
  server string = Samba Server
  netbios name = Samba Server
  log file = /var/log/samba/log.%m
  max log size = 1000
  security = user
  map to guest = bad user

[xunlei]
  comment = xunlei
  path = /media/pi/269C78C19C788D55/TDDOWNLOAD
  read only = no
  guest ok = yes
  create mask = 0777
  directory mask = 0777
  force user = pi
  force group = pi
EOF

# 重启samba服务
$ sudo systemctl restart smbd

# 设置samba自启动  
$ sudo systemctl enable smbd 

安装设置完成后在windows7下访问 \\192.168.244.111\xunlei,发现可以正常读写,也不存在字符集的问题,非常帅。

参考资料

利用树莓派搭建迅雷远程下

树莓派上使用迅雷远程下载

嵌入式迅雷固件安装

折腾树莓派(六)在树莓派上使用迅雷远程下载


转载请注明出处,本文采用 CC4.0 协议授权,版权归 Mars丶小石头 所有。

Search

    Table of Contents