首页/网络/网络排障速查/ping -M do 探测路径 MTU(二分法)
本包目录(235 条)
排查流程与方法36 条
连通性与链路检测54 条
DNS 与解析排查46 条端口与连接检查37 条抓包与流量分析32 条应用层慢与丢包定位30 条

ping -M do 探测路径 MTU(二分法)

带 DF(禁止分片)位逐级加大包,找到「能通过的最大载荷」,即可反推路径 MTU;是隧道、VXLAN、VPN 场景最实用的排障动作。

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

二分法探测(Linux)

二分法探测(Linux)
ping -M do -s 1472 -c 2 10.0.0.5   # 1472+28=1500 刚好不分片
# 不通就减:
ping -M do -s 1400 -c 2 10.0.0.5
ping -M do -s 1372 -c 2 10.0.0.5   # 1400 = 1372+28
# 得到最大可通过载荷 P 后:路径 MTU = P + 28(IPv4)

报错关键字

报错关键字
ping: local error: message too long, mtu=1400   # 本机尝试按 1400 发送被拒(路径更小)
From 10.0.0.1 icmp_seq=1 Frag needed and DF set (mtu = 1400)  # 中间设备回 ICMP 需分片
中间设备丢弃过大包且不回 ICMP『frag needed』时(PMTUD 黑洞),ping 表现为大包全丢、小包正常,需改用 TCP 层验证或调低 MTU。

易错点

  • 把 1472 不通直接判为「MTU=1400」:应先二分出准确值,再核对两端与中间设备配置
  • 本机没有 ICMP 错误输出不代表路径 OK,可能是对端静默丢弃

数据来源与参考

  • RFC 1191:Path MTU Discovery
  • man 8 ping(-M do 语义)

相关工具

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