VPS上部署aria2实现离线下载
安装aria2
选择偷懒直接通过包管理安装aria2。
apt install aria2
aria2.conf文件
按需求修改aria2.conf
文件,并保存到下面的路径:/home/<user_name>/aria2.conf
,路径需要跟aria2.service
文件里的路径一致。
可以选择其他路径,但是要确保运行aria2.service
的用户暨User=<user_name>
拥有读取aria2.conf
文件的权限。
更多的aria2设置信息请查看官方文档https://aria2.github.io/manual/en/html/aria2c.html#options
#注释掉log,不然vps要被日志文件塞满
#log=/var/log/aria2.log
##BT和下载相关
# 下载路径,aria2进程的用户需要有读写权限
dir=/usr/share/download
# 最大同时下载数量
max-concurrent-downloads=10
# 检查完整性
check-integrity=true
# 断点续传
continue=true
# 单服务器最大连接数
max-connection-per-server=3
# 连接超时时间,单位秒
connect-timeout=60
# 最小文件分片大小
min-split-size=30M
# bt最大连接节点数
bt-max-peers=55
# 期望下载速度
bt-request-peer-speed-limit=10M
# 全局最大上传速度限制
max-overall-upload-limit=50M
# 最大上传速度限制 这里设置位 20MB/s
max-upload-limit=50M
# 最小分享率
seed-ratio=100
# 最小做种时间
seed-time=1200000
# 强制保存
force-save=false
# 删除未选择的文件
bt-remove-unselected-file=true
# BT强制加密
bt-force-encryption=true
# BT Tracker域名,用逗号分开
bt-tracker=https://tr.bangumi.moe:9696/announce,http://share.camoe.cn/announce
## DHT设置
# DHT监听端口,可以设置多端口 6881-6882 需要防火墙放行udp
dht-listen-port=6881
# dht文件的保存路径, 文件夹需要存在,且用户有读写权限
dht-file-path=/home/<username>/dht.dat
# v6的dht文件,没有v6可以注释掉
dht-file-path6=/home/<username>/dht6.dat
# 启用DHT IPv4
enable-dht=true
# 启用DHT IPv6
enable-dht6=true
## TCP 端口
# TCP 监听端口,需要防火墙放行
listen-port=6889
## RPC 设置
# RPC连接TLS加密,现在只监听在内网不加密,也不用提供证书啦
rpc-secure=false
# 在所有网卡上监听,这里设置false然后通过nginx反代
rpc-listen-all=false
# 开启RPC
enable-rpc=true
# 保存上传的种子文件,这里设置否。
rpc-save-upload-metadata=false
# RPC的密码,设置长一点
rpc-secret=password
# RPC监听端口,跟nginx的proxy_pass端口一致
rpc-listen-port=6800
# RPC 接收所有远程请求
rpc-allow-origin-all=false
## 其他设置
# 显示控制台输出
show-console-readout=false
# 安静 (笑)
quiet=true
# ca证书路径,debian是在下面的路径。其他Linux请修改成对应的。HTTP下载时会校验网站证书合法性?
ca-certificate=/etc/ssl/certs/ca-certificates.crt
nginx 反代示意
网站证书申请请参考https://github.com/acmesh-official/acme.sh
NGINX的SSL加密部分请参考 https://ssl-config.mozilla.org/
比如你需要将 www.yourdomain.com/your_securet_path
的请求全部转发到aria2 RPC。proxy_pass
的端口需要与aria2.conf
里的rpc-listen-port=6800
RPC监听端口一致。
需要nginx -s reload
就不说了。
location /your_secret_path {
proxy_socket_keepalive on;
proxy_redirect off;
proxy_pass http://127.0.0.1:6800/jsonrpc;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
# Show real IP in access.log
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
aria2.service实现服务开机自启动
把<user_name>
换成你的用户名或者root
, --conf-path=
的路径需要指向aria2.conf
把修改后的文件复制到 /etc/systemd/system/aria2.service
应该大概需要root权限才能运行 systemctl enable aria2.service
再运行 systemctl start aria2.service
可以ps -ef | grep aria2
或者 systemctl status aria2.service
看看是否成功运行aria2服务。
# Contents of /etc/systemd/system/aria2.service
[Unit]
Description=Aria2 Service
After=network.target
Wants=network.target
[Service]
Type=simple
User=<user_name>
Restart=no
ExecStart=/usr/bin/aria2c --conf-path=/home/<user_name>/aria2.conf
[Install]
WantedBy=multi-user.target
ariang连接到RPC服务器
如截图所示,需要在 ARIA2 RPC地址
填入:
- 域名:
www.yourdomain.com
- 端口:
443
- 路径:
your_secret_path
协议
需要选https
或者wss
密钥
是aria2.conf
里的rpc-secret=password
重新加载后就连上VPS上的aria2 RPC啦。
引用
aria2.conf
里的中文翻译参考了 https://github.com/mayswind/AriaNg/blob/master/src/langs/zh_Hant.txt