← 全部文章

多源分段下载:什么时候多连接有用,什么时候没用(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 产物、镜像同步都用得上。

小结

  1. 先测:单连接 vs 多连接聚合,判断是"被限速"还是"带宽到顶"。
  1. 被限速/多镜像 → 用 aria2 -x -s 多源分段。
  1. 带宽到顶 → 换更快线路,而不是加连接。
  1. 永远校验哈希。

评论 0

还没有评论,来抢沙发~

登录 登录后即可参与评论