摘要: 异地组网速度忽快忽慢,通常是连接路径在直连和中继之间切换,或两端网络、设备出了瓶颈。本文给出不装工具的三步自查、iperf3 与 tracert 判断方法、分时段记录脚本和处理步骤。
标签建议: 网络、网络协议、运维、P2P、NAT
一、问题现象
用虚拟组网连接异地设备后,常见几种情况:
- 同样两台设备,上午快、下午慢;
- 在公司快,换到酒店或手机热点就慢;
- 测出来的速度总卡在一个固定值上,宽带再快也上不去。
这些现象背后,通常是两类原因:连接路径变了,或者两端网络状况变了。
二、两条路径的区别
| 对比项 | 点对点直连 | 中继转发 |
|---|---|---|
| 数据怎么走 | 两台设备直接传输 | 经中继服务器转发 |
| 速度取决于 | 两端宽带和设备性能 | 中继服务器分配的带宽 |
| 什么时候出现 | 两端 NAT 能打通 | 打不通时自动回落 |
RFC 5128 的说明是:打通依赖 NAT 为同一内部端口保持相同的外部映射;不满足时只能由服务器转发,这是最可靠、但效率最低的方式。

三、判断方法
3.1 不装工具的三步自查
- 复制一个大文件,看速度是不是总停在某个固定数字附近,而两端宽带明明更快;
- 让慢的一端临时换个网络(酒店无线网络换手机热点,或回到办公室用网线),再复制一次;
- 换网络没变化,就上午、晚上各复制一次。
第 1、2 条有异常,多半是路径问题;白天快、晚上慢,多半是宽带高峰拥塞。
3.2 吞吐对照
两端安装 iperf3,被访问端放行其默认端口 5201:
iperf3 -s
iperf3 -c <对端组网地址> -t 30
第一条在被访问端运行,第二条在访问端运行,<对端组网地址> 换成对端的虚拟地址。吞吐长期贴着中继带宽上限,基本可以判断走了中继。
3.3 检查运营商级 NAT
tracert -d -h 3 223.5.5.5
tracepath -n -m 3 223.5.5.5
前一条是 Windows 写法,后一条是 Linux 写法。第二、三跳出现 100.64.x.x 到 100.127.x.x 之间的地址,说明经过了运营商级 NAT(RFC 6598 规定的共享地址段),直连成功率会下降。注意看的是输出里第二、三跳的地址,不是本机网卡或组网中的地址。
3.4 直连时查两端网络和设备
| 测试 | 能看出什么 |
|---|---|
| 有线、无线各测一次 | 无线信号是否是瓶颈 |
| 闲时、高峰各测一次 | 宽带是否拥塞 |
iperf3 -c <对端组网地址> -t 30 -R 测下载方向 |
对端上行是否不足 |
| iperf3 正常但复制慢 | 存储读写或设备负载是否是瓶颈 |
3.5 分时段记录
只测一次容易误判,建议在一天里定时测几组:
# Linux / macOS:每 30 分钟测一次,共 12 次,结果追加到 iperf.log
for i in $(seq 1 12); do
date '+%F %T' >> iperf.log
iperf3 -c <对端组网地址> -t 10 | grep receiver >> iperf.log
sleep 1800
done
改动前后各记录一天,对比两份日志:吞吐从固定值变成随宽带浮动,说明直连建立起来了;只有晚间偏低,是高峰拥塞;全天偏低,查对端上行和设备性能。

四、处理步骤
- 走中继且希望直连: 减少多层路由器,请管理员按所用工具的接入说明放行组网所需流量,宽带经过运营商级 NAT 时向运营商询问能否提供公网地址。
- 中继无法避免: 提升该节点的中继带宽。
- 直连但高峰慢: 错峰传输或提升宽带。
- 直连但下载慢: 提升对端上行。
- 无线慢: 关键设备改用有线。
- 网络正常、复制慢: 排查存储读写和同时运行的程序。
五、常见误区
- 速度上不去就是宽带不够: 如果走的是中继,宽带再大也会被中继带宽封顶。
- 直连了就一定快: 直连后速度取决于两端宽带,对端上行小照样慢。
- 复制慢一定是网络问题: iperf3 不经过磁盘,网络吞吐正常而复制慢,问题在设备。
- 只测一次就下结论: 路径和网络状况会随时段、接入网络变化,要多测几组对比。
六、总结
- 先分清是路径变了,还是两端网络或设备的问题;
- 吞吐贴着固定值,优先怀疑中继;
- 换网络对比、查前几跳地址,判断能否直连;
- 直连后的瓶颈多在上行、高峰、无线和设备;
- 能改善直连条件就先改,改不了再提升中继带宽。