← 返回博客列表

MTU 是什么:VPN 显示已连接、能 ping 通却打不开网页时该查的参数

2026-09-04 · 刺猬VPN

排查 VPN 故障时有一种最让人困惑的状态:客户端明明显示已连接,ping 海外网站有回应,搜索引擎首页这类小页面能打开,可一点进带图片的正文、登录页或视频站,标签页就一直转圈直到超时。换节点有时好有时坏,重装客户端也没用。多数人此时会怀疑 DNS 或被网站拦截,但如果把网页换成手机热点就一切正常,那问题几乎可以锁定在一个平时没人碰的参数上:MTU。

MTU 是单个网络数据包允许的最大长度。普通有线与 WiFi 网络的上限是 1500 字节,而 VPN 会把你的每个数据包再包一层加密外壳,外壳要占几十字节,原本 1500 的包就超了上限。正常情况下系统会协商出更小的包或者拆分发送,可在某些线路上这个协商过程被中间设备悄悄丢弃了,结果就是小包畅通、大包消失——小页面能开是因为它们的数据包小,大页面打不开是因为携带图片和脚本的大包永远到不了。这篇文章讲清 MTU 与隧道开销的关系、怎么用 ping 测出合适值、各平台怎么设置,以及和其他“半通”故障怎么区分。

常见链路的 MTU:为什么隧道里的包会“超重”

隧道要在原始数据包外面加上加密头、隧道头和外层 IP 头,加起来通常 60 到 100 字节。如果隧道网卡仍按 1500 发包,加上外壳就超过物理链路的 1500 上限,只能拆分或丢弃。理想情况下系统会通过“路径 MTU 发现”自动缩小包长,但这个机制依赖中间设备回传一条提示,而很多防火墙与运营商设备会把这条提示直接丢掉,形成所谓“分片黑洞”:发送方不知道包丢了,一直用大包重试,直到超时。这就是“能 ping 通却打不开网页”的根源——ping 用的是几十字节的小包,网页内容却是接近满长的大包。

链路类型典型 MTU说明
以太网与家用 WiFi1500 字节绝大多数局域网的默认值
PPPoE 宽带拨号1492 字节拨号头部占 8 字节,很多家庭宽带是这种
IPv6 最低要求1280 字节任何链路都必须支持的下限
WireGuard 隧道约 1420 字节默认值已扣掉封装开销
OpenVPN 隧道约 1400 至 1450 字节取决于加密与传输方式
移动网络1400 至 1500 字节运营商差异大,部分更低
多层隧道叠加1280 至 1380 字节每层再扣一次开销

三分钟测出合适的 MTU:分步操作步骤

  • 第一步:先把线路准备好,连上刺猬VPN。安装客户端后自定义用户名和密码即可完成匿名注册,不需要邮箱、也不需要手机号,免费节点永久免费、不限流量,注册即用;全程 HTTPS+AES 加密传输;
  • 第二步:确认症状符合“半通”特征:ping 通、小页面能开、大页面卡死、换成手机热点正常。如果所有页面都打不开,那是线路或 DNS 问题,不必往下查;
  • 第三步:用带“禁止分片”标记的 ping 找出能通过的最大包长。Windows 在命令提示符里执行 ping -f -l 1472 目标地址,macOS 用 ping -D -s 1472,Linux 用 ping -M do -s 1472;目标地址选一个稳定可达的海外站点;
  • 第四步:如果提示“需要拆分数据包但设置了 DF 标志”或没有回应,把数字减 10 再试,直到收到正常回应;再逐步加回,找到刚好能通的最大值;
  • 第五步:把这个最大值加上 28(20 字节 IP 头加 8 字节 ICMP 头)就是当前路径的 MTU。例如 1392 能通、1402 不通,MTU 就是 1420;
  • 第六步:把隧道网卡的 MTU 设成这个值或再低一点。部分客户端在高级设置里提供 MTU 选项,没有的话在系统里改:Windows 用管理员权限执行 netsh interface ipv4 set subinterface "隧道网卡名称" mtu=1400 store=persistent,macOS 用 networksetup -setMTU 接口名 1400,Linux 用 ip link set dev 接口名 mtu 1400;
  • 第七步:重新打开之前卡死的页面验证。如果好了就固定这个值;没好就再降到 1380 或 1280 试一次,1280 是任何链路都必须支持的下限;
  • 第八步:家庭宽带是 PPPoE 拨号的,顺手把路由器的 MTU 也核对成 1492 或运营商建议值,路由器设错会让所有设备一起“半通”;
  • 第九步:iPhone 与 iPad 不允许手动改 MTU,只能靠客户端自动协商;中国大陆区 App Store 不提供 VPN 类应用,需要用外区 Apple ID 下载客户端,完整步骤见 iOS 安装教程。

