准备工作
- 树莓派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
,发现可以正常读写,也不存在字符集的问题,非常帅。