前言:

众所周知,在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

linux下aria2的安装与配置相关推荐

  1. Linux下Nagios的安装与配置

    Linux下Nagios的安装与配置 2017-03-23 17:40:20     来源:    点击:0 Nagios是企业普遍使用的最具影响力的网络信息监视系统之一,它可以动态监视指定的网络状态 ...

  2. Linux下samba的安装与配置

    physique 博客园 首页 新随笔 联系 管理 订阅 随笔- 203  文章- 0  评论- 33 Linux下samba的安装与配置 转载来源:http://blog.chinaunix.net ...

  3. linux下jdk的安装与配置jdk-6u45-linux-i586.bin

    linux下jdk的安装与配置 一.安装JDK从sun网站上直接下载JDK:http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45- ...

  4. linux 安装cvs,linux下cvs详细安装和配置.docx

    Linux 下cvs详细安装和配置 2009-03-18 14:37:12 标签:[推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始岀处 作者信息和本声明.否则将追究 ...

  5. linux mrtg 安装,17.1.2 Linux下MRTG的安装与配置

    17.1.2  Linux下MRTG的安装与配置 MRTG通过SNMP从设备中得到使用设备(如交换机)的网络流量信息,并把PNG格式图形以HTML方式显示出来,便于网络管理员对所监控设备(交换机)进行 ...

  6. Linux下Tomcat的安装与配置

    本篇文章主要对如何在Linux下安装与配置Tomcat进行介绍.             如果想要了解Windows下Tomcat的安装与配置,请参考文章: https://blog.csdn.net ...

  7. Linux下EPICS的安装与配置——CSS安装与配置

    本文继"Linux系统下EPICS的安装与配置"文章后,给出了客户端CSS新版本Phoebus的安装与配置. Phoebus是一个框架和一系列工具,用于监视和操作大型控制系统,例如 ...

  8. linux下Mysql 的安装、配置、数据导入导出

    为什么80%的码农都做不了架构师?>>>    <p><span>MySQL</span><span>是一种</span> ...

  9. linux下postgresql服务,Linux下PostgreSQL数据库安装、配置与日常服务管理

    1. 数据库安装与配置步骤 安装环境准备 操作系统: Oracle Linux Server 6.5 IP 地址: 192.168.6.177 版本信息: MySQL Community Server ...

最新文章

  1. SpringCloud教程- 服务消费者(rest+ribbon)(SpringCloud版本Finchley)
  2. 技本功丨收藏!斜杠青年与你共探微信小程序云开发(上篇)
  3. Windows Phone 7实现图片数据绑定
  4. 手写实现简单的Vue事件总线
  5. 【需求工程】需求工程
  6. 【论文学习】Densely Connected Convolutional Networks 学习
  7. 配置修改Nginx支持 PATHINFO
  8. 结合我的创业经历,有一下3点感受
  9. python 做服务程序_windows平台把python程序制作成windows服务并开机启动(实践的坑)...
  10. 博途wincc 与 sql 连接操作(博途V14 wincc advanced)
  11. 2022-2028全球放射性废物管理系统行业调研及趋势分析报告
  12. 学习 MySQL 需要知道的 28 个小技巧
  13. qrCode二维码生成器
  14. Tacotron2 NVIDIA版本优化停顿问题之Biao-Bei数据PhonePrssCrystal
  15. 正牌韦小宝之奉旨沟女 解说
  16. Redis常用基本命令(1)
  17. echarts 散点图实现正负值颜色不同,方向不同
  18. E01 -- CSS样式中 报错 { expectedcss(css-lcurlyexpected)
  19. 百度地图API批量地址转坐标(支持Excel上传,附案例)
  20. 航模电池基本使用及保养

热门文章

  1. CRC32的几种计算方法
  2. 大家信夫:社会信用体系高质量发展的根本特征
  3. 契约测试(中):利用PACT做契约测试
  4. 市场整改篇之应用宝报告
  5. [SRS+docker]实现直播服务器 3 基于webRTC协议的srs低延迟直播研究
  6. 震惊!!!一个关于c语言图形化界面编程的小游戏
  7. 微型计算机控制技术 王新,出版教材和专著 - 教材专著-建设成果 - 安全工程国家级实验教学示范中心(河南理工大学)...
  8. IFE斌斌学院-JS总结(2)
  9. java 递归函数_java 递归函数
  10. python 鼠标轨迹录制_按键时录制(获取)鼠标单击位置,在python中释放相同键时停止录制...