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=6800RPC监听端口一致。
需要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.png

引用