Ubuntu/Debian系统安装配置aria2和WebUI
Aria2是性能出色的多协议下载工具,支持WebUI远程操作,本文将详细介绍Ubuntu和Debian系统下安装配置aria2和WebUI实现远程下载的详细步骤。
Aria2是另一个强大的多协议下载工具,支持WebUI远程操作,优点是比较全能,支持从HTTP/HTTPS, FTP, SFTP, BT种子和元链接下载,性能也相当不错,速度不比迅雷慢;缺点是配置比较麻烦。
本文将详细介绍Ubuntu和Debian系统下安装配置aria2和WebUI实现远程下载的详细步骤。
安装配置Aria2
SSH登录到Ubuntu或Debian,更新一下源,直接从Ubuntu软件库里面安装Aria2:
sudo apt-get update sudo apt-get install aria2
注意:debian系统(包括PVE)去掉所有命令最前面的“sudo”
Aria2安装完还要创建Aria2的工作目录和相关文件:
sudo mkdir /etc/aria2 #新建文件夹 sudo touch /etc/aria2/aria2.session #新建session文件 sudo chmod 777 /etc/aria2/aria2.session #设置aria2.session可写 sudo nano /etc/aria2/aria2.conf #创建aria2配置文件
把下面的aria2配置文件模板写入“aria2.conf”,需要修改的有下载目录“dir”以及连接秘钥“rpc-secret”,其他内容可以不动,模板里面都有详细文字说明:
##===================================## ## 文件保存相关 ## ##===================================## # 文件保存目录 dir=../download # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M disk-cache=16M # 断点续传 continue=true #日志保存 log=aria2.log # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc # 预分配所需时间: none < falloc ? trunc < prealloc # falloc和trunc则需要文件系统和内核支持 # NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项 file-allocation=prealloc ##===================================## ## 下载连接相关 ## ##===================================## # 最大同时下载任务数, 运行时可修改, 默认:5 max-concurrent-downloads=100 # 同一服务器连接数, 添加时可指定, 默认:1 # 官方的aria2最高设置为16, 如果需要设置任意数值请重新编译aria2 max-connection-per-server=16 # 整体下载速度限制, 运行时可修改, 默认:0(不限制) max-overall-download-limit=0 # 单个任务下载速度限制, 默认:0(不限制) max-download-limit=0 # 整体上传速度限制, 运行时可修改, 默认:0(不限制) max-overall-upload-limit=0 # 单个任务上传速度限制, 默认:0(不限制) max-upload-limit=0 # 禁用IPv6, 默认:false disable-ipv6=false # 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M # 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载 min-split-size=10M # 单个任务最大线程数, 添加时可指定, 默认:5 # 建议同max-connection-per-server设置为相同值 split=16 ##===================================## ## 进度保存相关 ## ##===================================## # 从会话文件中读取下载任务 input-file=/etc/aria2/aria2.session # 在Aria2退出时保存错误的、未完成的下载任务到会话文件 save-session=/etc/aria2/aria2.session # 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0 save-session-interval=60 ##===================================## ## RPC相关设置 ## ##此部分必须启用,否则无法使用WebUI ##===================================## # 启用RPC, 默认:false enable-rpc=true # 允许所有来源, 默认:false rpc-allow-origin-all=true # 允许外部访问, 默认:false rpc-listen-all=true # RPC端口, 仅当默认端口被占用时修改 rpc-listen-port=6800 # 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项 rpc-secret=123456 # 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项 #rpc-user= # 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项 #rpc-passwd= # 启动SSL # rpc-secure=true # 证书文件, 如果启用SSL则需要配置证书文件, 例如用https连接aria2 # rpc-certificate= # rpc-private-key= ##===================================## ## BT/PT下载相关 ## ##===================================## # 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true follow-torrent=true # BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999 listen-port=51413 # 单个种子最大连接数, 默认:55 #bt-max-peers=55 # 打开DHT功能, PT需要禁用, 默认:true enable-dht=true # 打开IPv6 DHT功能, PT需要禁用 enable-dht6=true # DHT网络监听端口, 默认:6881-6999 dht-listen-port=6881-6999 # 本地节点查找, PT需要禁用, 默认:false bt-enable-lpd=true # 种子交换, PT需要禁用, 默认:true enable-peer-exchange=true # 每个种子限速, 对少种的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=true # BT校验相关, 默认:true #bt-hash-check-seed=true # 继续之前的BT任务时, 无需再次校验, 默认:false bt-seed-unverified=true # 保存磁力链接元数据为种子文件(.torrent文件), 默认:false bt-save-metadata=true # 单个种子最大连接数, 默认:55 0表示不限制 bt-max-peers=0 # 最小做种时间, 单位:分 # seed-time = 60 # 分离做种任务 bt-detach-seed-only=true #BT Tracker List ;下载地址:https://github.com/ngosang/trackerslist bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce
启动测试Aria2
前台运行aria2:
sudo aria2c --conf-path=/etc/aria2/aria2.conf
回显如下就是安装和配置正常:

