最近想从网盘下载大文件,又不想下网盘客户端,于是用网盘直链解析之类的插件,提取到下载链接,用下载器下载。
但我试了几个下载器,下载速度都有点慢。想尝试通过提高下载器的“同时连接数”来加速下载,确实有效,但感觉各个下载器的同时连接数上限都规定得太低了:IDM、NDM 上限 32;aria2 上限 16;axel 貌似没有连接数限制,但不支持超过 1024 长度的 URL,一般网盘解析出来的下载 URL 都特别长,axel 下载不了。
于是我 Fork 了 aria2 的项目仓库,用 GitHub Action 同步 aria2 官方的最新源码,在源码有更新时,自动编译去除最大连接数上限 max-connection-per-server 的 aria2c.exe,发布到 Release。
仓库地址与下载:https://github.com/tasy5kg/aria2-connection-unlocked
没有了连接数限制,或许就可以同时开启几百甚至上千个连接,满带宽下载网盘文件了。
尝试之前,可以看下这篇帖子:Windows 端超高网络连接数优化命令。
我这里用 400Mbps 的宽带,下载某某网盘(有的网盘有效,有的不行,可自测)里的一个 5220MB 的文件。
首先测试知名的 IDM 下载器,开 32 连接数下载,效果是这样的,速度 1.25MB/s 左右,网速图呈锯齿状:
开始用去除了连接数限制的 aria2 下载。这是 256 连接数的效果,虽然网速图仍然是锯齿状,但速度已经高达 8.1MB/s 了(连接数较大时,aria2 内显示的网速可能会漂移,这里只是定性说明,后面有汇总完整的平均速度数据):
改为 768 连接数,下载速度飙升至 25MB/s 左右:
再看 1792 连接数的效果,任务管理器里显示 400Mbps 的带宽已经能够跑满了(中间掉速了一会,所以 aria2 内显示的速度偏低):
其实还测了很多次,最后整理数据,统计在各种“最大连接数上限”配置下,下载一个 5220MB 文件全程的平均速度(文件大小除以总共耗时):
最高测得的平均速度是 1280 连接数时的 31.64MB/s,没有达到满带宽 50MB/s;并且连接数太高时,平均速度会下降。可能有这些原因:
SSL/TLS handshake failure: Error,甚至下载速度为零的情况;总结:用超大连接数的下载器,来下载某些网盘的文件,确实能大幅提升速度,但可能需要多次尝试,找到最合适的连接数量等配置。
@tasy5kg,是不是某些连接阻塞了,才卡在 98%?
有没有「超过 10 秒 < 10 KB/s 断开重连」机制啥的?
另外为啥连接数超出一定数量后,总速反而下降呢。。应该趋于网速上限才合理。。