目的:aria2解决linux各种下载问题
—因为小编用的是ubuntu18.04,所以其他的linux distribution 下的aria2使用暂时不知道
本来小编只是想解决ubuntu百度网盘没法用(网页下载也不能)的问题,后来了解到aria2还可以用种子,磁力,http,FTP。。。。各种下载,那不是基本解决了下载的所有问题嘛?唯一不足可能就是没有windows下那么好看的图形界面,但是既然选择linux作为os,谁会在意这个
就不BB…BOX了,let’s start it!!!
- 1.aria2简介
aria2 本是命令行下的一个多线程下载工具,属于后端,通过在浏览器中安装插件,将百度网盘中的下载地址导出到aria2中下载,具体有以下优点:
• 多线程下载。aria2可以从通过多种协议或多个源头下载同一文件,这样可以最大化下载带宽。
• 轻量级。 aria2运行时不会占用太多内存与cpu,非常轻量级。当磁盘缓存关闭时,aria2占用物理内存通常为4Mib(正常的HTTP/FTP下载)到9Mib(Bittorrent下载).使用Bittorrent以2.8Mib/sec速度下载,cpu占用率大概为6%。
• 所有的BitTorrent客户端的功能都能使用:DHT,PEX,Encryption,Magnet URI,Web-Seeding,Selective Downloads,Local Peer Discovery 和UDP tracker.
• 远程控制。 aria2运行PRC接口来控制aria2进程。支持JSON-PRC(over HTTP and WebSocket)和XML-PRC两种接口。
- 2.aria2安装
sudo apt-get install aria2
#通过源安装(可能不是最新版,毕竟不同的源更新进度不同,像国内更新比较快的源版本不会太老,阿里 清华 中科 )
sudo mkdir /etc/aria2
#新建文件夹
sudo touch /etc/aria2/aria2.session
#新建session文件(会话文件,用来读取下载任务,保存任务状态)
sudo chmod 777 /etc/aria2/aria2.session
#设置权限,使aria2.session可写
sudo touch /etc/aria2/aria2.conf
#创建配置文件
ps:如果遇到权限不够,无法创建或者修改以上文件,可以su - root
获取root权限
想用最新版本安装的小伙伴,可以参考https://blog.csdn.net/vacuum136/article/details/50636910
其实安装aria2后,我们已经可以使用’aria2c‘命令在bash使用了,但是很不方便(你懂得,各种参数各种问题),所以我们还是配置,封装成GUI,方便我们使用。
- 3.配置/etc/aria2/aria2.conf文件
1)编辑配置文件
vim /etc/aria2/aria2.conf
或者
nano /etc/aria2/aria2.conf
2)添加代码,需要修改的部分:
第1行 dir=/home/xxx/download
13-31行 和下载连接性能有关,可以根据自己的需要修改,也可以不改
dir=/home/xxx/download #使用aria2下载的文件存放位置
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
#disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
#file-allocation=trunc
continue=true
## 下载连接相关 ##
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=16
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=5
# 整体下载速度限制, 运行时可修改, 默认:0
#max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0
#max-download-limit=0
# 整体上传速度限制, 运行时可修改, 默认:0
max-overall-upload-limit=10K
# 单个任务上传速度限制, 默认:0
max-upload-limit=20
# 禁用IPv6, 默认:false
disable-ipv6=true
## 进度保存相关 ##
# 从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session #存放在我们创建的/etc/aria2/目录下
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/etc/aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
#save-session-interval=60
## RPC相关设置 ##
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select
# RPC监听端口, 端口被占用时可以修改, 默认:6800
#rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret=vacuum
# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-user=<USER>
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-passwd=<PASSWD>
## BT/PT下载相关 ##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true
# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=51413
# 单个种子最大连接数, 默认:55
#bt-max-peers=55
# 打开DHT功能, PT需要禁用, 默认:true
#enable-dht=false
# 打开IPv6 DHT功能, PT需要禁用
enable-dht6=false
# DHT网络监听端口, 默认:6881-6999
#dht-listen-port=6881-6999
# 本地节点查找, PT需要禁用, 默认:false
#bt-enable-lpd=false
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=false
# 每个种子限速, 对少种的PT很有用, 默认:50K
#bt-request-peer-speed-limit=50K
# 客户端伪装, PT需要
#peer-id-prefix=-TR2770-
#user-agent=Transmission/2.77
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
#seed-ratio=0
# 强制保存会话, 话即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
结合配置文件,运行aria2:aria2c --conf=patu=/etc/aria2/aria2.conf
结合配置文件,在后台运行:aria2c --conf=patu=/etc/aria2/aria2.conf -D
-
3.aria2开机自启动
-
基本思路:
-
制作一个脚本 runaria2.sh, 执行这个脚本可以自动运行aria2
-
把脚本信息写入到系统自启动文件中
设置开机自启动后,我们就不用手动运行
aria2c --conf=patu=/etc/aria2/aria2.conf -D
,网上很多说Ubuntu开机之后会执行/etc/rc.local文件中的脚本,可以直接在/etc/rc.local中添加启动脚本。但是!小编亲测了一下18.04版本的/etc/目录下没有rc.local文件,而是一系列rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rcS.d 文件(小编暂时还不懂这些文件,可能也和自启动有关吧);后来了解到16.04后的ubuntu把rc.local改为service,所以没有这个文件了。
所以小编找了别的方法(真叫人头大,好在网上大神多,攻略多)
哼,什么叫国际。。(后仰)
方法一:
1)在/etc/aria2/下新建空白文本
touch runaria2.sh
添加文本内容:
#! /bin/sh
aria2c --conf-path=/etc/aria2/aria2.conf -D
2)保存后,设置runaria2.sh 权限
sudo chmod 755 runaria2.sh
复制,sh 文件到/etc/init.d目录下
cp /etc/aria2/runaria2.sh /etc/init.d
设置启动顺序
cd /etc/init.d
sudo update-rc.d runaria2.sh defaults 95
其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。
卸载启动脚本
cd /etc/init.d
sudo update-rc.d -f runaria2.sh remove
方法2(给/etc下存在rc.local文件的小伙伴):
在/etc/aria2/下新建空白文本
touch runaria2.sh
添加文本内容:
#! /bin/sh
aria2c --conf-path=/etc/aria2/aria2.conf -D
保存后,设置runaria2.sh 权限
sudo chmod 755 runaria2.sh
在rc.local文件中添加runaria2.sh 脚本的信息,一定要将命令添加在 exit 0之前!!!
sudo /etc/aria2/runaria2.sh
- 4.配合web前端
aria2只是一个命令行执行程序,配合web前端才能发挥最大的效用。目前比较流行的web前端有下面两个:
YAAM
webUI
chrome商店都有,没有梯子的小伙伴可以添加插件”谷歌访问助手.crx“后访问
参考资料: