首页/系统/Windows 运维速查/MTU 查看与修改

MTU 查看与修改

排查大文件传输失败、VPN 断流时的 MTU 问题:查看各接口 MTU 并按需调整。

Windows 运维速查系统更新于 2026-10-13

MTU 是什么

MTU(最大传输单元)是单个数据帧能承载的最大字节数。以太网标准值是 1500,PPPoE 拨号通常是 1492,VPN 隧道因为要额外封装头部,实际可用值往往更低(常见配置 1400)。当路径上某一段的 MTU 小于发出的大小,且不允许分片时,就会出现“能 ping 通、能打开网页、但大文件传输卡死”这类很典型的现象。

基本信息

适用平台Windows 全版本(netsh interface ipv4 上下文)
查看netsh interface ipv4 show subinterfaces
修改netsh interface ipv4 set subinterface "以太网" mtu=1400 store=persistent
典型值以太网 1500、PPPoE 1492、VPN 1400(视封装而定)
权限修改需管理员,store=persistent 才能重启后保留

典型使用场景

  • 大文件或 HTTPS 握手卡住:怀疑路径 MTU 小于本机发出值
  • VPN 拨通后部分网站打不开:隧道封装导致有效 MTU 变小
  • 跨专线/跨运营商访问异常:中间设备链路 MTU 不一致
  • 确认当前值是否被改动:核对是否有人为了临时绕问题改过 MTU
  • 云主机与隧道网关对接:两端 MTU 需要匹配,否则大批量传输易失败

常用示例

常用示例
:: 查看各接口当前 MTU
netsh interface ipv4 show subinterfaces
:: 修改并持久化(以太网常见 1500,隧道链路常用 1400)
netsh interface ipv4 set subinterface "以太网" mtu=1400 store=persistent
:: 经典 MTU 探测:-f 禁止分片,-l 指定载荷字节
ping -f -l 1472 8.8.8.8
:: 逐步调整载荷直到不再提示“需要拆分数据包但设置了 DF”
ping -f -l 1400 8.8.8.8
:: PowerShell 等价查看
Get-NetIPInterface -AddressFamily IPv4 | Select-Object InterfaceAlias, NlMtu

取值参考

链路类型常见 MTU说明
标准以太网1500默认值,绝大多数内网适用
PPPoE 拨号1492头部占 8 字节
IPsec/L2TP VPN1400 左右封装开销较大
GRE/IPIP 隧道1476 或更低按隧道头长度递减
ping -f -l 1472 是经典探测手法:1472 字节载荷加上 20 字节 IP 头与 8 字节 ICMP 头正好 1500。不断调小载荷直到不再提示“需要拆分数据包”,得到的最大可用载荷加 28 就是路径 MTU。
现代网络中 TCP 通常靠路径 MTU 发现自动协商,但 ICMP 被防火墙拦掉时协商会失败,表现为“小包正常大包卡住”。这也是改了 MTU 后症状缓解的原因,根因往往在中间设备的 ICMP 策略。
MTU 调小是以牺牲效率换取连通性:包变小意味着同样的数据需要更多包头与更多往返。它适合作为临时缓解手段,长期方案应定位到链路或中间设备并把值改回标准。

易错点

  • 忘了 store=persistent:重启后 MTU 回到默认值,问题“修好了又复发”
  • 只改一端设备:对端与沿途链路不匹配时仍然出问题
  • 把 MTU 当万能药:DNS、证书、代理等无关问题被误当成 MTU,浪费时间
  • 改小了不记录:半年后没人知道当初为什么改成 1400,故障排查从零开始
  • 在虚拟化环境只改主机不改虚拟交换机:底层 MTU 更小会持续丢大包

数据来源与参考

  • Microsoft Learn:netsh interface ipv4 命令

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