ARIANG+ARIA2-云端离线下载的实现

发布于 2022-09-25  605 次阅读


工具介绍

工具配置

  • 首先是aria2的配置,这里贴一份我的配置

    #################
    #
    # 井号开头的为注释内容,选项都有相应的注释说明,根据需要修改
    # 被注释的选项填写的是默认值,建议在需要修改时再删掉注释
    # 该配置引用了部分'Aria2完美配置' https://github.com/P3TERX/aria2.conf
    #
    #################
    
    ### 文件保存设置 ###
    
    # 下载目录,可使用绝对路径或相对路径,务必修改成自己的下载路径
    dir=E:\云盘
    
    # 日志文件的保存路径
    log=C:\Users\Administrator\Desktop\9\Aria2.log
    
    # 启用磁盘缓存,0为禁用缓存,默认:16M,最大64M
    # 磁盘缓存的作用是把下载的数据块临时存储在内存中,然后集中写入硬盘,以减少磁盘 I/O ,提升读写性能,延长硬盘寿命
    # 建议在有足够的内存空闲情况下适当增加,但不要超过剩余可用内存空间大小
    # 此项值仅决定上限,实际对内存的占用取决于网速带宽和设备性能等其它因素
    disk-cache=32M
    
    # 文件预分配可以帮助机械硬盘有效降低磁盘碎片,提升磁盘读写性能,延长磁盘寿命
    # 默认:prealloc,可选:none,prealloc,trunc,falloc
    # prealloc 分配速度慢,falloc 和 trunc 则需要文件系统和内核支持,不推荐使用
    # btrfs、xfs、NTFS(仅 MinGW 编译版本)等文件系统建议设置为 falloc
    # Ext3/4(具有扩展支持)建议 trunc
    # 固态硬盘不需要预分配,只建议设置为 none,否则可能会导致双倍文件大小的数据写入,从而影响寿命
    # MacOS 需要注释此项
    file-allocation=prealloc
    
    # 文件预分配大小限制
    # 小于此选项值大小的文件不预分配空间,单位 K 或 M,默认:5M
    # no-file-allocation-limit=32M
    
    # 断点续传
    continue=true
    
    # 始终尝试断点续传,无法断点续传则终止下载,默认:true
    always-resume=true
    
    # 不支持断点续传的 URI 数值,当 always-resume=false 时生效
    # 达到这个数值将从头开始下载,值为 0 时所有 URI 不支持断点续传时才从头开始下载
    # max-resume-failure-tries=0
    
    # 获取服务器文件时间,默认:false
    remote-time=true
    
    ### 进度保存相关设置 ###
    
    # 从会话文件中读取下载任务
    input-file=C:\Users\Administrator\Desktop\9\aria2.session
    
    # 会话文件保存路径
    # Aria2 退出时或指定的时间间隔会保存错误/未完成的下载任务到会话文件
    save-session=C:\Users\Administrator\Desktop\9\aria2.session
    
    # 任务状态改变后保存会话的间隔时间(秒),0 为仅在进程正常退出时保存,默认:0
    # 为了及时保存任务状态、防止任务丢失,此项值只建议设置为 1
    save-session-interval=1
    
    # 自动保存任务进度到控制文件(*.aria2)的间隔时间(秒)
    # 0 为仅在进程正常退出时保存,默认:60
    # 此项值也会间接影响从内存中把缓存的数据写入磁盘的频率
    # 想降低磁盘 IOPS (每秒读写次数)则提高间隔时间
    # 想在意外非正常退出时尽量保存更多的下载进度则降低间隔时间
    # 非正常退出:进程崩溃、系统崩溃、SIGKILL 信号、设备断电等
    auto-save-interval=20
    
    # 强制保存,即使任务已完成也保存信息到会话文件,默认:false
    # 开启后会在任务完成后保留 .aria2 文件,文件被移除且任务存在的情况下重启后会重新下载
    # 关闭后已完成的任务列表会在重启后清空
    force-save=false
    
    ### 下载连接相关 ###
    
    # 文件未找到重试次数,默认:0 (禁用)
    # 重试时同时会记录重试次数,所以也需要设置 max-tries 这个选项
    max-file-not-found=5
    
    # 最大尝试次数,0 表示无限,默认:5
    max-tries=5
    
    # 重试等待时间(秒),默认:0 (禁用)
    retry-wait=15
    
    # 连接超时时间(秒)。默认:60
    connect-timeout=30
    
    # 超时时间(秒)。默认:60
    timeout=30
    
    # 最大同时下载任务数,运行时可修改,默认:5
    #max-concurrent-downloads=5
    
    # 同一服务器最大连接线程数,添加时可指定,默认:1
    # 最大值为 16,且受限于单任务最大连接线程数 split 所设定的值
    max-connection-per-server=16
    
    # 单个任务最大线程数,添加时可指定,默认:5
    split=8
    
    # 最小文件分片大小,添加时可指定,取值范围1M -1024M,默认:20M
    # 比如此项值为 10M,当文件为 20MB 会分成两段并使用两个来源下载,文件为 15MB 则只使用一个来源下载
    # 理论上值越小使用下载分段就越多,所能获得的实际线程数就越大,下载速度就越快,但受限于所下载文件服务器的策略
    min-split-size=8M
    
    # HTTP/FTP 下载分片大小,所有分割都必须是此项值的倍数
    # 最小值为 1M (增强版为 1K),默认:1M
    piece-length=1M
    
    # 允许分片大小变化,默认:false
    # false:当分片大小与控制文件中的不同时将会中止下载
    # true:丢失部分下载进度继续下载
    allow-piece-length-change=true
    
    # 全局最大下载速度限制,运行时可修改,默认:0 (无限制)
    max-overall-download-limit=0
    
    # 全局最大上传速度限制,运行时可修改,默认:0 (无限制)
    # 设置过低可能影响 BT 下载速度
    max-overall-upload-limit=0
    
    # 单任务下载速度限制,默认:0 (无限制)
    max-download-limit=0
    
    # 单任务上传速度限制,默认:0 (无限制)
    max-upload-limit=0
    
    # 禁用 IPv6,默认:false
    disable-ipv6=false
    
    # URI 复用,默认: true
    reuse-uri=false
    
    # 允许覆盖,当相关控制文件(.aria2)不存在时从头开始重新下载,默认:false
    allow-overwrite=false
    
    # 文件自动重命名,此选项仅在 HTTP(S)/FTP 下载中有效
    # 新文件名在名称之后扩展名之前加上一个点和一个数字(1..9999),默认:true
    auto-file-renaming=true
    
    ### 客户端伪装 ###
    
    # 自定义 User Agent
    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
    
    ### RPC相关设置 ###
    
    # 启用 JSON-RPC/XML-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 最大请求大小
    rpc-max-request-size=10M
    
    # 设置的 RPC 授权密钥,取代 --rpc-user 和 --rpc-passwd 选项
    rpc-secret=abcde12345
    
    # 是否启用 RPC 服务的 SSL/TLS 加密,默认:false
    # 启用加密后必须使用 https 或者 wss 协议连接
    # 不推荐开启,建议使用 web server 反向代理
    # 比如 Nginx、Caddy,灵活性更强
    #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下载相关 ###
    
    # BT 监听端口(TCP), 默认:6881-6999
    # 直通外网的设备,比如 VPS ,务必配置防火墙和安全组策略允许此端口入站
    # 内网环境的设备,比如 NAS ,除了防火墙设置,还需在路由器设置外网端口转发到此端口
    listen-port=51413
    
    # DHT 网络与 UDP tracker 监听端口(UDP), 默认:6881-6999
    # 因协议不同,可以与 BT 监听端口使用相同的端口,方便配置防火墙和端口转发策略。
    dht-listen-port=51413
    
    # 下载种子文件(.torrent)自动开始下载,默认:true,可选如下
    # true:保存种子文件
    # false:仅下载种子文件
    # mem:将种子保存在内存中
    follow-torrent=true
    
    # BT 下载最大连接数(单任务),运行时可修改
    # 0 为不限制,默认:55
    # 理想情况下连接数越多下载越快,但在实际情况是只有少部分连接到的做种者上传速度快,其余的上传慢或者不上传
    # 如果不限制,当下载非常热门的种子或任务数非常多时可能会因连接数过多导致进程崩溃或网络阻塞
    # 进程崩溃:如果设备 CPU 性能一般,连接数过多导致 CPU 占用过高,因资源不足 Aria2 进程会强制被终结
    # 网络阻塞:在内网环境下,即使下载没有占满带宽也会导致其它设备无法正常上网
    bt-max-peers=64
    
    # 打开DHT功能,PT需要禁用,默认:true
    enable-dht=false
    
    # 打开IPv6 DHT功能,PT需要禁用
    #enable-dht6=false
    
    # 本地节点查找,PT需要禁用,默认:false
    #bt-enable-lpd=false
    
    # 种子交换,PT需要禁用,默认:true
    enable-peer-exchange=false
    
    # BT 下载期望速度值(单任务),运行时可修改
    # 单位 K 或 M,默认:50K
    # 下载速度低于此选项值时会临时提高连接数来获得更快的下载速度,不过前提是有更多的做种者可供连接
    # 实测临时提高连接数没有上限,但不会像不做限制一样无限增加,会根据算法进行合理的动态调节
    bt-request-peer-speed-limit=5M
    
    # 客户端伪装,PT需要
    peer-id-prefix=-TR2770-
    user-agent=Transmission/2.77
    
    # 最小分享率。当种子的分享率达到此选项设置的值时停止做种
    # 0 为一直做种, 默认:1.0
    # 强烈建议将此选项设置为大于等于 1.0
    seed-ratio=1.0
    
    # 最小做种时间(分钟)
    # 设置为 0 时将在 BT 任务下载完成后停止做种
    seed-time=30
    
    # 做种前检查文件哈希,默认:true
    bt-hash-check-seed=true
    
    # 强制保存会话,即使任务已经完成,默认:false
    # 较新的版本开启后会在任务完成后依然保留.aria2文件
    #force-save=false
    
    # 继续之前的BT任务时,无需再次校验,默认:false
    bt-seed-unverified=true
    
    # 保存磁力链接元数据为种子文件(.torrent文件),默认:false
    bt-save-metadata=true
    
    # BT tracker 服务器连接超时时间(秒)。默认:60
    # 建立连接后,此选项无效,将使用 bt-tracker-timeout 选项的值
    bt-tracker-connect-timeout=45
    
    # BT tracker 服务器超时时间(秒)。默认:60
    bt-tracker-timeout=45
    
    # 保存通过 WebUI(RPC) 上传的种子文件(.torrent),默认:true
    # 所有涉及种子文件保存的选项都建议开启,不保存种子文件有任务丢失的风险
    # 通过 RPC 自定义临时下载目录可能不会保存种子文件
    rpc-save-upload-metadata=true
    
    # BT强制加密, 默认: false
    # 启用后将拒绝旧的 BT 握手协议并仅使用混淆握手及加密
    # 可以解决部分运营商对 BT 下载的封锁,且有一定的防版权投诉与迅雷吸血效果
    # 此选项相当于后面两个选项(bt-require-crypto=true, bt-min-crypto-level=arc4)的快捷开启方式,但不会修改这两个选项的值
    bt-force-encryption=true
    
    # BT加密需求,默认:false
    # 启用后拒绝与旧的 BitTorrent 握手协议(\19BitTorrent protocol)建立连接,始终使用混淆处理握手。
    #bt-require-crypto=true
    
    # BT最低加密等级,可选:plain(明文),arc4(加密),默认:plain
    #bt-min-crypto-level=arc4
    
    ### 高级选项 ###
    
    # 启用异步 DNS 功能,默认:true
    async-dns=true
    
    # 指定异步 DNS 服务器列表,未指定则从 /etc/resolv.conf 中读取。
    async-dns-server=119.29.29.29,223.5.5.5,1.1.1.1,8.8.8.8,114.114.114.114
    
    # 指定单个网络接口,可能的值:接口,IP地址,主机名
    # 如果接口具有多个 IP 地址,则建议指定 IP 地址。
    # 已知指定网络接口会影响依赖本地 RPC 的连接的功能场景,即通过 localhost 和 127.0.0.1 无法与 Aria2 服务端进行讯通。
    #interface=
    
    # 指定多个网络接口,多个值之间使用逗号(,)分隔。
    # 使用 interface 选项时会忽略此项。
    #multiple-interface=
  • github下载的原版aria2是没有配置文件的,需要手动新建三个文件,分别是aria2.conf(配置文件,以上为此文件内容),Aria2.log(日志文件),aria2.session(缓存文件,涉及断点续传功能)

  • aria2.conf中有几个重要部分需要修改,包括

    # 下载目录,可使用绝对路径或相对路径,务必修改成自己的下载路径
    dir=E:\云盘
    
    # 日志文件的保存路径
    log=C:\Users\Administrator\Desktop\9\Aria2.log
    
    # 从会话文件中读取下载任务
    input-file=C:\Users\Administrator\Desktop\9\aria2.session
    
    # 会话文件保存路径
    # Aria2 退出时或指定的时间间隔会保存错误/未完成的下载任务到会话文件
    save-session=C:\Users\Administrator\Desktop\9\aria2.session

