家里刚升千兆宽带那阵子,测速软件里下载能跑到800多Mbps,可微信视频通话还是时不时卡成马赛克,开网页也偶尔转圈。一开始怀疑是路由器带不动,换了一台高通的还是老样子。后来进路由器后台翻设置,无意间看到WAN口MTU值显示1500,手动改成1492后,所有问题竟然都消失了。
这次排查让我意识到,MTU这个参数平时没人注意,但它决定了数据包能装多少内容。宽带运营商大多用的是PPPoE拨号,封装包头会多占8个字节,如果路由器还是按1500的标准发送,包就太大,会被丢弃或拆分。表现出来就是测速看着正常,实际用起来丢包严重,视频通话和网页加载特别敏感。
怎么判断是不是MTU的锅?打开电脑命令行输入ping 192.168.1.1 -f -l 1472,如果提示需要拆分数据包,说明MTU设置太高;如果能通不报错,可以继续加字节。我实测下来,光猫桥接加路由器拨号的环境下,MTU调到1492最稳,局域网到光猫之间不受影响。
第一步:登录路由器管理后台,找到WAN口设置或外网设置,把MTU值从默认的1500改成1492。第二步:保存重启,再试微信视频通话和网页加载。如果改完上不了网,说明运营商线路支持大MTU,改回1500再排查DNS或网线。
另外有种情况是路由器MTU是自动的,但光猫还在用路由模式,等于两层拨号嵌套。这种环境下WiFi测速时快时慢,最干脆的办法是让运营商把光猫改成桥接,由路由器来拨号,MTU统一在路由器上管。
后来我帮家里另一台旧路由器也检查了一遍,发现固件里MTU藏得很深,默认居然也是1500。刷成第三方固件倒是能直接看到TCP MSS钳制选项,但普通用户没必要折腾,先把数值调成1492试两天,大多数卡顿问题其实就能缓解。
这次折腾也让我记住了:以后遇到测速正常但实际体验差的情况,不要只盯信道、摆放位置,数据包层面的设置更容易被忽略。光猫、路由器、网线都换过都没解决的话,花五分钟改一下MTU值,成本几乎为零。
问:MTU值改错会导致完全断网吗?
答:会。如果设得太小比如1400,虽然也能上网,但很多网站图片加载不出来,视频会一直缓冲;如果设得太大超过线路支持范围,路由器会一直丢包,表现为能连接但打不开网页。改完记得马上刷新页面测试。
问:怎么测出当前网络最合适的MTU值?
答:在电脑上打开命令提示符,先ping 192.168.1.1 -f -l 1472看是否通;如果提示需要拆分,就逐步减到1464、1456直到不报错。然后把数字加28(比如1472+28=1500)就是路由器里该填的值。注意这个测试要在直连路由器的状态下做。
问:手机WiFi上网卡也和MTU有关系吗?
答:有关系。手机本身无法直接改MTU,但它接收的数据包大小由路由器决定。所以路由器上MTU设置错误,手机WiFi同样会卡顿,表现是刷视频一直转圈、微信消息发不出去,但电脑插网线测速却正常。

