十分怀念那个下载工具百花齐放的年代,如今的我们带宽已经超过那个年代100倍,但是除了用迅雷以外很少有下载工具能够有效的下载:BT的几大工具已经被迅雷吸血致死了;电驴已经的名存实亡;flashget,网络蚂蚁等一系列迅雷的老大哥已经被迅雷拍到沙滩上,现在都成了死鱼干了;甚至于抱着粗大腿的QQ旋风也死了。
但是需求没有变,下载是互联网最核心的需求,几乎和吃饭,喝水,呼吸一样的重要!!!
所以不甘寂寞的程序员们就一直在github上发布无数的下载工具,aira2就这无数工具中冒气的闪闪红星--自带开源免费的特点,多平台兼容开发者多,已经成为国内不少下载工具的内嵌下载工具,其功力可见一斑。
aira2的github地址:https://github.com/aria2/aria2
目前github上此项目的热门程度:
那么现在简单介绍一下这个aira2
先放个整合包,电脑直接可用的,aria2-整合下载包,后面详细介绍!
1. aria2 是一款使用 C++ 编写的轻量级跨平台命令行下载工具,支持 HTTP/HTTPS, FTP, SFTP, BitTorrent 和 Metalink 等多种协议。
2. aria2 具备很多功能特性,这里简单说一下:
- 命令行工具
- 支持多协议:HTTP(S)/FTP/SFTP/BitTorrent/Metalink
- 支持 HTTP 认证,支持 HTTP 代理,Cookie,自定义头部···
- 上传/下载速度限制
- 支持 JSON-RPC/XML-RPC 轻量级远程调用接口
aira2的下载和环境变量的配置
1. aira2是绿色版本的,没有安装包,只有文件,你可以到 https://github.com/aria2/aria2/releases 去下载最新版本的工具,然后放到你喜欢的名录。
2. 配置你的系统的环境变量,将aira2加入到环境变量中。
aira2的使用:基础命令行简介
1)直接下载到当前路径
直接在命令提示符界面输入:aira2 url 即可,这样子可以直接下载网络内容到你操作指令的文件夹。例如下载他自己
2)一些常见的命令说明,注:-后的参数,用空格后加分隔,--后的参数用=号区隔:
-d,--dir=指定路径。 -i,--input-file= 多文件下载是可以将url放到文件中,用换行区隔,就可以下载多个文件了。 -l,--log :指定log文件,记录下载log。若为-则在本窗口输出。 -j,--max-concurrent-downloads= 设置下载的并发数 -c,--continue [true|false]:断点续传。当前该选项只支持 HTTP(S)/FTP -h,--help[= | ]:查看帮助信息。帮助信息按标签进行分类。标签以#开头,aria2 提供的标签有:#basic,#advanced,#http,#https,#ftp,#metalink,#bittorrent,#cookie,#hook,#file,#rpc,#checksum,#experimental,#deprecated,#help,#all。默认使用#basic标签。如果未指定标签,则打印出包含该参数名称的选项内容。 --conf-path= :指定配置文件。默认配置文件为:$HOME/.aria2/aria2.conf,如果不存在,则为:$XDG_CONFIG_HOME/aria2/aria2.conf
3)使用配置文件进行统一配置,使用--conf-path=
## 下载设置 ## ## ------------ # 断点续传 continue=true # 最大同时下载任务数, 运行时可修改, 默认:5 max-concurrent-downloads=5 # 单个任务最大线程数, 添加时可指定, 默认:5 split=16 # 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M # 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载 min-split-size=1M # 同一服务器连接数, 添加时可指定, 默认:1 max-connection-per-server=16 # 断开速度过慢的连接 lowest-speed-limit=0 # 整体下载速度限制, 运行时可修改, 默认:0 #max-overall-download-limit=0 # 单个任务下载速度限制, 默认:0 #max-download-limit=0 # 整体上传速度限制, 运行时可修改, 默认:0 #max-overall-upload-limit=0 # 单个任务上传速度限制, 默认:0 #max-upload-limit=0 # 禁用IPv6, 默认:false #disable-ipv6=true # 当服务器返回503错误时, aria2会尝试重连 # 尝试重连次数, 0代表无限, 默认:5 max-tries=0 # 重连冷却, 默认:0 #retry-wait=0 ## 进度保存相关 ## ##-------------------- # 从会话文件中读取下载任务 # 开启该参数后aria2将只接受session中的任务, 这意味着aria2一旦使用conf后将不再接受来自终端的任务, 所以该条只需要在启动rpc时加上就可以了 # 在Aria2退出时保存`错误/未完成`的下载任务到会话文件 save-session=aria2.session # 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0 save-session-interval=60 # 强制保存会话, 即使任务已经完成, 默认:false # 较新的版本开启后会在任务完成后依然保留.aria2文件 #force-save=false ## RPC相关设置 ## ##--------------- # 启用RPC, 默认:false(rpc 不启动则只能使用命令行下载) enable-rpc=true # 允许所有来源, 默认:false rpc-allow-origin-all=true # 允许非外部访问, 默认:false rpc-listen-all=true # 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同 #event-poll=kqueue # RPC监听端口, 端口被占用时可以修改, 默认:6800 #rpc-listen-port=6800 # 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项 #rpc-secret=www.niuyoucai.org # 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项 #rpc-user= # 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项 #rpc-passwd= ## BT/PT下载相关 ## ##------------------ # 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true follow-torrent=true # BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999 listen-port=51413 # 单个种子最大连接数, 默认:55 bt-max-peers=100 # 打开DHT功能, PT需要禁用, 默认:true enable-dht=true # 打开IPv6 DHT功能, PT需要禁用, 默认:true #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=-TR2770- user-agent=Transmission/2.77 # 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0 seed-ratio=0 # BT校验相关, 默认:true #bt-hash-check-seed=true # 继续之前的BT任务时, 无需再次校验, 默认:false bt-seed-unverified=true # 保存磁力链接元数据为种子文件(.torrent文件), 默认:false bt-save-metadata=true # 强制加密, 防迅雷必备 bt-require-crypto=true #BT下载 tracker bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.leechers-paradise.org:6969/announce,udp://tracker.opentrackr.org:1337/announce,udp://p4p.arenabg.com:1337/announce,udp://9.rarbg.to:2710/announce,udp://9.rarbg.me:2710/announce,udp://tracker.openbittorrent.com:80/announce,udp://exodus.desync.com:6969/announce,udp://tracker.tiny-vps.com:6969/announce,udp://retracker.lanta-net.ru:2710/announce,udp://open.stealth.si:80/announce,udp://tracker.moeking.me:6969/announce,udp://denis.stalker.upeer.me:6969/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.cyberia.is:6969/announce,udp://open.demonii.si:1337/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://explodie.org:6969/announce,udp://xxxtor.com:2710/announce,udp://valakas.rollo.dnsabr.com:2710/announce ## 磁盘相关 ## ##------------- # 文件保存路径, 默认为当前启动位置 dir=E:\download # 日志文件 #log=aria2.log #另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?) enable-mmap=true # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc # 预分配所需时间: 快none < trunc < falloc < prealloc慢 # falloc仅仅比trunc慢0.06s # 磁盘碎片: 无falloc = prealloc < trunc = none有 # 推荐优先级: 高falloc --> prealloc --> trunc -->none低 # EXT4, btrfs, xfs, NTFS等新型文件系统建议使用falloc, falloc(fallocate)在这些文件系统上可以瞬间创建完整的空文件 # trunc(ftruncate) 同样是是瞬间创建文件, 但是与falloc的区别是创建出的空文件不占用实际磁盘空间 # prealloc 传统的创建完整的空文件, aria2会一直等待直到分配结束, 也就是说如果是在HHD上下载10G文件,那么你的aria2将会一直等待你的硬盘持续满载工作直到10G文件创建完成后才会开始下载 # none将不会预分配, 磁盘碎片程度受下面的disk-cache影响, trunc too # 请勿在传统文件系统如:EXT3, FAT32上使用falloc, 它的实际效果将与prealloc相同 # MacOS建议使用prealloc, 因为它不支持falloc, 也不支持trunc, but可以尝试用brew安装truncate以支持trunc(ftruncate) # 事实上我有些不能理解trunc在aria2中的角色, 它与none几乎没有区别, 也就是说:太鸡肋了 file-allocation=falloc # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M disk-cache=64M
4)整合的简单工具包:aria2-整合下载包
说明:
1. 将要下载的内容逐行加入到download-example.txt 文件中,注意每一个文件要单独一行
2. 执行run.cmd 等待下载即可
图形化操作界面
命令行适合经常玩命令行的人,但是多数人还是习惯于图形化界面,aria2 提供了 RPC模式,使我们可以远程与它进行交互(远程调用)。因此,很多的 aria2 图形界面客户端就应运而生。
在工具中执行run-gui.cmd即可以使用ariac.com进行图形化配置。
速度不亚于迅雷
写在最后:
1. 我看到目前百度网盘的下载工具里面都是用aria2的,所以百度网盘下载的难点在于分析网盘文件的原始地址,看有时间可以研究一下。
2. 迅雷吸了p2p的血,导致bt的死亡。这个工具正好可以给bt补血,希望大家都能支持,而且这个工具还可以下载被迅雷屏蔽的资源。