路由器 MTU 设置不当导致特定网页打不开的排错指南
#MTU设置#网页打不开#网络碎片
阅读需 5 分钟||
你可能遇到过这样极其诡异的故障:开启代理后,YouTube 能秒开,推特也能刷,但偏偏就是苹果官网或者某个企业网站加载条永远卡在中间,最后报出连接超时,即使关闭代理或者直连也一样。此时,极有可能是路由器的 MTU (最大传输单元) 设置引发了灾难。
1. 什么是 MTU 与黑洞断流?
网络数据包就像卡车运送货物。标准以太网公路限制了每辆卡车的最大载重,这叫 MTU,通常为 1500 字节。
- 当您在家中使用了 PPPoE 拨号的光猫或双层路由架构 时,拨号协议的包头会占据额外的 8 个字节。这意味着留给真实货物的空间只剩下了 1492 字节。
- 如果您的电脑或某些代理内核不知道这段公路变窄了,依然发出了 1500 字节的大包裹。途径路由器时,由于无法通过,包裹理应被分片 (Fragmentation)。
- 致命的是,现代互联网很多 HTTPS 连接通过
DF (Don't Fragment)标志强行禁止拆包,或者路径上的无良防火墙直接吞掉了报错通知信号,结果这个巨型包裹在半路神秘消失,导致连接完全死锁!
2. 诊断 MTU 黑洞
你可以通过命令行发起不拆包的极限探测(以 Windows 为例):
ping 8.8.8.8 -f -l 1472
(因为 Ping 本身带有 28 字节头,1472+28 刚好是 1500)。
如果此时系统返回“需要拆分数据包但是设置 DF”或直接 100% 超时,你需要开始递减 -l 1460、-l 1450,直到找到刚刚能够顺畅 Ping 通而不报错的最大边界值。
(假设这个安全值为 1452,加上 28 字节头,您的安全 MTU 就是 1480。)
3. 修复方案
- 修改系统与接口限制:登录你的 OpenWrt 软路由后台,进入网络接口设置,在“高级”选项中手动强制将 WAN 口的 MTU 值覆盖为你刚测得的安全值(如
1480或1492)。 - TCP MSS 钳制 (MSS Clamping):这是最省心的救命稻草。在 OpenWrt 防火墙设置中,勾选“MSS 钳制”功能。它会在底层自动嗅探所有经过的握手包,并强行将其标称载重修改到一个安全的范围,瞬间解决部分特定网站“卡死打不开”的顽疾。