前言:
众所周知,在linux系统下是不可以直接执行exe的文件的,理所当然地我们平时用的迅雷与百度网盘等这些下载工具自然就无法使用了,所以在下载一些文件的时候可能有些麻烦。当然如果是有直链的话,直接用wget来下载就可以了,但是要下载bt文件或磁力文件时就无处下手了。
在ubuntu系统下自带一个bt下载工具(transmission),可以在命令行输入打开:
sudo transmission-gtk
但是个人使用了一下,磁力链没有速度,bt种子速度只有十几kb,无耐只能放弃这个了。于是一番百度也尝试了安装一些其它的工具,但是都不尽人意(也可能是我配置时,弄错了些什么)。嘛,一番乱搞之后,发现用aria2下载一个bt种子时,居然可以爆满网速(看种子的服务器远近而言)
aria2简介:
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.
翻译:
aria2是一个轻量级的多协议多源命令行下载实用程序。它支持http/https、ftp、sftp、bittorrent和metalink。可以通过内置的JSON-RPC和XML-RPC接口操作aria2。
废话不多说,下面开始安装aria2。
安装步骤:
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
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 --version
给予update_gcc.sh文件可执行权限并执行
chmod 754 update_gcc.sh && ./update_gcc.sh
等待完成!!!
step3: 解压并开始编译安装
tar zxvf aria2-1.33.0.tar.gz && cd aria2-1.33.0 && mkdir build && cd build && …/configure && make && make install
比较长时间的等待~~
step4: 创建目录与配置文件
cd /etc/ && mkdir aria2 && cd aria2 && touch aria2c.conf && touch aria2.session
编辑aria2c.conf文件内容,内容如下:
#dir=~/download
disk-cache=5M
file-allocation=none
continue=true
max-concurrent-downloads=5
max-connection-per-server=15
min-split-size=10M
split=5
#max-overall-download-limit=0
#max-download-limit=0
max-overall-upload-limit=20kb
max-upload-limit=5kb
disable-ipv6=true
check-certificate=false
#运行覆盖已存在文件
allow-overwrite=true
#自动重命名
auto-file-renaming
input-file=/etc/aria2/aria2.session
错误/未完成
的下载任务到会话文件save-session=/etc/aria2/aria2.session
save-session-interval=30
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
#event-poll=select
rpc-listen-port=6800
rpc-save-upload-metadata=false
#follow-torrent=true
listen-port=51413
#bt-max-peers=55
enable-dht=true
enable-dht6=false
#dht-listen-port=6881-6999
bt-enable-lpd=true
enable-peer-exchange=true
#bt-request-peer-speed-limit=50K
peer-id-prefix=-UT341-
user-agent=uTorrent/341(109279400)(30888)
seed-ratio=1.0
#force-save=false
#bt-hash-check-seed=true
bt-seed-unverified=true
#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
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