按现象逐条排查:怎么区分 MTU 与其他“半通”故障

“连上了却打不开网页”不止一种原因,先按下面的现象把 MTU 问题与 DNS、拦截、协议问题区分开。

  • 小页面能开、大页面永远转圈:典型的 MTU 与分片黑洞,按上一节测值并调低;
  • 所有网页都打不开但 ping IP 地址能通:DNS 解析失败而不是 MTU,换 DNS 或检查客户端的 DNS 设置;
  • 网页能开但视频与大文件下载到一半停住:可能是 MTU 偏大导致间歇丢包,也可能是线路拥堵,先调低 MTU 再观察;
  • 只有某几个网站打不开、其他都正常:那是网站侧对出口 IP 的拦截,换节点即可,与 MTU 无关;
  • 改用 TCP 传输模式后突然正常:TCP 隧道会自动协商分段,绕开了分片黑洞,这反过来证明是 MTU 问题,UDP 模式下按测值设置即可;
  • 手机热点正常、家里宽带不行:家里是 PPPoE 或多层路由,路径 MTU 更小,把隧道 MTU 调到 1400 以下;
  • 调低 MTU 后速度明显变慢:值设得过小,每个包携带的有效数据太少,回到测出的最大值附近;
  • 在公司或校园网才出问题:中间有额外的隧道或防火墙丢弃分片提示,在该网络下单独用更低的 MTU。

各平台怎么查看与设置:一张表对照

桌面系统改 MTU 都是针对某一张网卡:要改的是隧道网卡,不是物理网卡。物理网卡保持 1500 或运营商给的值,隧道网卡设成测出来的路径 MTU。改错对象会让所有流量一起变慢。系统更新有时会把手动设置的 MTU 重置回默认,Windows 命令里的 store=persistent 是为了重启后保留,更新后仍建议复查一次。

平台查看当前 MTU设置方法
Windowsnetsh interface ipv4 show subinterfacesnetsh 命令按接口设置,需管理员权限
macOSnetworksetup -getMTU 接口名networksetup -setMTU 接口名 数值
Linuxip link 查看每个接口的 mtu 字段ip link set dev 接口名 mtu 数值
Android系统不直接显示依赖客户端设置,部分客户端提供选项
iOS 与 iPadOS不可查看不可手动设置,由客户端协商
路由器WAN 口设置页按接入方式填 1500 或 1492

线路怎么选:MTU 问题与节点的关系

同一个客户端、同一台电脑,换个节点就从“半通”变正常,往往是因为两条路径的中间设备不同:有的会正常回传分片提示,有的会丢弃。所以遇到 MTU 问题时换节点确实有效,但更稳的做法是把隧道 MTU 设成一个保守值,这样无论走哪条路径都不用赌。刺猬VPN 的免费节点永久免费、不限流量、注册即用,测试与轻度使用足够;日常长期使用的,时长套餐期间不限流量不限速,可选节点更多,覆盖 20 多个国家、100 多台服务器,一个账号支持多设备同时在线。实际可用性取决于当前网络环境。

