使用Raspberry Pi搭建迅雷离线下载机

淘宝买的WD 2TB红盘以及Orico硬盘座到了,立马搞起作为NAS的第一步:迅雷离线下载机。使用的主要硬件当然是我那落灰已久的Raspberry Pi啦!红盘和RPi的耗电量都非常小,即使7×24小时不停下载,也不会心疼电费。请叫我下载强迫症患者……

从头说起,先把硬盘插到硬盘座上,然后usb连上RPi……dmsg里显示有mass storage device连上了。ls一下/dev,确认出现了sda。接下来就要给硬盘分区:

fdisk /dev/sda

fdisk里输入n新建分区,然后直接把所有空间作为一个primary分区,按w搞定!

接着就是格式化了:

mkfs.ext4 -m 1 /dev/sda1

没错,就是要格式化成ext4格式,因为RPi的CPU性能毕竟有限,如果使用ntfs-3g来读写NTFS分区的话,势必会带来很高的CPU占用率,同时对读取及写入速度也有影响。RPi官方论坛里也有帖子讨论这个问题,大家一致认为格式化成ext格式分区有助于提高I/O。相信玩RPi的大家对Linux已经很熟悉了,也不会抱着NTFS格式不放吧。格式化成ext4的另外一个好处,是配合aria2里的一项设定,可以更快地生成预分配文件。
至于-m参数,是将文件系统默认的5%的保留空间降到1%。5%这个默认值太古老了,不适应时代发展,2TB的5%都要将近100G了……
如果你格式化的时候忘了加-m参数,也没问题。随时可以用下面的命令修改保留空间百分比:

tune2fs -m 1 /dev/sda1

好了,硬盘格式化完成后就要考虑自动挂载了。虽然作为NAS的RPi不会经常重启,不过还是要把自动挂载功能加上的。
首先新建一个文件夹作为挂载点,本文使用”/home/pi/HDD”。然后修改/etc/fstab:

pi@raspberrypi ~ $ cat /etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
/dev/sda1       /home/pi/HDD    ext4    defaults,noatime,nofail 0       0

最下面那行就是新加的。那3个挂载参数就不一一解释了,自己去Google吧。如果你用的是Archlinux,也许会写成下面这种形式:

UUID="d54342e7-98da-4992-b322-da7ba7d79866" /home/pi/HDD    ext4    defaults,noatime,nofail 0       0

其中UUID的值是通过blkid这个命令得到的你的外接硬盘的UUID。
编辑好fstab,就可以用root权限执行mount -a试试看能否正常挂载啦!

一切正常的话,就可以在挂载目录里看到ext4分区自带的lost+found目录了。接下来还有非常重要的一步——设置权限。此时只有root用户有挂载硬盘的读写权限,我们需要让普通用户也能读写硬盘,否则太不方便了。这里使用了一种简单粗暴的方法:

chmod 777 /home/pi/HDD

具体路径根据你的需要修改。记住一定要在成功挂载硬盘后执行一次上述命令

到此,硬盘部分就折腾得差不多了,下面开始软件部分。这里使用的系统为Raspbian,Debian的分支。Archlinux下也大同小异。
首先需要在RPi下部署LAMP或者LNMP。如果比较懒,也可以只装nginx或者apache。(此处省略500字,具体安装步骤自己Google去吧)
确认nginx/apache正常工作后,安装这次的主角软件——aria2。aria2在Linux下有多著名就不多说了,反正一般国内用户只用迅雷……顺便也把git装上,等会有用:

sudo apt-get install aria2 git

接着新建~/.aria2/aria2.conf文件(即准备用哪个用户运行aria2就建在那个用户的家目录里),并且写入下面参数:

continue=true
daemon=true
dir=/home/pi/HDD/Downloads/
enable-rpc=true
file-allocation=falloc
force-sequential=true
input-file=/home/pi/HDD/aria2/aria2.session
log=/home/pi/HDD/aria2/aria2.log
log-level=notice
max-concurrent-downloads=3
max-connection-per-server=5
parameterized-uri=true
rpc-allow-origin-all=true
rpc-listen-all=true
rpc-save-upload-metadata=false
save-session=/home/pi/HDD/aria2/aria2.session
save-session-interval=60
split=5

