zoukankan      html  css  js  c++  java
  • Centos离线下载Aria2 AriaNG bt-tracker自动更新

    aria2是一个基于命令行的开源下载工具,支持多协议、多来源(HTTP/HTTPS、FTP、BT种子、磁力链接、Metalink协议等)、多线程的下载。

    一、安装aria2

      两种方式 yum 安装以及源码安装

      1、yum安装

    1 #安装epel源
    2 yum -y install epel-release
    3 yum -y install aria2
    4 #查看aria2版本
    5 aria2c -v

      2、源码安装

    1 yum install gcc*
    2 wget  https://github.com/aria2/aria2/releases/download/release-1.34.0/aria2-1.34.0.tar.gz
    3 tar -zxvf aria2-1.34.0.tar.gz
    4 mv aria2-1.33.1 aria2
    5 cd aria2
    6 ./configure
    7 make
    8 make install

    二、配置aria2

      通过配置文件

    #目录设计/root/.aria2/aria2.conf
    mkdir ~/.aria2
    #创建session文件
    touch ~/.aria2/aria2.session
    #创建配置文件
    vi ~/.aria2/aria2.conf

      粘贴修改如下字段,注意 RPC端口 RPC授权令牌

     1 # 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
     2 dir=/root/downloads
     3 # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
     4 disk-cache=32M
     5 # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
     6 # 预分配所需时间: none < falloc ? trunc < prealloc
     7 # falloc和trunc则需要文件系统和内核支持
     8 # NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
     9 file-allocation=none
    10 # 断点续传
    11 continue=true
    12 
    13 ## 下载连接相关 ##
    14 
    15 # 最大同时下载任务数, 运行时可修改, 默认:5
    16 max-concurrent-downloads=5
    17 # 同一服务器连接数, 添加时可指定, 默认:1
    18 max-connection-per-server=5
    19 # 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
    20 # 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
    21 min-split-size=10M
    22 # 单个任务最大线程数, 添加时可指定, 默认:5
    23 split=20
    24 # 整体下载速度限制, 运行时可修改, 默认:0
    25 #max-overall-download-limit=0
    26 # 单个任务下载速度限制, 默认:0
    27 #max-download-limit=0
    28 # 整体上传速度限制, 运行时可修改, 默认:0
    29 #max-overall-upload-limit=0
    30 # 单个任务上传速度限制, 默认:0
    31 #max-upload-limit=0
    32 # 禁用IPv6, 默认:false
    33 disable-ipv6=true
    34 
    35 ## 进度保存相关 ##
    36 
    37 # 从会话文件中读取下载任务
    38 input-file=/root/.aria2/aria2.session
    39 # 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
    40 save-session=/root/.aria2/aria2.session
    41 # 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
    42 #save-session-interval=60
    43 
    44 ## RPC相关设置 ##
    45 
    46 # 启用RPC, 默认:false
    47 enable-rpc=true
    48 # 允许所有来源, 默认:false
    49 rpc-allow-origin-all=true
    50 # 允许非外部访问, 默认:false
    51 rpc-listen-all=true
    52 # 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
    53 #event-poll=select
    54 # RPC监听端口, 端口被占用时可以修改, 默认:6800
    55 rpc-listen-port=6800
    56 # 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
    57 rpc-secret=pan.test.com
    58 # 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
    59 #rpc-user=
    60 # 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
    61 #rpc-passwd=
    62 
    63 ## BT/PT下载相关 ##
    64 
    65 # 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
    66 follow-torrent=true
    67 # BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
    68 listen-port=6881-6999
    69 # 单个种子最大连接数, 默认:55
    70 bt-max-peers=55
    71 # 打开DHT功能, PT需要禁用, 默认:true
    72 enable-dht=true
    73 # 打开IPv6 DHT功能, PT需要禁用
    74 enable-dht6=false
    75 # DHT网络监听端口, 默认:6881-6999
    76 #dht-listen-port=6881-6999
    77 # 本地节点查找, PT需要禁用, 默认:false
    78 #bt-enable-lpd=false
    79 # 种子交换, PT需要禁用, 默认:true
    80 enable-peer-exchange=true
    81 # 每个种子限速, 对少种的PT很有用, 默认:50K
    82 #bt-request-peer-speed-limit=50K
    83 # 客户端伪装, PT需要
    84 peer-id-prefix=-TR2770-
    85 user-agent=Transmission/2.77
    86 # 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
    87 seed-ratio=0.1
    88 # 强制保存会话, 即使任务已经完成, 默认:false
    89 # 较新的版本开启后会在任务完成后依然保留.aria2文件
    90 #force-save=false
    91 # BT校验相关, 默认:true
    92 #bt-hash-check-seed=true
    93 # 继续之前的BT任务时, 无需再次校验, 默认:false
    94 bt-seed-unverified=true
    95 # 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
    96 bt-save-metadata=true    
    aria2配置文件

    三、aria2使用

      两种模式:作为命令直接调用,RPC Server模式(推荐)

      1、命令直接调用

     1 #直接下载
     2 $ aria2c http://example.org/mylinux.iso    
     3 #从两个地址下载:
     4 $ aria2c http://a/f.iso ftp://b/f.iso
     5 #双线程下载
     6 $ aria2c -x2 http://a/f.iso
     7 #用种子下载
     8 $ aria2c http://example.org/mylinux.torrent
     9 #磁力链接
    10 $ aria2c 'magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C'
    11 #Metalink
    12 $ aria2c http://example.org/mylinux.metalink
    13 #下载文本中所有链接
    14 $ aria2c -i uris.txt

      2、RPC Server模式(推荐)

      启动RPC Server模式

     1 #-D参数指Daemon模式,后台执行 2 aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all -c --dir /root/download -D 

      加载配置文件启动(推荐)

     1 aria2c --conf-path=/root/.aria2/aria2.conf -D 

    四、将aria2设置为系统服务

     1 vi /etc/init.d/aria2c 

     1 #!/bin/sh
     2 ### BEGIN INIT INFO
     3 # Provides: aria2
     4 # Required-Start: $remote_fs $network
     5 # Required-Stop: $remote_fs $network
     6 # Default-Start: 2 3 4 5
     7 # Default-Stop: 0 1 6
     8 # Short-Description: Aria2 Downloader
     9 ### END INIT INFO
    10 case "$1" in
    11 start)
    12   echo -n "Starting aria2c"
    13   /usr/bin/aria2c --conf-path=/root/.aria2/aria2.conf -D
    14   ;;
    15 stop)
    16   echo -n "Shutting down aria2c "
    17   killall aria2c
    18   ;;
    19 restart)
    20   killall aria2c
    21   /usr/bin/aria2c --conf-path=/root/.aria2/aria2.conf -D
    22   ;;
    23 esac
    24 exit

      可执行权限

     1 chmod 7777 /etc/init.d/aria2c 

      控制命令

     1 #重新加载一下
     2 systemctl daemon-reload
     3 #启动
     4 systemctl start aria2c
     5 #停止
     6 systemctl stop aria2c
     7 #重启
     8 #systemctl restart aria2c
     9 #开启自启动
    10 systemctl enable aria2c

    五、防火墙开启RPC,BT端口

    1 firewall-cmd --zone=public --add-port=6800/tcp --permanent
    2 firewall-cmd --zone=public --add-port=6881-6999/tcp --permanent
    3 firewall-cmd --zone=public --add-port=6881-6999/udp --permanent
    4 firewall-cmd --reload

    六、aria2 bt-tracker更新脚本

      实际使用中aria2对种子,磁力链接的下载速度非常令人不满意,经常0 Kb/s需要手动添加tracker才会有速度,但手动添加太麻烦。

      这样问题便解决了。

      1、手动添加tracker的方法(不推荐哦)

    1 #编辑aria2的配置文件
    2 vi ~/.aria2/aria2.conf
    3 #在末尾添加字段,tracker之间用,隔开
    4 bt-tracker=udp://9.rarbg.com:2710/announce,udp://tracker.skyts.net:6969/announce

      2、脚本更新bt-tracker(推荐哦)

       1 #创建bt-tracker更新脚本 2 vi /root/trackers-list-aria2.sh 

     1 #!/bin/bash
     2 killall aria2c
     3 list=`wget -qO- https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt|awk NF|sed ":a;N;s/
    /,/g;ta"`
     4 if [ -z "`grep "bt-tracker" /root/.aria2/aria2.conf`" ]; then
     5     sed -i '$a bt-tracker='${list} /root/.aria2/aria2.conf
     6     echo add......
     7 else
     8     sed -i "s@bt-tracker.*@bt-tracker=$list@g" /root/.aria2/aria2.conf
     9     echo update......
    10 fi

      可执行权限

     1 chmod +x /root/trackers-list-aria2.sh 

      执行脚本

    /root/trackers-list-aria2.sh

      更新过程会先关闭aria2c进程,更新完成再需要手动开启aria2c

  • 相关阅读:
    专业工具,网络随行
    大话设计模式C++实现-文章7章-代理模式
    socket抓取网页
    Android系统Surface机制的SurfaceFlinger服务对帧缓冲区(Frame Buffer)的管理分析
    Android系统Surface机制的SurfaceFlinger服务的启动过程分析
    Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划
    Android应用程序请求SurfaceFlinger服务渲染Surface的过程分析
    Android应用程序请求SurfaceFlinger服务创建Surface的过程分析
    Android应用程序与SurfaceFlinger服务之间的共享UI元数据(SharedClient)的创建过程分析
    Android应用程序与SurfaceFlinger服务的连接过程分析
  • 原文地址:https://www.cnblogs.com/sjshare/p/9729712.html
Copyright © 2011-2022 走看看