对比项路径干净的节点多层转发的节点免费节点
路径 MTU接近 1420 至 1450常低于 1400视当前网络环境而定
分片提示回传多数正常常被丢弃形成黑洞取决于当前网络环境
默认设置能否直接用通常可以常需手动调低多数情况可用
大页面加载正常间歇卡死同左
流量消耗与 MTU 无关同左永久免费、不限流量
适合场景日常使用临时应急轻度使用

和其他排查文章的分工

MTU 只是“连上了却不好用”这一大类故障中的一种。连不上、频繁掉线、全部网页打不开的系统排查流程见 VPN 连不上、翻墙后网速慢怎么办;掉线与重连问题另有原因,见 VPN 频繁断线怎么办。想弄明白为什么切到 TCP 模式后 MTU 问题会消失,UDP 和 TCP 有什么区别 里讲了两种传输方式对分片的处理差异;WireGuard 默认 1420 这个数字怎么来的,见 WireGuard 协议详解。

如果测 MTU 时发现某一跳延迟异常高或丢包严重,可以配合 ping、traceroute 怎么看 定位到底是哪一段链路在拖后腿,两种工具一起用,多数“半通”问题都能在十分钟内定性。

常见报错速查表

现象原因解决办法
小页面能开、大页面转圈隧道 MTU 过大,分片被丢弃用 ping 测值后调低隧道 MTU
ping 提示需要拆分数据包测试包长超过路径 MTU减小包长重试,找到最大可通值
所有网页打不开但 ping IP 通DNS 解析失败更换 DNS 或检查客户端 DNS 设置
切 TCP 模式后正常UDP 路径存在分片黑洞UDP 模式下手动设置 MTU
调低 MTU 后变慢值设得过小回到测出的最大值附近
重启后设置失效系统未持久化保存Windows 加 store=persistent,更新后复查
家里不行、热点正常家庭宽带为 PPPoE 或多层路由隧道 MTU 调到 1400 以下并核对路由器

高频问答

  • 问:MTU 设多少合适?答:以 ping 测出的值为准,测不出来就先试 1400,仍有问题再降到 1380 或 1280,1280 是任何链路都支持的下限;
  • 问:为什么 ping 能通却打不开网页?答:ping 是几十字节的小包,网页内容是接近满长的大包,只有大包会被分片黑洞吞掉;
  • 问:改 MTU 会影响速度吗?答:设得过小会略降效率,设在测出的最大值附近几乎无感,比“半通”状态好得多;
  • 问:手机能改吗?答:安卓依赖客户端是否提供选项,iPhone 不能手动改,只能靠客户端自动协商或换节点;
  • 问:换节点就好了还需要改吗?答:不改也能用,但走到另一条路径可能再次出现,设一个保守值更省心;
  • 问:路由器的 MTU 要改吗?答:只在家庭宽带为 PPPoE 时核对成 1492 或运营商建议值,其他情况保持默认。

把“半通”彻底解决:长期做法

VPN 能连上却打不开网页、ping 通却加载不出、只开得了小页面,这些现象背后多半是同一件事:隧道封装让数据包超出了路径允许的长度,而中间设备丢掉了本该回传的提示。长期做法很简单:换一个网络环境或换一条线路后,先用禁止分片的 ping 花三分钟测一次路径 MTU;把隧道网卡设成测出的值或略低的保守值;家庭宽带核对一次路由器设置;系统大更新后复查一次是否被重置。

还有一条值得记住:MTU 问题的特征非常明确,符合“小包通、大包不通”就往这里查,不符合就不要浪费时间,转去查 DNS、拦截或线路。刺猬VPN 采用 HTTPS+AES 加密传输,支持自定义用户名和密码匿名注册,不需要邮箱和手机号;免费节点永久免费、不限流量、注册即用,测试与轻度使用用免费节点就够;时长套餐按周月年计费、期间不限流量不限速,一个账号支持多设备同时在线。各系统与客户端的设置入口会随版本变化,以官方最新说明为准,实际可用性取决于当前网络环境。

立即下载刺猬VPN:从注册到连接,三分钟完成

刺猬VPN提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。