目录

linux和windows下Aria2配置

写在前面

  • 首先Motrix是一个很好的客户端,但是由于Motrix是使用electron编写的,占用的空间还比较大
  • 一般在使用aria2的过程中,浏览器都需要安装拦截器,而拦截器又一般都集成了AriaNg这种WebUI
  • 所以,为了避免功能重复冗余,我还是把Motrix卸载了,然后开始了下面的折腾
  • 当然,如果你图省心也可以使用Motrix,反正Linux和Windows都有客户端

Linux

Linux配置相对Windows来说会相对简单一些,主要是网上教程比较多

这里我们主要参考ArchLinux的 aria2文档,使用 systemctl 进行管理

Linux安装aria2

1
2
# 我的是manjaro,其他系统常规安装即可
pamac install aria2

Linux的aria2配置

Linux配置保存路径

根据aria2的配置文档,默认先使用用户目录的.aria2路径,当然其他路径也可以,反正最后也是会使用 --conf-path 指定的

新建的 ~/.aria2 目录结构如下

1
2
3
4
- aria2.conf    // aria2的配置文件
- aria2.session // 下载记录的session文件
- dht6.dat  // ipv6的dht文件
- dht.dat   // ipv4的dht文件

dht.datdht6.dat 一般通过正常下载一个BT文件就可以自动写入

Linux配置内容

这里可以参考 P3TERX的项目

  • 部分参数需要修改,例如session、dht.dat、dat6.dat路径,download的保存路径等
  • 另外需要设置 daemon=true

另一个需要特别注意的地方,这项配置涉及安全问题

1
2
3
4
# 允许外部访问, 默认:false
# 这里如果只是本机使用的,设置成false即可,不允许就是只能localhost访问
# nas上的aria2服务就没办法了,需要设置为true
rpc-listen-all=false

使用systemd user unit进行管理

具体说明参考arch关于 systemd的文档

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
mkdir -p ~/.config/systemd/user/

vim ~/.config/systemd/user/aria2cd.service
# 内容如下
[Unit]
Description=aria2 Daemon

[Service]
Type=forking
ExecStart=/usr/bin/aria2c --conf-path=$HOME/.aria2/aria2.conf

[Install]
WantedBy=default.target

Linux相关指令

指令和 systemctl 基本是一样的,只需要增加参数 --user

1
2
3
4
5
6
7
8
# 启动
systemctl --user start aria2cd
# 停止
systemctl --user stop aria2cd
# 重启
systemctl --user daemon-reload
# 开机启动
systemctl --user enable aria2cd

startenable 之后,应该能看到这样的状态

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
~ » systemctl status --user aria2cd
● aria2cd.service - aria2 Daemon
     Loaded: loaded (/home/ken/.config/systemd/user/aria2cd.service; enabled; preset: enabled)
     Active: active (running) since Sat 2022-10-22 08:59:47 CST; 1 day 2h ago
    Process: 870 ExecStart=/usr/bin/aria2c --conf-path=${HOME}/.aria2/aria2.conf (code=exited, status=0/SUCCESS)
   Main PID: 882 (aria2c)
      Tasks: 1 (limit: 19076)
     Memory: 9.9M
        CPU: 1.259s
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/aria2cd.service
             └─882 /usr/bin/aria2c --conf-path=/home/ken/.aria2/aria2.conf

10月 22 08:59:47 ken-manjaro systemd[860]: Starting aria2 Daemon...
10月 22 08:59:47 ken-manjaro systemd[860]: Started aria2 Daemon.

Windows

  • Windows下需要使用后台服务进行启动,否则不管是配置文件还是执行参数设置daemon=true,都会在系统启动的时候打开一个CMD窗口
  • 反正,下面是我最后的解决办法

Windows安装aria2

解压完成后,需要把aria2c加入到环境变量中

Windows的aria2配置

Windows配置保存路径

同样使用用户目录的.aria2路径,当然其他路径也可以,反正最后也是会使用 --conf-path 指定的

新建的目录结构同Linux

Windows配置内容

配置和Linux大同小异,注意修改下载、session、两个dht文件的路径即可

将aria2配置成后台服务

批处理文件

.aria内新建一个批处理文件server.bat,内容如下

1
2
@echo off
aria2c.exe --conf-path="你的aria2.conf文件路径"

Windows后台服务

通过cmd命令行创建后台服务

1
sc create aria2 binpath= 你的serve.bat文件路径 type= own start= auto displayname= aria2

然后,执行 services.msc 可以发现多了个一个aria2的服务

./sc-res.png
创建的aria2服务

Windows相关指令

1
2
3
4
5
6
# 启动
net start aria2
# 停止
net stop aria2
# 删除服务
sc delete aria2

start的时候可能会提示程序没有响应控制功能,这个可以不用管

1
2
3
4
net start aria2
服务没有响应控制功能。

请键入 NET HELPMSG 2186 以获得更多的帮助。

启动之后,aria2就会随设备开机启动,大功告成

./aria2-started.png
任务管理器看到aria2已经启动

浏览器的下载拦截器

aria2的拦截器有很多,YAAW、aria2之类的等等,根据自己习惯挑一个即可,反正配置大同小异

我这里选用 aria2 for edge,因为至少它还保持着更新

拦截器添加rpc

添加aria2对应的服务器地址

./aria2edge-conf.png
aria2 for edge配置也很简单

这里也有个奇怪的地方,不管你填的是http还是ws最后保存之后还是http

AriaNg添加rpc

这里aria2 for edge有个bug,如果你跟我一样有多个aria2服务就要注意了

我本来以为在拦截器添加了两个rpc之后,在AriaNg里面都会显示,然而只显示了一个…

所以,在AriaNg里面还需要手动增加第二个rpc,选择的时候协议选择为ws即可

其他拦截器如果没有这个问题的跳过即可

./aria2-interceptor.png
连接上两个aria2服务

配置好两个rpc后,点击ariaNg的激活按钮切换试试,Aria2状态都提示连接成功即没问题

最后

aria2 for edge的配置可以上传云端,这样只需要在一台设备上的edge配置好即可,不同设备之间同步下载即可。

当然,前提是你的local aria2服务都配置成一样rpc-secrect

./aria2cloud.png
同步到云端

最后配置文件里面还有一个bt-tracker参数的更新,这个有空再说