前言:linux
衆所周知,在linux系統下是不能夠直接執行exe的文件的,理所固然地咱們平時用的迅雷與百度網盤等這些下載工具天然就沒法使用了,因此在下載一些文件的時候可能有些麻煩。固然若是是有直鏈的話,直接用wget來下載就能夠了,可是要下載bt文件或磁力文件時就無處下手了。c++
在ubuntu系統下自帶一個bt下載工具(transmission),能夠在命令行輸入打開:git
sudo transmission-gtk
可是我的使用了一下,磁力鏈沒有速度,bt種子速度只有十幾kb,無耐只能放棄這個了。因而一番百度也嘗試了安裝一些其它的工具,可是都不盡人意(也多是我配置時,弄錯了些什麼)。嘛,一番亂搞以後,發現用aria2下載一個bt種子時,竟然能夠爆滿網速 github
aria2簡介:ubuntu
aria2 is a lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.centos
翻譯:瀏覽器
aria2是一個輕量級的多協議多源命令行下載實用程序。它支持http/https、ftp、sftp、bittorrent和metalink。能夠經過內置的JSON-RPC和XML-RPC接口操做aria2。緩存
廢話很少說,下面開始安裝aria2。bash
安裝步驟:服務器
ubuntu的用戶能夠直接使用下面命令完成aria2的安裝:
sudo apt-get install aria2
下面是我在centos下的安裝:
step1: 下載
到githup上獲取源碼:
https://github.com/aria2/aria2/releases
我使用的是這個版本:
https://github.com/aria2/aria2/releases/download/release-1.33.0/aria2-1.33.0.tar.gz
cd /usr/local/src && wget https://github.com/aria2/aria2/releases/download/release-1.33.0/aria2-1.33.0.tar.gz
step2: 升級gcc
編譯aria2須要升級一下gcc,最低要求 gcc >= 4.8.2,若是你的gcc已經在符合這個要求就能夠跳到下一步了
複製下面代碼,保存爲:update_gcc.sh
# 添加一個源 cd /etc/yum.repos.d wget http://people.centos.org/tru/devtools-2/devtools-2.repo # 安裝所需包 yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++ # 保存原來的版本 mv /usr/bin/gcc /usr/bin/gcc-4.4.7 mv /usr/bin/g++ /usr/bin/g++-4.4.7 mv /usr/bin/c++ /usr/bin/c++-4.4.7 # 連接到新版本的gcc ln -s /opt/rh/devtoolset-2/root/usr/bin/gcc /usr/bin/gcc ln -s /opt/rh/devtoolset-2/root/usr/bin/c++ /usr/bin/c++ ln -s /opt/rh/devtoolset-2/root/usr/bin/g++ /usr/bin/g++ # 查看當前gcc版本 gcc --version
給予update_gcc.sh文件可執行權限並執行
chmod 754 update_gcc.sh && ./update_gcc.sh
* 在執行以前須要確保安裝了wget,若是沒有wget的話,腳本執行會報錯!!!
等待完成!!!
step3: 解壓並開始編譯安裝
tar zxvf aria2-1.33.0.tar.gz && cd aria2-1.33.0 && mkdir build && cd build && ../configure && make && make install
比較長時間的等待~~
step4: 建立目錄與配置文件
# 這一步須要切換到root下進行 # 須要 su 一下 cd /etc/ && mkdir aria2 && cd aria2 && touch aria2c.conf && touch aria2.session
編輯aria2c.conf文件內容,內容以下:
# 文件的保存路徑(可以使用絕對路徑或相對路徑), 默認: 當前啓動位置 #dir=~/download # 啓用磁盤緩存, 0爲禁用緩存, 需1.16以上版本, 默認:16M disk-cache=5M # 文件預分配方式, 能有效下降磁盤碎片, 默認:prealloc # 預分配所需時間: none < falloc ? trunc < prealloc # falloc和trunc則須要文件系統和內核支持, NTFS建議使用falloc, EXT3/4建議trunc file-allocation=none # 斷點續傳 continue=true ## 下載鏈接相關 ## # 最大同時下載任務數, 運行時可修改, 默認:5 max-concurrent-downloads=5 # 同一服務器鏈接數, 添加時可指定, 默認:1 max-connection-per-server=15 # 最小文件分片大小, 添加時可指定, 取值範圍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=20kb # 單個任務上傳速度限制, 默認:0 max-upload-limit=5kb # 禁用IPv6, 默認:false disable-ipv6=true # 禁用https證書檢查 check-certificate=false #運行覆蓋已存在文件 allow-overwrite=true #自動重命名 auto-file-renaming ## 進度保存相關 ## # 從會話文件中讀取下載任務 input-file=/etc/aria2/aria2.session # 在Aria2退出時保存`錯誤/未完成`的下載任務到會話文件 save-session=/etc/aria2/aria2.session # 定時保存會話, 0爲退出時才保存, 需1.16.1以上版本, 默認:0 save-session-interval=30 ## 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-save-upload-metadata=false ## BT/PT下載相關 ## # 當下載的是一個種子(以.torrent結尾)時, 自動開始BT任務, 默認:true #follow-torrent=true # BT監聽端口, 當端口被屏蔽時使用, 默認:6881-6999 listen-port=51413 # 單個種子最大鏈接數, 默認:55 #bt-max-peers=55 # 打開DHT功能, PT須要禁用, 默認:true enable-dht=true # 打開IPv6 DHT功能, PT須要禁用 enable-dht6=false # DHT網絡監聽端口, 默認:6881-6999 #dht-listen-port=6881-6999 # 本地節點查找, PT須要禁用, 默認:false bt-enable-lpd=true # 種子交換, PT須要禁用, 默認:true enable-peer-exchange=true # 每一個種子限速, 對少種的PT頗有用, 默認:50K #bt-request-peer-speed-limit=50K # 客戶端假裝, PT須要 peer-id-prefix=-UT341- user-agent=uTorrent/341(109279400)(30888) # 當種子的分享率達到這個數時, 自動中止作種, 0爲一直作種, 默認:1.0 seed-ratio=1.0 # 強制保存會話, 話即便任務已經完成, 默認:false # 較新的版本開啓後會在任務完成後依然保留.aria2文件 #force-save=false # BT校驗相關, 默認:true #bt-hash-check-seed=true # 繼續以前的BT任務時, 無需再次校驗, 默認:false bt-seed-unverified=true # 保存磁力連接元數據爲種子文件(.torrent文件), 默認:false #bt-save-metadata=false #僅下載種子文件 bt-metadata-only=true #經過網上的種子文件下載,種子保存在內存 follow-torrent=mem
step5: 設置環境變量
編輯~/.bashrc文件,加入下面內容
export PATH=/usr/local/src/aria2-1.33.0/build/src:$PATH
執行下面命令,使環境變量設置生效:
source ~/.bashrc
完成這一系列操做後,輸入 aria 並能夠補全的話就說明aria2已經安裝成功了!!!
而後,你就可使用aria2下載你的bt種子或磁力鏈了,下面是使用說明:
[root@nowtd build]# aria2c -h 用法:aria2c [OPTIONS] [URI | MAGNET | TORRENTFILEILE | METALINK_FILE]... 正列出附有標籤「#basic」的選項。 參見「aria2c -h#help」以獲知全部可用標籤。 選項: -v, --version 打印版本號並退出。 標籤: #basic -h, --help[=#標籤|關鍵字] 顯示用法並退出。 幫助信息按照以「#」開頭的標籤分類。 例如,輸入「--help=#http」會獲得帶「#http」 標籤的各選項的用法。 若是指定了非標籤的詞,那麼打印名字含這個詞 的各選項的用法。 可能的取值: #basic, #advanced, #http, #https, #ftp, #metalink, #bittorrent, #cookie, #hook, #file, #rpc, #checksum, #experimental, #deprecated, #help, #all 默認: #basic 標籤: #basic, #help -l, --log=日誌 日誌文件名稱。若是指定「-」, , 日誌將被寫到標準輸出。 可能的取值: /path/to/file, - 標籤: #basic -d, --dir=目錄 用於存儲已下載文件的目錄。 可能的取值: /path/to/directory 默認: /usr/local/src/aria2-1.33.0/build 標籤: #basic, #file -o, --out=FILE 文件保存名字。此文件將以此名字永久保存在 -d 參數所指定的相對路徑下。當 -Z 參數被啓用時, 此選項報廢。 可能的取值: /path/to/file 標籤: #basic, #http, #ftp, #file -s, --split=N 使用 N 個鏈接下載文件。如 N 小於須要下載的 URI 數量, 那麼將使用全部鏈接,剩餘的 URL 將做爲候補。 如 N 大於須要下載的 URI 數量,多餘的 URL 將用於並行下載。 到主機的鏈接數量受 --max-connection-per-server 選項限制。 參見 --min-split-size 選項。 可能的取值: 1-* 默認: 5 標籤: #basic, #http, #ftp --file-allocation=方式 指定文件分配方式。 「none」選項表示不預分配空間。 「none」選項表示不預分配空間。 「prealloc」選項表示在下載開始前預先分配空間。 根據文件的大小,這可能會花費一些時間。 若是您正在使用新型文件系統如 ext4(啓用擴展屬性支持), btrfs,xfs 或 NTFS(僅限 MinGW 環境構建), 「falloc」是您最好的選擇。 它幾乎能在一瞬間完成很大(幾個 GiB)文件的預分配。 但注意在比較舊的文件系統如 ext3 和 FAT32 上不要使用「falloc」 由於在這些文件系統上該選項花費的時間和「prealloc」 不相上下,而且在分配完成前 aria2 進程會被徹底阻塞。 若是您的系統中 posix_fallocate() 函數不可用, 「falloc」選項將不適用。 「trunc」將調用 ftruncate() 系統指令或平臺的相應功能 來裁剪得到指定大小的文件。 可能的取值: none, prealloc, trunc, falloc 默認: prealloc 標籤: #basic, #file -V, --check-integrity[=true|false] 經過校驗文件塊或整文件哈希檢查文件的完整性。 該選項僅對 BitTorrent、帶校驗和的 Metalink 和(啓用 --checksum 選項時)HTTP(S)/FTP 下載有效。 如提供的是文件塊的校驗和,在下載時就可自動校驗並重試 損壞的部分;換成整文件,就必須等到下載完成才能校驗。 (哪一種校驗值可用?)這取決於文件長度。 若是校驗失敗,文件將被從新下載。若是同時提供了按塊的 校驗值和全文件校驗值,那麼只會使用塊哈希。 可能的取值: true, false 默認: false 標籤: #basic, #metalink, #bittorrent, #file, #checksum -c, --continue[=true|false] 繼續下載一個僅部分完成的文件。 使用這個選項來繼續下載一個由瀏覽器或其餘程序從開頭單線程下載的文件。 目前這個選項僅能用於 http(s)/ftp 下載。 可能的取值: true, false 默認: false 標籤: #basic, #http, #ftp -i, --input-file=文件 下載 <文件> 中列出的地址。 能夠一次使用多個地址,在同一行裏使用製表符分隔多個地址。使用「-」時從標準輸入讀取。 另外,在每一行地址後能夠指定選項。包含選項的行必須以致少一個空格開始,而且每行一個選項。 在 man 手冊中查看 INPUT FILE 章節。另見 --deferred-input 選項。 可能的取值: /path/to/file, - 標籤: #basic -j, --max-concurrent-downloads=N 設置每一個靜態(HTTP/FTP)URL、種子和 metalink 的最大並行 下載速度。 參見 --split 和 --optimize-concurrent-downloads 選項。 可能的取值: 1-* 默認: 5 標籤: #basic -Z, --force-sequential[=true|false] 從命令行順序獲取連接, 並以單獨的會話下載每一個連接, 如同其餘常見的命令行下載工具。 可能的取值: true, false 默認: false 標籤: #basic -x, --max-connection-per-server=N 每一個下載中對單個服務器的最大鏈接數。 可能的取值: 1-16 默認: 1 標籤: #basic, #http, #ftp -k, --min-split-size=SIZE aria2 不分割小於 2 * SIZE 字節範圍的文件。例如,讓咱們考慮下載 20MiB 的文件,若是 SIZE 爲10M,aria2 能夠將文件拆分爲2個[0-10MiB]和[10MiB-20MiB]的文件,並使用 2 個源(若是 --split>=2)下載它。若是 SIZE 爲 15M,因爲 2 * 15M>20MiB,aria2 不會拆分文件並使用 1 個源下載。你能夠追加 K 或 M(1K = 1024,1M = 1024K)。 可能的取值: 1048576-1073741824 默認: 20M 標籤: #basic, #http, #ftp # 其它請自行查看 aria2c -h
step6: 處理aria2下載bt種子或磁力鏈無速度或速度慢的狀況,添加tracker
在aria2c.conf文件中添加下面內容:
bt-tracker=tracker url.....
例如:
bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.open-internet.nl:6969/announce,udp://tracker.leechers-paradise.org:6969/announce,udp://tracker.opentrackr.org:1337/announce,http://tracker.internetwarriors.net:1337/announce,udp://9.rarbg.to:2710/announce,udp://exodus.desync.com:6969/announce,http://tracker3.itzmx.com:6961/announce,udp://explodie.org:6969/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://denis.stalker.upeer.me:6969/announce,udp://tracker4.itzmx.com:2710/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.port443.xyz:6969/announce,udp://thetracker.org:80/announce,udp://open.stealth.si:80/announce,udp://open.demonii.si:1337/announce,udp://bt.xxx-tracker.com:2710/announce,udp://tracker1.wasabii.com.tw:6969/announce,udp://tracker.torrent.eu.org:451/announce
tracker 地址自行到這裏取最新的添加,每一個地址之間以逗號分開:
https://github.com/ngosang/trackerslist