路由器MTU是什么意思?微信图片发不出、有些网站死活打不开,八成是这个数不对

去年帮表弟排查过一桩怪事:微信文字秒回,图片一发出去就转圈,转半天来个红色感叹号;银行官网和公司OA死活打不开,可百度、哔哩哔哩又都正常。测速九百多兆满格,重启路由器、换了DNS、把微信卸了重装,全没用。折腾到晚上十点,才在路由器WAN口设置里翻到一个不对劲的数——MTU,填的是1500。改成1492,当场痊愈。
先把MTU说成人话:一节车厢限重1500
MTU全称Maximum Transmission Unit,翻译过来是「最大传输单元」,说人话就是一个网络包最多能装多少字节。以太网的规矩是1500字节,你可以把它想成快递车厢的限重:你的数据要出发,先装包,每个包连头带尾不许超过1500斤,超了就得拆成两件分着运。
拆包(行话叫分片)这事本身不算错,就是费劲:路上拆,到了再拼,拼错一个整包重来。所以网页这类TCP流量学精了,发包时贴一张「别拆我」的标签——行话叫DF标志,意思是路上哪一段发现装不下,就提前通知发货方,让它自己换小车重新装。
坑就坑在,路上有些设备懒得通知。装不下的包,直接扔,一声不吭。发货方那边还傻等着回执呢,等到超时,重发,再被扔,再超时。你在手机上看到的就是:页面转圈,转到底部弹出一句「无法访问」。这现象行话叫PMTU黑洞,口语就是「包裹被半路扔了还不告诉你」。表弟家那晚的一切怪象,都是这个机制的表演。
为什么拨号上网要1492:车厢被占了8个座位
那好端端的,为什么1500会装不下?因为他是宽带拨号上网,也就是PPPoE——输运营商账号密码那种连接方式,这个连上网页设置的门道我之前在路由器自动拨号那篇里写过。PPPoE要在每个包里塞8字节的「票据」(协议头开销),等于1500斤的车厢被固定占了8斤的座位,你实际能装的是1492。
表弟家原本是光猫路由模式,光猫替他拨号,MTU这事光猫在背后悄悄办妥了。前阵子我帮他把光猫改成桥接、路由器自己拨号(改桥接的善后我在桥接后IPTV那篇里记过一笔),他那台老固件路由器的WAN口MTU默认留在了1500——从那天起,超出1492的大包全在运营商那边蒸发。
顺带说一句什么家庭容易踩这坑:光猫改桥接自己拨号的头号;玩软路由、刷过机的第二号,新固件配置迁移时这数最容易丢;还有接手二手机器的——你不知道上一个主人动过什么,表弟那台路由器就是我从闲鱼捞给他的。一直在光猫路由模式下老实过日子的,基本碰不上。
于是就有了「小包通、大包丢」的怪象:微信文字几百字节,一路绿灯秒到;一张3MB的原图要切成两千来个1500的大包,一个个被扔。下面这张对照表你先收着,症状对得上再往下看:
| 症状 | 像不像MTU的锅 |
| 微信文字秒发,图片/文件转圈发不出 | 典型,九成是它 |
| 网页标题能出来,正文和图一直转圈 | 典型,小包先到大包丢 |
| 游戏登得进去,语音断断续续 | 常见,大包语音流被丢 |
| 所有网站都打不开 | 不是它,先查DNS |
三步把家里该填的数测出来
别背1492就硬填,家里的数自己测,三步,用Windows自带的ping就够。
第一步,电脑连上家里的网,开命令提示符,敲:
ping -f -l 1472 114.114.114.114
这里面的账是这么算的:1472是装的货,加上28字节的包头,正好1500。-f的意思是「不许拆包」,-l 1472是指定货重。这一趟等于派了一辆顶格的车走完全程。
第二步,看结果。通了,说明你家到运营商这条路上1500能跑,MTU没毛病,别动它。不通,会收到一句「需要分片但设置了DF」,好,说明路上确实有窄桥——往下试:
ping -f -l 1464 114.114.114.114
1464还不通就1452、1440,一格一格降。表弟家是1472报错、1464通。
第三步,把通的数加28。1464+28=1492,这就是他家该填的MTU。顺带一句,测的时候最好拿网线直连路由器,排除无线这层的干扰;偶尔丢一两个包不算数,得是「需要分片」这句明确的回话才算,丢包和分片是两种病,丢包的排查我写在WiFi丢包率那篇里。还有,这活手机干不了,iOS和安卓都没给「不许拆包」的ping权限,家里没电脑的,找邻居借台笔记本,十分钟的事。
各品牌把这个选项藏在哪
测出来了,就去后台填。各家的藏法不一样:
| 品牌 | MTU位置 | 默认值 |
| 华硕 | 外部网络(WAN)→互联网连接页签里 | 按连接方式自动 |
| TP-Link / 水星 | 网络参数→WAN口设置里 | PPPoE自动1492 |
| 小米 | 上网设置→PPPoE高级选项 | 1480,上限1492 |
| 老固件机器 | 多半没有,自动处理 | — |
两个提醒。一是TP官方的口径很硬:PPPoE连接MTU必须1492或更低,没有商量。二是小米官方FAQ有一句大实话我原样抄给你——「正常网站都能打开就不需要改MTU值」,真遇到疑难它会建议你试1412。填完保存,让路由器断线重拨一次,光改不重拨不生效。
家里是光猫路由模式、从没自己拨过号的,这事光猫全程替你办了,后台找不到这个选项也不用折腾。
改大改小都有代价,它不是调优旋钮
有人觉得这数字跟增益一样,越大越快,把它从1500拧到1800——家用环境这是死路。你家交换机、光猫、运营商的设备全按1500的规矩办事,路上任何一台不认,直接断流,而且是最难查的那种「部分通部分不通」。表弟那晚的弯路里就有一段是这来的。
往小改是安全的,代价是每个包装的货少了,大文件传输慢几个点,换来的是包包都能过。真需要主动改小的场景是VPN:连上公司VPN后OA里的图片刷不出来,是同一个病——VPN隧道在包外面再裹一层加密的皮,车厢又窄了一截,1400到1470之间常见。这种情况可以在电脑本机改,不用动路由器:
netsh interface ipv4 set subinterface "以太网" mtu=1400 store=persistent
改完把网卡禁用再启用。想先看看本机各网卡的MTU,用netsh interface ipv4 show subinterfaces,WiFi和以太网各一行。
再往深了说一句:TCP握手的时候两头还会商量一个MSS(1492对应的数是1452,减掉40字节TCP头),老固件改了MTU还得手动跟着改MSS,新一点的固件都自动联动了,这事OpenWrt玩家才需要操心,家用路由器知道有这回事就行。路由器后台里像这样「平时不用管、出事才认识」的参数还有一串,DHCP的地址池算一个,我之前挨个写过。
对号入座,什么症状查什么
「网站打不开」是个万金油症状,先分诊再动手,别一上来就改参数:
| 症状 | 该查什么 |
| 所有网站都打不开 | DNS的事,换223.5.5.5试 |
| 时快时慢、晚高峰卡 | 测速和丢包,分层排查 |
| 部分网站打不开+微信图片发不出+小包都通 | MTU,按本文三步走 |
| 连VPN后内网图片刷不出 | VPN隧道的MTU,本机改1400 |
收尾给个顺序:先确认小包都是通的(文字、搜索、小网页正常)→从1472测起→不通就往下找最大能过的数→加28填进WAN口→保存重拨,再开一遍原来打不开的那个网站。还犯病就降到1460再试一轮,病还在,说明数是对的但锅不是它的,回头查线路和光衰去。测速怎么测才不被姿势坑,我在宽带测速那篇里写过,配套用。

发表评论