1
0
Fork 0
blog/content/posts/逍遥游/Hello,Aria2.md

243 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
slug: hello-aria2
summary: 下载!都可以下载!
tags:
- 下载
- 折腾
title: HelloAria2
date: 2024-08-12
description: 本文介绍了如何配置 Aria2 作为 macOS 下载工具,涉及安装、设置配置文件、开机自启与自动更新 BT tracker 的步骤,同时感谢了一些教程的贡献者。
categories: ["逍遥游"]
featuredImage:
draft: false
---
各位老友们好,我是 Chlorine。
本期讲讲下载神器 Aria2 的配置。网上关于 Aria2 的配置教程已经极为丰富,所以本文主要起一个备份的作用,其教学内容大多还是拾人牙慧。
感谢 GitHub 上的各路大佬,特别感谢博主[月青悠](https://vccv.cc)的教程 [macOS系统配置Aria2](https://vccv.cc/article/aria2-mac.html)。
## 前言
本段接近于自言自语,不想看的老友可以直接跳过。
小氯在用 Windows 时(那大概是半年前,但感觉似乎是很久很久以前了),使用~~开心版的~~IDM[INTERNET DOWNLOAD MANAGER](https://www.internetdownloadmanager.com/))作为下载器,用着还挺舒服的。不过换到 macOS 了就没那个好事了,于是我选择了 IDM 的有力竞争者 FDM。
美好的日子就这样一天天过去。FDM 整体虽然看起来有一点点古老,但是用着还可以。不过随着时间的推移,~~闲得发慌的~~我又开始挑毛病了:感觉 FDM 的下载速度不够快,而且没办法用 Firefox 版本的扩展(更正:这个扩展是存在的,但是我的备用浏览器是 基于 Firefox 的 LibreWolf似乎有适配性问题而且不是开源的。
于是我接触到了 Motrix。不过 Motrix 很久不更新了,我使用的是 Motrix 的衍生品 Imfile。
Imfile 总体而言还可以,虽然启动时会报出一个莫名其妙的错误提一提我的血压(~~开发者目前对此持摆烂态度~~)。不过最近用 Imfile 的时候,经常动弹不了一点,让我很头痛。而且这软件应该是个 Electron 的,我对这类软件没什么好感(~~但是你现在的主力软件 Obsidian 和 VSCodium 不就是 Electron 的吗~~)。
于是我盯上了据说很出色的~~狗屁下载器~~够快下载器Gopeed。具体体验不说了一言难尽。反正我是没找到正确的打开方式。
思前想后之下我还是决定用之前没搞明白的命令行版 Aria2反正我不怕耍命令行。经过折腾现在已经达到了比较良好的效果。
## Aria2 简介
不想看的老友依然可以跳过。
Aria2 是一个跨平台的命令行下载器具有轻量级、多线程、高速度、多协议支持HTTP、FTP、BT 等)和高度可定制性(命令行工具基本都这样:)等优点。
不过需要注意Aria2 并不是 Aria 的第二代。没有叫 Aria 的工具。
冷知识aria 的含义是「咏叹调」)
## 安装 Aria2
我们依然使用万能的 Homebrew。
```bash
brew install aria2
```
一般来说 M 芯片的默认下载位置是 `/opt/homebrew/bin/aria2c`,记好这个路径。如果不确定,请使用:
```bash
where aria2c
```
## 设置 `aria2.conf`
注意,以下所有配置,请将 `chlorine` 替换为你的用户名。
我们在你的用户根目录下创建一个配置文件夹 `.aria2`。注意,下面所有的 `<user>` 都需要替换为你的用户名,例如 `chlorine`
```bash
mkdir -p ~/.aria2 && cd $_
touch aria2.conf aria2.session aria2.log
nano aria2.conf # 或者你的编辑器
```
我的配置文件主要是照抄了博主月青悠的,只不过修改了几个地方:
- 修改端口为 7800之前这样是因为 6800 被占用了,有可能是因为 Imfile 的缘故。奇怪的是7800 下载比 6800 快很多。
- 配置了 `all-proxy`,适配某一只会科学技术的小猫的配置。
- 注释掉了通知 hook因为我们不需要。
为了文章不至于有太长的代码,请在[此处](https://gist.github.com/chlorine3545/b500eed051ca8d7f5977440bacd0aa1b)自取。
你需要做的:
- 将复制的配置粘到文件中。
- 修改 `rpc-secret` 为你自己的密钥。可以自己随便写,但是推荐生成一个长字符串,使用 `openssl rand -base64 32` 即可。
- 你其他的自定义。
## 配置开机自启
这里比较麻烦,所幸万能的开源社区已经替我们做好了一切。
```bash
touch ~/Library/LaunchAgents/aria2.plist
nano ~/Library/LaunchAgents/aria2.plist
```
把这段粘进去:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>aria2</string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/bin/aria2c</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/Users/chlorine/Downloads</string>
</dict>
</plist>
```
如果一切顺利,系统会提示你已经添加了一个开机启动项。
然后检查文件语法:
```bash
plutil ~/Library/LaunchAgents/aria2.plist
```
如果 OK修改文件权限
```bash
chmod 644 ~/Library/LaunchAgents/aria2.plist
```
然后加载启动项并启动服务:
```bash
launchctl load ~/Library/LaunchAgents/aria2.plist
launchctl start aria2
```
这样,系统会在后台替你料理好一切。
## 自动更新 BT tracker
这个事情我用不太到,但是还是写上吧。
```bash
touch ~/.aria2/trackers-list-aria2.sh
nano ~/.aria2/trackers-list-aria2.sh
```
写入:
```bash
#!/usr/bin/env zsh
# 如果你的电脑没有 Zsh请把 zsh 改为 bash但是我更推荐安装一个
# 文件名 trackers-list-aria2.sh
# aria2 设置文件路径
CONF=${HOME}/.aria2/aria2.conf
# 设置选择的 trackerlist (可选 all_aria2.txt, best_aria2.txt, http_aria2.txt
trackerfile=all_aria2.txt
# downloadfile=https://raw.githubusercontent.com/ngosang/trackerslist/master/${trackerfile}
downloadfile=https://trackerslist.com/${trackerfile}
list=$(curl -fsSL ${downloadfile})
if ! grep -q "bt-tracker" "${CONF}" ; then
echo -e "\033[34m==> 添加 bt-tracker 服务器信息......\033[0m"
echo -e "\nbt-tracker=${list}" >> "${CONF}"
else
echo -e "\033[34m==> 更新 bt-tracker 服务器信息.....\033[0m"
sed -i '' "s@bt-tracker.*@bt-tracker=${list}@g" "${CONF}"
fi
## 重启 aria2 服务
echo -e "\033[34m==> 停止 aria2 服务......\033[0m"
launchctl stop aria2
echo -e "\033[34m==> 启动 aria2 服务......\033[0m"
launchctl start aria2
```
然后添加定时任务:
```bash
(crontab -l 2&> /dev/null; echo "0 18 * * * ~/.aria2/trackers-list-aria2.sh") | crontab
```
这会在每天 18 点更新列表。如果希望频率不那么高,可以修改配置,比如每周日一次:
```bash
(crontab -l 2>&1 /dev/null; echo "0 18 * * 0 ~/.aria2/trackers-list-aria2.sh") | crontab
```
如果你希望就算是关机了还能在开机期间执行任务,那可以用 `launchd`。不过这个我没测试过,谨慎使用。
创建服务文件:
```bash
touch ~/Library/LaunchAgents/com.user.trackers-list.plist
nano ~/Library/LaunchAgents/com.user.trackers-list.plist
```
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.trackers-list</string>
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>/Users/chlorine/.aria2/trackers-list-aria2.sh</string>
</array>
<key>StartInterval</key>
<integer>86400</integer> <!-- 每24小时执行一次 -->
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
```
然后按照类似上面的方法加载服务。
## Chrome 扩展
每次都打开命令行下载无疑很痛苦,所幸我们可以通过 Chrome 扩展自动接管浏览器下载事件。
我们选择广受好评的 [Aria2 Explorer](https://chromewebstore.google.com/detail/aria2-explorer/mpkodccbngfoacfalldjimigbofkhgjn)。直接点击安装即可。
安装后需要进行一点配置,这是我的配置,大家可以参考。
![](https://img.viento.cc/IMG-20240812213211.avif "端口和密钥记得改成你填写的,比如 7800")
然后打开扩展页面。如果显示 Aria2 已连接,那么就大功告成了。
## 最终效果
我们家的宽带大概是百兆的,网络很一般,于是我测试速度的时候吓了一跳。我测试用的是飞书的 `.dmg`Obsidian 的那个(测试系统代理)只用了两秒钟。
![Aria2 下载飞书安装包时速度达到了 18 M / s|495](https://img.viento.cc/IMG-20240812213600.avif "你这速度疑似有点太城市化了")
再次感谢伟大的开源社区。祝各位老友资源获取愉快。