以上内容设置为自己的安装地址

### RPC相关设置 ###

# 启用 JSON-RPC/XML-RPC 服务器,默认:false
enable-rpc=true

# 接受所有远程请求,默认:false
rpc-allow-origin-all=true

# 允许外部访问,默认:false
rpc-listen-all=true

# RPC 监听端口,默认:6800
rpc-listen-port=6800

# RPC 最大请求大小
rpc-max-request-size=10M

# 设置的 RPC 授权密钥,取代 --rpc-user 和 --rpc-passwd 选项
rpc-secret=abcde12345

为实现功能,rpc功能需要全部打开

  • 下面是对ariang的配置,打开ariang设置,点击全局右边的rpc,注意输入conf文件中设置好的rpc密匙,

启动工具

  • aria2启动指令为aria2c.exe --conf-path=aria2.conf(不能直接点exe程序)
  • 启动后程序在未被关闭时将运行在cmd中监听6800端口(或者设置好的端口)
  • ariang放入服务器环境直接网页访问,按照上述方法配置并连接本机(或指定ip)的aria即可实现离线下载

故障排查-ariang与aria2无法建立连接

  • 检查ariang是否输入密匙
  • 检查服务器(或本机)是否开放6800端口,否则请求会被防火墙拦截
  • rpc设置界面的/后面的jsonrpc一定不要删除
届ける言葉を今は育ててる
最后更新于 2024-02-07