多源分段下载:什么时候多连接有用,什么时候没用(aria2 实测)
下载一个大文件很慢时,先别急着"多加连接"。慢有两种完全不同的原因:
- 单连接被限速(服务器/代理对每个连接限速)→ 多连接有用;
- 总带宽到顶(你的线路就那么大)→ 多连接没用。
分不清这两者,就容易白折腾。下面用真实数据讲清楚,并给出 aria2 的多源分段用法。
一、先判断瓶颈在哪
方法很简单:对比单连接与多连接的聚合速度。
- 多连接聚合 ≈ N × 单连接 → 单连接被限速,加连接有效;
- 聚合到某个值后不再涨 → 总带宽到顶,加连接无益。
实测(同一文件,20MB range,2026-09):
| 方式 | 速度 | 说明 |
|---|---|---|
| 单连接(ghproxy.net) | 1.19 MB/s | 单连接上限 |
| curl 6 连接并行 | ~6 MB/s | 聚合到 ~6 就不再涨 |
| aria2 3 镜像 × 8 连接 × 2 文件 | ~6 MB/s | 同上,说明是总带宽到顶 |
结论:这台机器的总带宽约 6 MB/s(~48 Mbps)。多连接/多源把单连接上限填满后就到顶了,再加连接不会更快。
如果你的线路是 500Mbps、而单连接只有 1MB/s,那多连接就能拉到几十 MB/s——这才是多源分段的主场。
二、什么时候多源分段真的有用
- 单连接被服务器/代理限速(网盘、部分 CDN、GitHub 代理很常见);
- 需要聚合多个镜像(各镜像限速不同,取长补短);
- 大文件、且服务器支持 HTTP Range;
- 断点续传(大文件下载中断后不用重来)。
反例:线路本身到顶、或服务器不支持 Range,多连接/多源都帮不上。
三、aria2 用法
aria2c 是这方面的标准工具,关键参数:
| 参数 | 含义 |
|---|---|
-x N | 每个服务器最大连接数 |
-s N | 单个文件分成几段 |
-k SIZE | 最小分片大小(如 1M) |
-j N | 同时下载几个文件 |
-c | 断点续传 |
| 多个 URI | 同一文件的多个镜像 |
单文件多镜像:
aria2c -x 8 -s 8 -k 1M -c \
"https://mirror-a.example/file.bin" \
"https://mirror-b.example/file.bin" \
"https://mirror-c.example/file.bin" \
-o file.bin
多文件(输入文件格式):每个条目可列多个镜像 URI,然后跟缩进选项:
https://mirror-a.example/file1
https://mirror-b.example/file1
out=file1
https://mirror-a.example/file2
https://mirror-b.example/file2
out=file2
aria2c -c -j 2 -x 8 -s 8 -k 1M --file-allocation=none -i dl.aria2
-j 2 -x 8 表示同时下 2 个文件、每个最多 8 连接(每个镜像)。
四、别忘了校验
第三方镜像/代理不可全信,下载完必须校验哈希:
sha256sum -c SHA256SUMS
aria2 自带 --checksum 也可:
aria2c --checksum=sha-256=<hex> ...
五、注意
- 别把服务器打爆:连接数适度(一般 8–16),尊重对方的限速与 ToS;
- 确认服务器支持 Range,否则无法分段;
- 总带宽到顶时,多连接没有意义——先测再调;
- 这个技巧与"国内/国外"无关:大模型权重、数据集、CI 产物、镜像同步都用得上。
小结
- 先测:单连接 vs 多连接聚合,判断是"被限速"还是"带宽到顶"。
- 被限速/多镜像 → 用
aria2 -x -s多源分段。
- 带宽到顶 → 换更快线路,而不是加连接。
- 永远校验哈希。
评论 0
还没有评论,来抢沙发~
登录 登录后即可参与评论