本来是直接apt-get install aria2去安装的,但是奔着追求最新版的想法,决定去手动编译安装。

下面开始~

先去aria2官网那下载最新的源码》》》
https://github.com/aria2/aria2/releases/tag/release-1.35.0
目前最新稳定版的是1.35.0

wget https://github.com/aria2/aria2/releases/download/release-1.35.0/aria2-1.35.0.tar.gz

解压

tar -xzvf aria2-1.35.0.tar.gz & cd aria2-1.35.0

生成预编译配置(如无个别要求,直接./configure)

./configure

没有报错的话,进行编译(加 -j4 为了4核心加速编译)

make -j4

顺利的话现在就可以得到aria2c了,就存放在/aria2-1.35.0/src下。这个就是我们要的文件。
(之所以我没有make install 是因为我要手动配置所有的配置文件,其实我的目的很简单,我决定吧所有的配置文件包括log等都存放在一个文件夹内,为了后期备份简单,如果你没这个要求,不推荐这样整。)

好,正式开始配置aria2.

cp src/aria2c /home/pi/run/aria2 #复制aria2c到我的目录
touch aria2.conf  #创建配置文件
touch aria2.aria2.session  #不创建这个有时候报错(坑一),索性创建了吧。。

编辑 aria2.conf 参考官网的配置:https://aria2.github.io/manual/en/html/aria2c.html#basic-options
或看这个吧,带中文注释的https://www.cnblogs.com/likecs/p/11582984.html

我的配置是这个~

#进行参考,根据自己的情况去更改路径。
# 文件保存目录(要自己的绝对路径)
dir=/home/wwwroot/192.168.31.142/data/User/admin/home/下载
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=32M
# 断点续传
continue=true
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
file-allocation=trunc

## 下载连接相关 ##
# 最大同时下载任务数, 运行时可修改, 默认:5
#max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定, 默认:1
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=true
# 最小文件分片大小, 添加时可指定, 取值范围 1M -1024M , 默认:20M
# 假定 size=10M , 文件为 20MiB 则使用两个来源下载; 文件为 15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
#split=10

## 进度保存相关 ##
# 从会话文件中读取下载任务
input-file=/home/pi/run/aria2/aria2.session
# 在Aria2退出时保存错误的、未完成的下载任务到会话文件
save-session=/home/pi/run/aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=10

#logo相关(方便查错,绝对路径)
log=/home/pi/run/aria2/aria2.log
log-level=warn
dht-file-path=/home/pi/run/aria2/dht.dat
dht-file-path6=/home/pi/run/aria2/dht6.dat

## RPC相关设置 ##
# 启用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=123  #123为密码

## BT/PT下载相关 ##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=true
# 继续之前的BT任务时, 无需再次校验, 默认:false(重启后继续)
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true

设置权限(重要)(坑二):

cd /home/pi/run/aria2
sudo chown -R www:www *

完事后,为了方便启动,把aria2设置成服务方法有很多,这里列举一个。

在/etc/systemd/system下创建个文件aria2.service

cd /etc/systemd/system
touch aria2.service

用nano里面写入如下内容

[Unit]
Description=Aria2
After=syslog.target
After=network.target
[Service]
Type=simple
User=www
Group=www
WorkingDirectory=/home/pi/run/aria2/
ExecStart=/home/pi/run/aria2/aria2c --conf-path="/home/pi/run/aria2/aria2.conf"
Restart=always
[Install]
WantedBy=multi-user.target

说明一下:

##(遇到的第二个坑~~)
Description=服务名称(可自定)
User=执行用户
Group=执行用户  #(我这里写www是因为我的下载目录放在芒果云里了不然芒果云无法编辑文件)
WorkingDirectory=程序执行目录
ExecStart=执行命令(推荐绝对路径)

最后测试一下~

sudo systemctl start aria2.service

无报错就说明成功了。

常用命令:

sudo systemctl start aria2.service #启动aria2
sudo systemctl restart aria2.service  #重启aria2
sudo systemctl stop aria2.service  #停止aria2
sudo systemctl status aria2.service  #查看aria2状态

无法链接??

看看防火墙开了没。开放对应的端口即可(默认6800)

bt服务器咋是空的(坑三)??

aria2.conf末尾追加bt-tracker=服务器地址,域名之间用英文,隔开。

那就再开个坑吧,,,设置定期更新bt服务器地址。

创建bt.sh

touch bt.sh

写入————注意这里设置你的 aria2.conf 绝对路径,不能照搬————

#!/bin/bash
systemctl stop aria2.service #先停止aria2
list=`wget -qO- https://trackerslist.com/all_aria2.txt|awk NF|sed ":a;N;s/\n/,/g;ta"`
if [ -z "`grep "bt-tracker" /home/pi/run/aria2/aria2.conf`" ]; then
    sed -i '$a bt-tracker='${list} /home/pi/run/aria2/aria2.conf
    echo add......
else
    sed -i "s@bt-tracker.*@bt-tracker=$list@g" /home/pi/run/aria2/aria2.conf 
    echo update......
fi

systemctl start aria2.service  #再启动aria2

其中

https://trackerslist.com/all_aria2.txt

是bt服务器地址,自己可以替换成自己的。也可以直接用我这个。

最后设置crontab 定期执行一下bt.sh即可,这个脚本会直接更新aria2.conf追加的bt-tracker=后的网址。

补一个bt源:
https://github.com/ngosang/trackerslist

完成~~~✿✿ヽ(°▽°)ノ✿

乱坑不断,但是成就感十足233333