Aria2是一个有好几年的开源离线多平台运行的下载程序,用python写成,有VPS资源的可以用来下载可以获得高速下载,非常方便。
现在各大AI写代码已经是非常成熟的功能了,今天用kimi写了一个aria2一键安装程序,不到1分钟完成,流畅运行,源码如下,有需要的可以拿去研究,一键安装完成带web面板。
#!/bin/bash
# ============================================
# Aria2 一键安装脚本
# 支持: Debian 11/12 | Ubuntu 20.04/22.04/24.04 | CentOS 7/8/9
# 包含: aria2 + AriaNg WebUI + 自动配置
# ============================================
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 配置变量
ARIA2_PORT=6800
ARIA2_RPC_SECRET=$(openssl rand -hex 16 2>/dev/null || cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32)
ARIA2_DIR="$HOME/downloads"
ARIA2_CONF_DIR="$HOME/.aria2"
ARIA2_CONF="$ARIA2_CONF_DIR/aria2.conf"
ARIA2_SESSION="$ARIA2_CONF_DIR/aria2.session"
ARIA2_DHT="$ARIA2_CONF_DIR/dht.dat"
# 检查 root
if [ "$EUID" -ne 0 ]; then
echo -e "${RED}请使用 sudo 或 root 用户运行此脚本${NC}"
exit 1
fi
# 获取系统信息
echo -e "${BLUE}正在检测系统...${NC}"
if [ -f /etc/os-release ]; then
. /etc/os-release
OS=$ID
VER=$VERSION_ID
else
echo -e "${RED}无法识别系统类型${NC}"
exit 1
fi
# 安装依赖和 aria2
install_aria2() {
echo -e "${BLUE}正在安装 aria2...${NC}"
case $OS in
debian|ubuntu)
apt-get update -qq
apt-get install -y -qq aria2 curl wget unzip openssl
;;
centos|rhel|rocky|almalinux|fedora)
if command -v dnf &> /dev/null; then
dnf install -y aria2 curl wget unzip openssl
else
yum install -y aria2 curl wget unzip openssl
fi
;;
*)
echo -e "${RED}不支持的系统: $OS${NC}"
exit 1
;;
esac
}
# 创建配置目录和文件
setup_config() {
echo -e "${BLUE}正在创建配置文件...${NC}"
mkdir -p "$ARIA2_CONF_DIR"
mkdir -p "$ARIA2_DIR"
touch "$ARIA2_SESSION"
cat > "$ARIA2_CONF" <<EOF
# Aria2 配置文件
# 基本设置
dir=$ARIA2_DIR
max-concurrent-downloads=5
split=16
min-split-size=10M
max-connection-per-server=16
# RPC 设置
enable-rpc=true
rpc-listen-port=$ARIA2_PORT
rpc-allow-origin-all=true
rpc-listen-all=true
rpc-secret=$ARIA2_RPC_SECRET
# 会话保存
input-file=$ARIA2_SESSION
save-session=$ARIA2_SESSION
save-session-interval=30
force-save=true
# DHT 设置
enable-dht=true
enable-dht6=false
dht-file-path=$ARIA2_DHT
dht-file-path6=$ARIA2_DHT.6
# BT 设置
enable-peer-exchange=true
bt-enable-lpd=true
bt-max-peers=128
seed-time=0
# 性能优化
disk-cache=64M
file-allocation=prealloc
continue=true
max-overall-download-limit=0
max-overall-upload-limit=1M
# 日志
# log=$ARIA2_CONF_DIR/aria2.log
# log-level=warn
# 其他
user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.0
EOF
chmod 600 "$ARIA2_CONF"
}
# 安装 AriaNg (Web UI)
install_ariang() {
echo -e "${BLUE}正在安装 AriaNg WebUI...${NC}"
ARIANG_DIR="/var/www/ariang"
mkdir -p "$ARIANG_DIR"
# 获取最新版本
ARIANG_VER=$(curl -s https://api.github.com/repos/mayswind/AriaNg/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
if [ -z "$ARIANG_VER" ]; then
ARIANG_VER="1.3.6"
fi
echo -e "${YELLOW}下载 AriaNg $ARIANG_VER...${NC}"
wget -q --show-progress "https://github.com/mayswind/AriaNg/releases/download/$ARIANG_VER/AriaNg-$ARIANG_VER.zip" -O /tmp/ariang.zip
unzip -q -o /tmp/ariang.zip -d "$ARIANG_DIR"
rm -f /tmp/ariang.zip
# 配置 Nginx
if command -v nginx &> /dev/null || command -v httpd &> /dev/null; then
setup_web_server
else
echo -e "${YELLOW}未检测到 Web 服务器,使用 Python 简易 HTTP 服务${NC}"
# 创建 systemd 服务用于 AriaNg
cat > /etc/systemd/system/ariang-web.service <<EOF
[Unit]
Description=AriaNg Web UI
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=$ARIANG_DIR
ExecStart=/usr/bin/python3 -m http.server 8080
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable ariang-web
fi
}
# 配置 Web 服务器
setup_web_server() {
if command -v nginx &> /dev/null; then
cat > /etc/nginx/conf.d/ariang.conf <<EOF
server {
listen 8080;
server_name _;
root $ARIANG_DIR;
index index.html;
location / {
try_files \$uri \$uri/ =404;
}
}
EOF
nginx -s reload 2>/dev/null || true
elif command -v httpd &> /dev/null; then
cat > /etc/httpd/conf.d/ariang.conf <<EOF
Listen 8080
<VirtualHost *:8080>
DocumentRoot $ARIANG_DIR
<Directory "$ARIANG_DIR">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
EOF
systemctl reload httpd 2>/dev/null || true
fi
}
# 创建 systemd 服务
setup_service() {
echo -e "${BLUE}正在创建系统服务...${NC}"
# 检测实际用户(sudo 情况下)
REAL_USER=${SUDO_USER:-$USER}
REAL_HOME=$(eval echo ~$REAL_USER)
cat > /etc/systemd/system/aria2.service <<EOF
[Unit]
Description=Aria2 Download Manager
After=network.target
[Service]
Type=simple
User=$REAL_USER
ExecStart=/usr/bin/aria2c --conf-path=$REAL_HOME/.aria2/aria2.conf
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable aria2
systemctl start aria2
}
# 安装完成后信息
show_info() {
IP=$(hostname -I | awk '{print $1}')
echo -e "\n${GREEN}========================================${NC}"
echo -e "${GREEN} Aria2 安装完成!${NC}"
echo -e "${GREEN}========================================${NC}"
echo -e "${YELLOW}RPC 地址:${NC} http://$IP:$ARIA2_PORT/jsonrpc"
echo -e "${YELLOW}RPC 密钥:${NC} ${RED}$ARIA2_RPC_SECRET${NC}"
echo -e "${YELLOW}下载目录:${NC} $ARIA2_DIR"
echo -e "${YELLOW}配置文件:${NC} $ARIA2_CONF"
echo -e "${YELLOW}Web UI:${NC} http://$IP:8080"
echo -e "${GREEN}========================================${NC}"
echo -e "\n${BLUE}常用命令:${NC}"
echo -e " 启动: ${GREEN}sudo systemctl start aria2${NC}"
echo -e " 停止: ${GREEN}sudo systemctl stop aria2${NC}"
echo -e " 重启: ${GREEN}sudo systemctl restart aria2${NC}"
echo -e " 状态: ${GREEN}sudo systemctl status aria2${NC}"
echo -e " 查看日志: ${GREEN}journalctl -u aria2 -f${NC}"
echo -e "\n${YELLOW}提示: 在 AriaNg 设置中填入 RPC 密钥即可连接${NC}"
}
# 主流程
main() {
echo -e "${GREEN}=== Aria2 一键安装脚本 ===${NC}\n"
install_aria2
setup_config
install_ariang
setup_service
# 启动服务
systemctl start aria2 2>/dev/null || true
systemctl start ariang-web 2>/dev/null || true
show_info
# 保存配置信息
cat > "$ARIA2_CONF_DIR/install-info.txt" <<EOF
安装时间: $(date)
RPC 端口: $ARIA2_PORT
RPC 密钥: $ARIA2_RPC_SECRET
下载目录: $ARIA2_DIR
Web UI: http://$(hostname -I | awk '{print $1}'):8080
EOF
}
main "$@"
使用方法:
1. 下载脚本
wget https://…/install_aria2.sh
2. 添加执行权限
chmod +x install_aria2.sh
3. 以 root 运行
sudo ./install_aria2.sh
管理命令:
sudo systemctl start|stop|restart|status aria2
journalctl -u aria2 -f # 查看实时日志
脚本功能:
| 功能 | 说明 |
|---|---|
| 自动检测系统 | 支持 Debian/Ubuntu/CentOS 及其衍生版 |
| 自动安装 aria2 | 通过系统包管理器安装 |
| 自动生成配置 | 包含优化的下载参数、RPC 配置 |
| 自动生成密钥 | 32 位随机 RPC 密钥,安全连接 |
| 安装 AriaNg | 从 GitHub 下载最新版 Web UI |
| 创建系统服务 | systemd 管理,开机自启 |
| 简易 Web 服务 | 无 Nginx 时自动用 Python 提供 8080 端口 |
KIMI,deepseek,GPT,gemini,grok都不错,特别是后面三个,还有一个claude本人还没用。