按ctrl+c停止运行命令,转为后台运行:
sudo aria2c --conf-path=/etc/aria2/aria2.conf -D
Aria2默认没有自带UI,可以用命令行测试下载是不是正常:
aria2c https://github.com/ziahamza/webui-aria2.git
安装配置WebUI
Aria2的WebUI官方推荐的是最受欢迎的webui-aria2项目:https://github.com/ziahamza/webui-aria2.git
配置和运行过程要用到git和nodejs,没有的话先安装:
sudo apt-get install nodejs git -y
把webui-aria2项目克隆下来,保存到“/etc/aria2”目录:
cd /etc/aria2 && git clone https://github.com/ziahamza/webui-aria2.git
使用NodeJS创建运行并运行WebUI服务器:
cd /etc/aria2/webui-aria2/ && node node-server.js
现在就能在浏览器访问Aria2 WebUI了:
其中“192.168.0.5”为Ubuntu或者Debian系统的局域网IP,默认端口号是“8888”,端口号可以在刚刚运行的node-sever.js脚本文件里面修改。

点击 设置 >> 连接设置,输入主机IP,端口和密码令牌,点击“保存连接配置”就能连接到Aria2:

设置开机启动
进行到这一步已经可以通过WebUI远程给Aria2布置下载任务了,但是每次系统重启还要手动启动Aria2服务和WebUI服务器,接下来我们新建一个脚本来启动Aria2和WebUI,并把脚本注册成开机自启动的服务。
新建aria2c脚本文件:
sudo nano /etc/init.d/aria2c
添加如下内容:
#!/bin/sh ### BEGIN INIT INFO # Provides: aria2 # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Aria2 Downloader ### END INIT INFO start() { echo -n "启动Aria2c和WebUI" aria2c --conf-path=/etc/aria2/aria2.conf -D cd /etc/aria2/webui-aria2/ node node-server.js exit 0; } stop() { echo -n "关闭Aria2c和WebUI" kill -9 $(ps -ef | grep node-server.js | grep -v grep | awk '{print $2}') && killall aria2c exit 0; } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 0 ;; esac exit 0
脚本启动“node-server.js”有个坑,如果直接调用“node /etc/aria2/webui-aria2/node-server.js”访问WebUI会出现“404 Not Found”错误,原因是这个脚本调用了“process.cwd() ”方法,这个方法返回Node.js进程的当前工作目录,所以如果我开机就通过绝对路径启动脚本就会传入错误的参数,导致访问不到WebUI页面。

解决办法很简单:在脚本里先切换到“/etc/aria2/webui-aria2/”目录,再执行“node-server.js”脚本。
修改脚本文件权限为755
sudo chmod 755 /etc/init.d/aria2c
添加aria2c服务并设置开机启动
sudo update-rc.d aria2c defaults
启动服务:
sudo service aria2c start
重启后查看服务状态:
reboot sudo systemctl status aria2c
重启后连接正常就可以愉快的下载了,当然你也可以配合ddns或者内网穿透从外网连接Aria2的WebUI控制家里的设备下载文件。

原创文章,作者:10bests,禁止任何形式转载:https://www.10bests.com/deploy-aria2-webui-on-ubuntu-and-debian/