aria2介绍

迅雷已经用了 10 年,一直把它看作是速度最快也最方便的下载工具,但是,迅雷堕落了:

  • thunder:\ 迅雷专属链接越来越少,基本都是磁力、BT 的天下
  • 迅雷会员加速不再给力,大量资源速度为 0。会员虽然还有一年多,但几乎没用了
  • 迅雷功能更新倒逼客户升级,而升到迅雷 U 享版后,迅雷提高自身权限,强制接收所有下。有些小文件,我只想用浏览器直接下载;一些不想下的链接,也会被迅雷非常敏感的感应到,强制下载,真的真的特别流氓。

为什么选择 Aria2 ?

  • 优点:比较全能,HTTP 下载和 BT 下载都有,性能也相当不错,速度不比迅雷慢
  • 缺点:无 UI,需要自备;配置麻烦,上手较难。

但是,这个缺点,是可以摒弃的,只要安装AriaNg 或者 webui-aria2,即可解决;

安装aria2

  1. 安装aria2:sudo apt-get install aria2

  2. 配置aria2.conf文件

    1
    2
    3
    4
    sudo mkdir /etc/aria2    #新建文件夹 
    sudo touch /etc/aria2/aria2.session #新建session文件
    sudo chmod 777 /etc/aria2/aria2.session #设置aria2.session可写
    sudo nano /etc/aria2/aria2.conf #创建配置文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    ## '#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ##
    ## 被注释的选项填写的是默认值, 建议在需要修改时再取消注释 ##

    ## 文件保存相关 ##

    # 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
    dir= /home/yangxl/downloads
    # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
    #disk-cache=32M
    # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
    # 预分配所需时间: none < falloc ? trunc < prealloc
    # falloc和trunc则需要文件系统和内核支持
    # NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
    #file-allocation=none
    # 断点续传
    continue=true

    ## 下载连接相关 ##

    # 最大同时下载任务数, 运行时可修改, 默认:5
    #max-concurrent-downloads=5
    # 同一服务器连接数, 添加时可指定, 默认:1
    max-connection-per-server=5
    # 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
    # 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
    min-split-size=10M
    # 单个任务最大线程数, 添加时可指定, 默认:5
    #split=5
    # 整体下载速度限制, 运行时可修改, 默认: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
    # 连接超时时间, 默认:60
    #timeout=60
    # 最大重试次数, 设置为0表示不限制重试次数, 默认:5
    #max-tries=5
    # 设置重试等待的秒数, 默认:0
    #retry-wait=0

    ## 进度保存相关 ##

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

    ## RPC相关设置 ##

    # 启用RPC, 默认:false
    enable-rpc=true
    # 允许所有来源, 默认:false
    rpc-allow-origin-all=true
    # 允许非外部访问, 默认:false
    rpc-listen-all=true
    # 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
    #event-poll=select
    # RPC监听端口, 端口被占用时可以修改, 默认:6800
    #rpc-listen-port=6800
    # 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
    #rpc-secret=<TOKEN>
    # 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
    #rpc-user=<USER>
    # 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
    #rpc-passwd=<PASSWD>
    # 是否启用 RPC 服务的 SSL/TLS 加密,
    # 启用加密后 RPC 服务需要使用 https 或者 wss 协议连接
    #rpc-secure=true
    # 在 RPC 服务中启用 SSL/TLS 加密时的证书文件,
    # 使用 PEM 格式时,您必须通过 --rpc-private-key 指定私钥
    #rpc-certificate=/path/to/certificate.pem
    # 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件
    #rpc-private-key=/path/to/certificate.key

    ## BT/PT下载相关 ##

    # 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
    #follow-torrent=true
    # BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
    listen-port=51413
    # 单个种子最大连接数, 默认:55
    #bt-max-peers=55
    # 打开DHT功能, PT需要禁用, 默认:true
    enable-dht=false
    # 打开IPv6 DHT功能, PT需要禁用
    #enable-dht6=false
    # DHT网络监听端口, 默认:6881-6999
    #dht-listen-port=6881-6999
    # 本地节点查找, PT需要禁用, 默认:false
    #bt-enable-lpd=false
    # 种子交换, PT需要禁用, 默认:true
    enable-peer-exchange=false
    # 每个种子限速, 对少种的PT很有用, 默认:50K
    #bt-request-peer-speed-limit=50K
    # 客户端伪装, PT需要
    peer-id-prefix=-TR2770-
    user-agent=Transmission/2.77
    peer-agent=Transmission/2.77
    # 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
    seed-ratio=0
    # 强制保存会话, 即使任务已经完成, 默认:false
    # 较新的版本开启后会在任务完成后依然保留.aria2文件
    #force-save=false
    # BT校验相关, 默认:true
    #bt-hash-check-seed=true
    # 继续之前的BT任务时, 无需再次校验, 默认:false
    bt-seed-unverified=true
    # 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
    bt-save-metadata=true
  3. 启动aria2

    1
    2
    3
    sudo aria2c --conf-path=/etc/aria2/aria2.conf
    # 后台运行
    sudo aria2c --conf-path=/etc/aria2/aria2.conf -D
  4. 事例

    • Download from WEB:aria2c http://example.org/mylinux.iso

    • Download from 2 sources: aria2c http://a/f.iso ftp://b/f.iso

    • Download using 2 connections per host: aria2c -x2 http://a/f.iso

    • BitTorrent: aria2c http://example.org/mylinux.torrent

    • BitTorrent Magnet URI: aria2c 'magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C'

    • Metalink: aria2c http://example.org/mylinux.metalink

    • Download URIs found in text file: aria2c -i uris.txt

安装AriaNg

  1. 下载最新发布版本: https://github.com/mayswind/AriaNg/releases

  2. AriaNg 现在提供三种版本, 标准版、单文件版和 AriaNg Native. 标准版适合在 Web 服务器中部署, 提供资源缓存和按需加载的功能. 单文件版适合本地使用, 您下载后只要在浏览器中打开唯一的 html 文件即可. AriaNg Native 同样适合本地使用, 并且不需要使用浏览器.

  3. 下载标准版,将其部署到nginx即可

增加账号密码访问限制

1
2
3
4
5
6
7
8
# 安装htpasswd
sudo apt install apache2-utils
# 创建密码
htpasswd -c -d /etc/nginx/pass_file username
# 输入两次密码后
# 修改nginx配置
auth_basic "please input your password";
auth_basic_user_file /etc/nginx/pass_file;

其他下载工具

transmission

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
docker run \
-idt \
--name=transmission \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e TRANSMISSION_WEB_HOME=/combustion-release/ \
-e USER=yxl2628 \
-e PASS=Flyinsky@2628#! \
-p 9091:9091 \
-p 51413:51413 \
-p 51413:51413/udp \
-v /data/transmission:/config \
-v /data/transmission:/downloads \
-v /data/transmission:/watch \
--restart=always \
linuxserver/transmission