安装 aria2
通过包管理安装
- CentOS7 下安装
安装 EPEL 源及源管理工具:
yum install epel-release yum-utils
安装 REMI 源:
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install aria2
- Debian10 下安装
apt install aria2
安装后使用命令 aria2c -v
查看 aria2 的版本号
编译安装
很多时候下载 BT 会收到服务商的版权警告,如果只是单纯的下载文件,可以编译安装,通过 --disable-bittorrent
和 --disable-metalink
参数禁用 aria2 的 BT/PT 下载功能,详见官方文档
以 Debian 为例,安装编译所需工具:
apt install -y libcurl4-openssl-dev libevent-dev ca-certificates libssl-dev pkg-config build-essential intltool autoconf automake libtool autopoint libxml2-dev liblzma-dev zlib1g-dev
下载源码解压后,进入解压目录配置编译:
autoreconf -i
./configure --disable-bittorrent --disable-metalink
make
cp src/aria2c /usr/local/bin
守护进程
安装完成之后,为了管理方便,需要创建一个守护进程,这里通过 systemd 的方式管理:
vim /etc/systemd/system/aria2.service
输入以下内容,注意修改运行的用户和你的 aria2 执行文件以及配置文件路径:
[Unit]
Description=Aria2c download manager (atpx.com)
After=network.target
[Service]
Type=simple
User=aria2
ExecStart=/usr/bin/aria2c --conf-path=/home/aria2/aria2.conf
[Install]
WantedBy=multi-user.target
之后通过下面的命令管理:
# 启动 aria2
systemctl start aria2
# 停止 aria2
systemctl stop aria2
# 开机启动 aria2
systemctl enable aria2
配置 aria2
为了方便,可以编写一个配置文件,在合适的路径下创建文件:
touch ~/home/aria2/aria2.session
vim ~/home/aria2/aria2.conf,
编辑 aria2.conf
配置文件,这里就不再赘述具体的配置内容。
使用以下命令运行aria2:
aria2c --conf-path=/.aria2/aria2.conf -D
安装 AriaNg
AriaNg 是一个让 aria2 更容易使用的 Web 前端,AriaNg 使用纯 html&javascript 开发。
下载后解压到对应位置,配置好相应参数即可访问操作,例如这里将 AriaNg 解压到 /home/aria2/ariang
目录下:
location / {
root /home/aria2/ariang/;
index index.html;
}
使用 https 访问
如果你是部署到公网上,推荐使用 https 访问,配置文件中加入:
# 启用 RPC 服务的 SSL/TLS 加密
rpc-secure=true
# SSL 证书路径
rpc-certificate=
# SSL 证书私钥路径
rpc-private-key=
然后可以通过 https://yourdomain.com
进行访问,默认端口为 6800,但这里我不想防火墙开放 6800 端口,因此这里选择使用 Nginx 反代 jsonrpc:
location ^~ /jsonrpc {
proxy_http_version 1.1;
add_header Front-End-Https on;
proxy_set_header Connection "";
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:6800/jsonrpc;
proxy_pass_header X-Transmission-Session-Id;
}
使用 Nginx 反代后,在浏览器上访问你的 AriaNg 页面,同时将后台 AriaNg 设置 - RPC - Aria RPC 地址 中的端口修改为 443。
Nginx 设置密码访问
这里为了进一步的安全,可以用 Nginx 给页面加密,通过密码才能 AriaNG 页面。
安装工具:
# CentOS:
yum install -y httpd-tools
# Debian:
apt install apache2-utils
生成密码文件:
htpasswd -bcm /usr/local/nginx/htpasswd usr 123123
使用说明:
- -c:创建一个加密文件
- -n:不更新加密文件,只将加密后的用户名密码显示在屏幕上
- -m:默认采用MD5算法对密码进行加密
- -d:采用CRYPT算法对密码进行加密
- -p:不对密码进行进行加密,即明文密码
- -s:采用SHA算法对密码进行加密
- -b:在命令行中一并输入用户名和密码而不是根据提示输入密码
- -D:删除指定的用户
在 Nginx 配置文件 server 中添加:
auth_basic 'Restricted';
auth_basic_user_file /usr/local/nginx/htpasswd;
为了防止暴力破解,可以添加访问限制,并发数量不超过 5 个,每秒处理不超过 1 个请求,突发请求不超过 5 个,否则返回错误信息。
http {
# 限制单 ip 并发连接数
limit_conn_zone $binary_remote_addr zone=connection:10m;
# 限制单 ip 访问的漏桶算法限制平均每秒的请求为 5 个
limit_req_zone $binary_remote_addr zone=request:10m rate=1r/s;
...
server {
limit_conn connection 5;
limit_req zone=one burst=5;
...
}
}
最后重载 Nginx 即可。当然,此处还可以更近一步,配合 Fail2ban 禁止掉尝试失败的 IP,具体可以参考 Debian 下 Nginx 配合 Fail2Ban 减少恶意扫描和攻击 这篇文章。
Responses