1. 程式人生 > >Centos離線下載Aria2 AriaNG bt-tracker自動更新

Centos離線下載Aria2 AriaNG bt-tracker自動更新

服務 技術分享 離線下載 closed listen 完成後 note span 多協議

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才會有速度,但手動添加太麻煩。

  • https://github.com/ngosang/trackerslist提供了一份tracker自動更新列表
  • Aria2 bt-tracker跟蹤服務器列表自動更新 – Zephyr - 自由的風提供了bt-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/\n/,/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

Centos離線下載Aria2 AriaNG bt-tracker自動更新