linux下aria2的安装与配置
前言:
众所周知,在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 # 链接到新版本的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