首页/网络/网络排障速查/MTU 概念与查看:本机、接口与路径
连通性与链路检测54 条

MTU 概念与查看:本机、接口与路径

MTU 不匹配是『能连不能传』类故障的常客:先看本机接口 MTU,再看隧道/虚拟接口叠加后的实际值,最后用 ping -M do 验证路径。

网络排障速查网络更新于 2026-10-13

MTU 是什么

MTU 是一个接口一次能承载的最大报文长度,以太网默认 1500 字节,其中 IPv4 可用载荷约 1472 字节,其余被 IP 与 TCP 头占用。它是「能连不能传」类故障的常客:小包交互正常,一旦传大文件或做数据库同步就卡死。原因通常是路径上某一段的 MTU 更小(隧道与虚拟化封装会额外占头部),而大包既没有被正确分片,路径探测的差错报文又被中途丢弃。

基本信息

以太网默认1500 字节;IPv4 有效载荷约 1472,其余为协议头
常见叠加开销VXLAN 类封装约减 50,IPsec 约减 50 至 73,PPPoE 减 8
IPv6 底线链路 MTU 最小 1280,且中间设备不做分片
查看方式ip link 看接口 MTU,同时注意隧道与虚拟接口会再叠加开销
验证方式用带禁止分片的探测逐步加大包长,找到能通的临界值

典型使用场景

  • 页面能打开但上传或下载大文件失败,怀疑路径 MTU 不匹配
  • 跨云或跨机房隧道打通后部分业务异常,需核算封装开销
  • 容器网络内大包不通,检查容器接口 MTU 与宿主机是否一致
  • 数据库主从同步或备份传输卡住,排查大包被静默丢弃
  • 调整 MTU 前后做同一组大包测试,验证整改效果

查看与验证

查看与验证
ip link show eth0 | grep -o 'mtu [0-9]*'      # 当前接口 MTU
ip -d link show | grep -E 'mtu|vlan|tun|vxlan'  # 虚拟接口会再叠加开销
cat /sys/class/net/eth0/mtu                    # 直接读内核值
ping -M do -s 1472 -c 2 <目标>                 # 1472+28=1500,能通说明路径可承载
ping -M do -s 1400 -c 2 <目标>                 # 逐级下调,找临界包长
ping -M do -s 1472 -c 2 <目标> > /dev/null; echo "rc=$?"   # 退出码非零即不通
ip link set dev eth0 mtu 1400                  # 临时调整,重启后失效

包长与含义

写法含义说明
-s 1472载荷 1472,加 28 字节头正好 1500标准以太网路径的上限探测
-s 1400载荷 1400覆盖常见隧道与封装开销后的保守值
-M do禁止分片只有不分片才能真正测出路径能否承载
-M dont允许分片大包会被分片,测不出路径限制
只改一端的 MTU 往往加剧问题:两端接口与路径上的设备都要能容纳新值。调整前先确认整条路径(含云网络与隧道封装)的最小限制,改完用同一组大包测试复验。
容器与隧道环境的默认 MTU 常低于物理口的 1500,容器内看到的值与宿主机不一致时,大包问题会表现为「本机正常、跨节点失败」。核对时要把每一层的接口值都列出来。

易错点

  • 只改一端 MTU 就以为解决:路径上任何一段的限制都会让大包失败
  • 忘记虚拟化与隧道封装开销,物理口 1500 时业务实际只能过更小的包
  • 用允许分片的探测方式测试,得到「能通」的假结论
  • 改了接口 MTU 但没有用大包复验,问题在特定业务路径上继续存在
  • 忽略 IPv6 环境下中间设备不做分片的特性,仍按 IPv4 习惯处理

数据来源与参考

  • RFC 1191:PMTU 发现
  • Linux 内核文档:网络接口 MTU
  • RFC 7348(VXLAN 开销参考)

相关工具

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