前言
之前部署了百度网盘以及qBittorrent后,发现针对http(s)或者ftp等协议的下载无法进行,于是就准备再加一个Aria2,完全打通各个协议。
简介
aria2 is a utility for downloading files. The supported protocols are HTTP(S), FTP, SFTP, BitTorrent, and Metalink. aria2 can download a file from multiple sources/protocols and tries to utilize your maximum download bandwidth. It supports downloading a file from HTTP(S)/FTP/SFTP and BitTorrent at the same time, while the data downloaded from HTTP(S)/FTP/SFTP is uploaded to the BitTorrent swarm. Using Metalink’s chunk checksums, aria2 automatically validates chunks of data while downloading a file like BitTorrent.
Aria2 是一个用于下载文件的实用程序。支持的协议包括 HTTP(S)、FTP、SFTP、BitTorrent 和 Metalink。Aria2 可以从多个来源/协议下载文件,并尝试利用您的最大下载带宽。它支持同时从 HTTP(S)/FTP/SFTP 和 BitTorrent 下载文件,同时从 HTTP(S)/FTP/SFTP 下载的数据上传到 BitTorrent 群。使用 Metalink 的块校验和,aria2 在下载 BitTorrent 等文件时自动验证数据块。
步骤
Aria2安装
输入以下命令安装:
1
|
apt install aria2
|
安装完成后暂时只能通过命令行 aria2c <url>
进行下载。
配置
我们计划将 conf配置文件放置在: /root/.aria2/aria2.conf
以及 session文件也放在 /root/.aria2/aria2.session
。
aria2.session
的内容为空。
aria2.conf
的内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
## '#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ## ## 被注释的选项填写的是默认值, 建议在需要修改时再取消注释 ## ## 文件保存相关 ## # 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置 dir=/NAS/Downloads/Aria2 # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M #disk-cache=32M # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc # 预分配所需时间: none < falloc ? trunc < prealloc # falloc和trunc则需要文件系统和内核支持 # NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项 #file-allocation=none # 断点续传 continue=true ## 下载连接相关 ## # 最大同时下载任务数, 运行时可修改, 默认:5 #max-concurrent-downloads=5 # 同一服务器连接数, 添加时可指定, 默认:1 max-connection-per-server=5 # 最小文件分片大小, 添加时可指定, 取值范围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=0 # 单个任务上传速度限制, 默认:0 #max-upload-limit=0 # 禁用IPv6, 默认:false #disable-ipv6=true # 连接超时时间, 默认:60 #timeout=60 # 最大重试次数, 设置为0表示不限制重试次数, 默认:5 #max-tries=5 # 设置重试等待的秒数, 默认:0 #retry-wait=0 ## 进度保存相关 ## # 从会话文件中读取下载任务 input-file=/root/.aria2/aria2.session # 在Aria2退出时保存`错误/未完成`的下载任务到会话文件 save-session=/root/.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=<TOKEN> # 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项 #rpc-user=<USER> # 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项 #rpc-passwd=<PASSWD> # 是否启用 RPC 服务的 SSL/TLS 加密, # 启用加密后 RPC 服务需要使用 https 或者 wss 协议连接 #rpc-secure=true # 在 RPC 服务中启用 SSL/TLS 加密时的证书文件, # 使用 PEM 格式时,您必须通过 --rpc-private-key 指定私钥 #rpc-certificate=/path/to/certificate.pem # 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件 #rpc-private-key=/path/to/certificate.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=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 peer-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 |
其中 rpc-secret=<TOKEN>
中 <TOKEN>
的值务必设置。其他的根据自己需求逐行配置。
可以参考:
系统服务
默认Aria2没有系统进程,我们可以创建一个:
1
|
vim /lib/systemd/system/aria2c.service
|
内容为:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[Unit] Description=Aria2c [Service] TimeoutStartSec=0 ExecStart=/usr/bin/aria2c --conf-path=/root/.aria2/aria2.conf #aria2.conf的路径 ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=30s [Install] WantedBy=multi-user.target |
然后输入以下命令自启动:
1 2 3 |
systemctl enable aria2c systemctl restart aria2c systemctl status aria2c |
如果输出的结果中含有 Active: active (running)
字样,则Aria2c自启动服务注册成功。
下载AriaNG
AriaNG的Github地址为:https://github.com/mayswind/AriaNg
在Releases界面将程序下载下来上传到NAS,我的目录为 /var/www/AriaNg
,并使用 unzip 进行解压。
1 2 3 4 |
apt install unzip #没有unzip的先行安装 unzip AriaNg-*.zip chown -R www-data:www-data /var/www/AriaNg #权限 chmod -R 755 /var/www/AriaNg |
Nginx部署AriaNG WebUI
这边需要申请一个AriaNG WebUI的访问域名,比如 aria2.yydnas.com
。
部署Nginx的网站配置 aria2.conf
,内容为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
server { listen 80; listen [::]:80; root /var/www/AriaNg; server_name aria2.yydnas.com; index index.php index.html index.htm; return 301 https://$server_name$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; http2 on; root /var/www/AriaNg; server_name aria2.yydnas.com; index index.php index.html index.htm; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256; ssl_certificate /etc/nginx/certs/aria2.yydnas.com_nginx/aria2.yydnas.com_bundle.pem; ssl_certificate_key /etc/nginx/certs/aria2.yydnas.com_nginx/aria2.yydnas.com.key; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; location / { try_files $uri $uri/ =404; } } |
将其放置在 /etc/nginx/sites-enabled/
目录下面以应用。
重启Nginx以载入:
1
|
systemctl restart nginx
|
注意:如果新加域名,需要在 ddns-go 界面增加相应的域名解析。
访问AriaNG WebUI
第一步需要来到 【AriaNG设置】 – 【RPC】界面,输入 【Aria2 RPC密钥】,即之前配置的 Token
值,重新载入后查看状态显示已连接及完成配置。
使用
最后我们回到主界面添加链接,我这边添加了3个链接,分别是蜘蛛侠的4k remux版本,海贼王1092集,ubuntu-desktop版本(https),可以看到除了蜘蛛侠,另外两个速度基本上是满速(300M宽带),蜘蛛侠可能是资源比较老,但是说实话也不应该是这个速度啊。。后续我再测试一下吧。
总体来说,已经能满足我的需求了,比某网盘不知道好多少了,某盘已经挂着下了好几天了,遥遥无期,真的想开会员了,哭哭惹~
最后
赶着国庆期间,稍微玩一会儿,折腾一下,等春节假期结束就要进入上班模式了,估计就很少玩NAS了~到时候也不知道有啥想玩的了。平时估计也就下载些电影看看,都是一些不是紧急的,挂在NAS上面下载,啥时候下载完啥时候看。
评论(0)