首页/系统/信创系统运维速查/MTU 不一致导致大包不通
常见问题65 条

MTU 不一致导致大包不通

ping 小包正常、大文件或 HTTPS 卡住:多为路径 MTU 不一致,用 ping -M do 探测临界值,两端对齐或做 MSS 钳制。

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

大包不通的典型特征

小包探测正常、登录也正常,但传输大文件、打开复杂页面或走 HTTPS 时卡住或超时,这类现象往往指向路径最大传输单元不一致。路径上某一跳的单元值小于发送端,导致大包被丢弃,而依赖的分片机制又被策略拦截时,会话就会表现为长时间无响应。

探测与调整的思路

先用禁止分片的探测方式逐步缩小包大小,找到能够通过的临界值,推算出路径可用的单元值。调整时要注意两端都要对齐,隧道与专线场景中间设备也要一并处理;只在应用侧调参数通常解决不了问题。

基本信息

常见链路隧道、专线、跨运营商链路
探测方式禁止分片的探测命令逐步缩小包长
查看命令查看接口单元值与到目标的选路
调整位置两端接口、中间设备或转发路径上的钳制策略

典型使用场景

  • 文件传输卡在中途,小文件传输正常
  • HTTPS 页面加载不全或长时间等待
  • 建立隧道后部分服务不可用,其他服务正常
  • 跨专线访问业务系统出现超时
  • 云环境与本地互联后大包传输异常

探测

探测
ping -M do -s 1472 -c 2 <对端地址>          # 加上协议头正好是常见以太网单元值
ping -M do -s 1400 -c 2 <对端地址>          # 逐步减小找临界值
ip link show eth0 | grep mtu                # 本机接口单元值
ip route get <对端地址>                      # 选路与出口接口
tracepath <对端地址> 2>/dev/null | tail -5   # 观察路径与探测结果

调整

调整
ip link set dev eth0 mtu 1400                # 临时调整,重启后失效
# 持久化写入连接配置或网络配置文件
# 转发场景可在内核层做最大报文段钳制,示例:
# iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# 隧道与专线环境优先在两端与中间设备上对齐

现象与判断

现象可能原因验证方式
小包正常大包超时路径单元值偏小逐步缩小包长找临界值
仅隧道内服务异常隧道封装占用额外字节两端同时调整并复测
HTTPS 握手卡住握手阶段报文较大被丢弃对比不同协议的表现
抓包看到需要分片提示依赖分片但被拦截检查路径上的策略
部分链路正常部分异常不同路径单元值不同按目标分别探测
禁止分片的探测方式依赖 ICMP 正常,若链路上 ICMP 被限制会得到误判结果,此时应结合抓包与两端直测确认,避免按错误结论调整参数。

易错点

  • 只调整一端,路径上其他设备仍按原值处理,问题依旧存在
  • 探测依赖 ICMP 而链路上 ICMP 被限制,得到错误的临界值并据此调整参数
  • 把单元值调得过小,正常报文被过度分片,吞吐明显下降
  • 临时调整未写入持久化配置,设备重启后问题原样复现

数据来源与参考

  • man 8 ping
  • man 8 ip-link
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