首选,我们需要下载两个开源项目,一个是P3TERX的aria2.conf配置方案,将其部署为系统服务。另外一个是AriaNg,用来作为前端gui。
代码: 全选
# 下载项目
wget -c https://github.com/P3TERX/aria2.conf/archive/refs/heads/master.zip -O aria2.conf-master.zip
wget -c https://github.com/mayswind/AriaNg/releases/download/1.3.7/AriaNg-1.3.7-AllInOne.zip -O AriaNg-1.3.7-AllInOne.zip
# 解压到系统目录
unzip -j "aria2.conf-master.zip" \
-x 'LICENSE' \
-d $HOME/.local/share/aria2ng
unzip -j "AriaNg-1.3.7-AllInOne.zip" \
-x 'LICENSE' \
-d $HOME/.local/share/aria2ng
代码: 全选
sed -i "s|dir=/root/Download|dir=\${XDG_DOWNLOAD_DIR}|g; \
s|input-file=/root/.aria2/aria2.session|input-file=\${HOME}/.config/aria2/aria2.session|g; \
s|save-session=/root/.aria2/aria2.session|save-session=\${HOME}/.config/aria2/aria2.session|g; \
s|connect-timeout=10|connect-timeout=60|g; \
s|timeout=10|timeout=60|g; \
s|max-concurrent-downloads=5|max-concurrent-downloads=10|g; \
s|disable-ipv6=true|disable-ipv6=false|g; \
s|reuse-uri=false|reuse-uri=true|g; \
s|no-netrc=true|no-netrc=false|g; \
s|listen-port=51413|listen-port=59000-59144|g; \
s|dht-listen-port=59000-59144|dht-listen-port=51413|g; \
s|dht-file-path=/root/.aria2/dht.dat|dht-file-path=\${HOME}/.local/share/aria2ng/dht.dat|g; \
s|\$HOME/.aria2/dht.dat|\${HOME}/.local/share/aria2ng/dht.dat|g; \
s|dht-file-path6=/root/.aria2/dht6.dat|dht-file-path6=\${HOME}/.local/share/aria2ng/dht6.dat|g; \
s|\$HOME/.aria2/dht6.dat|\${HOME}/.local/share/aria2ng/dht6.dat|g; \
s|bt-tracker-connect-timeout=60|bt-tracker-connect-timeout=10|g; \
s|bt-tracker-timeout=60|bt-tracker-timeout=10|g; \
s|user-agent=Deluge 1.3.15|user-agent=Deluge 1.3.15-momo-slimy|g; \
s|peer-agent=Deluge 1.3.15|peer-agent=Deluge 1.3.15-momo-slimy|g; \
s|user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 Edg/93.0.961.47|user-agent=Mozilla/5.0 (Ubuntu; Linux) Firefox/100.0-momo-slimy|g; \
s|on-download-stop=/root/.aria2/delete.sh|on-download-stop=\${HOME}/.local/share/aria2ng/delete.sh|g; \
s|on-download-complete=/root/.aria2/clean.sh|on-download-complete=\${HOME}/.local/share/aria2ng/clean.sh|g; \
s|rpc-listen-all=true|rpc-listen-all=false|g; \
s|rpc-secret=P3TERX|#rpc-secret=|g; \
s|#rpc-certificate=/root/.aria2/xxx.pem|#rpc-certificate=\${HOME}/.config/aria2/xxx.pem|g; \
s|#rpc-private-key=/root/.aria2/xxx.key|#rpc-private-key=\${HOME}/.config/aria2/xxx.key|g" \
$HOME/.local/share/aria2ng/aria2.conf
sed -i "222a\# 检查完整性\ncheck-integrity=true\n\n# Metalink 多种下载\nmetalink-enable-unique-protocol=false\n" \
$HOME/.local/share/aria2ng/aria2.conf
代码: 全选
cat > $HOME/.local/share/aria2ng/aria2ng.sh << 'EOF'
#! /bin/bash
set -e
# 获取用户下载目录
source $HOME/.config/user-dirs.dirs
# 定义变量
ARIA2_CONF=$HOME/.config/aria2/aria2.conf
ARIA2_SESSION=$HOME/.config/aria2/aria2.session
# 实例函数
createconf() {
# 创建文件夹
mkdir -p $HOME/.config/aria2
# 生成配置文件
sed "s|\${XDG_DOWNLOAD_DIR}|${XDG_DOWNLOAD_DIR}|g;\
s|\${HOME}|${HOME}|g" \
$HOME/.local/share/aria2ng/aria2.conf > ${ARIA2_CONF}
# 更新 Tracker
$HOME/.local/share/aria2ng/tracker.sh ${ARIA2_CONF}
# 创建会话文件
touch ${ARIA2_SESSION}
}
# 实例化配置文件
test -f ${ARIA2_CONF} || createconf
EOF
# 修复脚本权限
chmod 0755 $HOME/.local/share/aria2ng/aria2ng.sh
代码: 全选
mkdir -p $HOME/.local/share/systemd/user
cat > $HOME/.local/share/systemd/user/aria2c.service << 'EOF'
[Unit]
Description=Aria2c Service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStartPre=%h/.local/share/aria2ng/aria2ng.sh
ExecStart=/usr/bin/aria2c --conf-path=%h/.config/aria2/aria2.conf
ExecStop=/bin/killall aria2c
Restart=always
[Install]
WantedBy=default.target
EOF
代码: 全选
# 安装aria2
sudo apt --yes install aria2
# 刷新user层服务
systemctl --user daemon-reload
# 设为开机启动,并现在启动。
systemctl enable --user --now aria2c.service
代码: 全选
# 下载图标
wget -c https://github.com/mayswind/AriaNg/blob/master/src/tileicon.png -O tileicon.png
mkdir -p $HOME/.local/share/icons/hicolor/128x128/apps
convert tileicon.png -resize 128x $HOME/.local/share/icons/hicolor/128x128/apps/aria2ng.png
update-icon-caches $HOME/.local/share/icons/hicolor
# 再写一个启动脚本
cat > $HOME/.local/share/aria2ng/launch.sh << 'EOF'
#! /bin/bash
set -e
exec xdg-open file://$HOME/.local/share/aria2ng/index.html
EOF
chmod 0755 $HOME/.local/share/aria2ng/launch.sh
# 生成桌面文件
cat > $HOME/.local/share/applications/aria2ng.desktop << EOF
[Desktop Entry]
Type=Application
Exec=$HOME/.local/share/aria2ng/launch.sh
Hidden=false
NoDisplay=false
Icon=aria2ng
X-GNOME-Autostart-enabled=false
X-systemd-skip=true
Name=Myubuntu Aria2NG
Comment=Download files through Aria2NG
Name[zh_CN]=Myubuntu Aria2NG 下载器
Comment[zh_CN]=通过 Aria2NG 下载文件
EOF
update-desktop-database $HOME/.local/share/applications