MTU 是一个数据包能有多大。以太网默认 1500 字节。但每套一层封装就要占掉一些空间,隧道内的有效 MTU 会比 1500 小。
典型症状
MTU 问题的表现很有迷惑性:小请求正常,大请求失败。具体表现为:ping 通、能连上节点、简单页面能开,但内容多的页面卡在加载一半,或者大文件下载总是中断。
怎么确认
用不分片的 ping 逐步试探,找到不被分片的最大值:
# Windows:-f 不分片,-l 指定负载大小
ping -f -l 1472 1.1.1.1
# macOS / Linux
ping -D -s 1472 1.1.1.1
提示需要分片就把数字调小,能通就调大,找到临界值后加 28(IP 头 20 + ICMP 头 8)就是实际 MTU。常见的可用值在 1400 左右。
多数客户端有 MTU 设置项,改小到 1400 试试,很多「莫名其妙打不开」就解决了。