具体含义不一一讲解了,可以参考aria2官方文档,说得都很详细。aria2的选项相当多,这里只是根据需要修改了其中很小一部分。需要注意的是,上面选项里的目录及文件都必须实际存在,没有的话就mkdir/touch一下,否则aria2可能会无法启动。
配置文件搞定后,可以直接运行/usr/bin/aria2c,aria2会以守护进程模式进入后台运行。你也可以写个脚本,让aria2开机自动运行。
紧接着就要搞个GUI界面了,cd到nginx或apache的www目录里(本人配置的是LAMP,所以是/var/www),执行下面命令:

git clone https://github.com/ziahamza/webui-aria2.git .

这样就把一个webui-aria2下载到了本地,现在可以在电脑上用浏览器访问http://RPi的IP/webui-aria2/来控制aria2了。
一开始可能会提示无法连接aria2,需要通过界面里的Settings->Connection Settings来设好RPi的IP地址。端口号保持默认的6800就可以了。另外Settings->Global Settings里面有很多选项,其实就是和~/.aria2/aria2.conf里一一对应的,有需要改动的话可以参考画面上的说明进行修改。
至此,一个下载机就完成了,可以通过网页上的Add按钮添加下载链接进行下载。不过对我来说还没结束,因为我要的是能够从迅雷离线那里下东西!

接着就是配置迅雷离线了。首先,你得有个Firefox或者Chrome浏览器,并且安装了Greasemonkey或者Tampermonkey插件。这里用chrome+Tampermonkey演示。
ThunderLixianExporter这个网站,点击上面的”ThunderLixianExporter.user.js”链接,或者直接点击这里,安装迅雷离线地址解析脚本。

接着,用chrome登陆你的迅雷离线下载网页版(什么?你没有迅雷VIP会员账号?那后面就不用看了-_-),点击右上角的小齿轮,在Aria2 JSON-RPC Path部分输入如下地址:

http://192.168.1.100:6800/jsonrpc

其中192.168.1.100是你的RPi的IP,按需要修改;6800是默认端口号。
试着建立几个离线任务,待服务器端下载完成后,勾上那些文件,然后点击指令栏里的”批量导出”按钮,选择”YAAW”。
xunlei-lixian-export
画面上方会提示你已经向aria2发出了下载指示,可以去之前配置好的webui界面里确认了。
截一张正在下载中的状态图(点击看大图),各种数据显示得很直观:
aria2-xunlei-downloading

附带一个数据:我这里20M宽带,RPi未超频,全速下载(~2.3MB/s)时aria2大概占用30%-35%的CPU。

教程至此结束,如有疑问,欢迎留言探讨!

本文为悠然居(https://wordpress.youran.me/)的原创文章,转载请注明出处!

6 thoughts on “使用Raspberry Pi搭建迅雷离线下载机”

  1. 请问一下,你硬盘外接电源了吗?还有你的树莓派用的电源是什么规格的?

    Google Chrome 34.0.1847.116 Google Chrome 34.0.1847.116 Mac OS X  10.9.2 Mac OS X 10.9.2
    1. 我用的是WD MyBook Essential 2TB移动硬盘,有外接电源的。树莓派用的品胜ipad电源(2.1A)。我试过Orico硬盘座,结果出现供电问题导致无法从树莓派通过网络传输文件。

      Firefox 28.0 Firefox 28.0 Windows 7 Windows 7
      1. \

        root :我用的是WD MyBook Essential 2TB移动硬盘,有外接电源的。树莓派用的品胜ipad电源(2.1A)。我试过Orico硬盘座,结果出现供电问题导致无法从树莓派通过网络传输文件。

        用这么高电流的电源会损坏树莓派吗?还有一个问题,可以通过远程访问Samba服务器吗?

        Google Chrome 34.0.1847.116 Google Chrome 34.0.1847.116 Mac OS X  10.9.2 Mac OS X 10.9.2
        1. 2.1A是电源能提供的最大电流,不是实际电流。不过树莓派用iphone的1.2A电源就足够了,ipad的有点浪费。samba服务器我只配置过相同网段的,远程不清楚

          Firefox 28.0 Firefox 28.0 Windows 7 Windows 7
  2. qq旋风有办法配置不?迅雷白金会员基本没用了,你观看的内容未经过审核………………。

    Chromium 31.0.1650.63 Chromium 31.0.1650.63 Ubuntu x64 Ubuntu x64
    1. Chrome webstore里有个插件可以用于qq旋风,不过我不用旋风没试过

      Google Chrome 36.0.1985.125 Google Chrome 36.0.1985.125 Windows 7 x64 Edition Windows 7 x64 Edition

Leave a Reply

Your email address will not be published. Required fields are marked *