如何为 VPN 找到合适的 MTU
MTU 设置不当会让有的网站卡住、有的却正常。本文教你测出路径允许的最大数据包,再换算成适合 VPN 的安全 MTU 值。
阅读约 10 分钟更新于 2026年10月15日作者:XPASS Editorial Team

有些 VPN 故障很古怪:你已连接,指示图标是绿色的,搜索引擎能打开,可某个网站一直在转圈;聊天应用能用,文件上传却停在 10%;登录银行页面卡在最后一步。当小的东西能用、大的东西失败时,原因往往不是速度、防火墙或 VPN 服务器,而是数据包的大小。
本文是一套操作流程:如何找出你的网络真正接受的最大数据包,如何把这个数字换算成适合 VPN 隧道的 MTU,以及如何验证结果。内容务求实用。这类问题的症状与背景已在 MTU 问题中介绍,这里重点讲测量和选值。
用大白话说说 MTU
MTU 是 maximum transmission unit 的缩写,指某条网络链路一次能整体传送的最大数据包,以字节计。以太网和大多数家庭 Wi-Fi 的经典值是 1500 字节。大小在限制之内的包可以通过;过大的包必须被切成分片,否则就会被丢弃。
每个包都有包头:先是 IP 包头,然后是 TCP 或 UDP 包头,最后才是你的数据。所以留给数据的空间小于 MTU。使用 VPN 时,原来的数据包会被包进一个新的数据包里,外层要加上自己的包头和加密开销,因此内层包必须小于 1500,才能让外层包依然不超过 1500。
可以把它想成寄快递。快递站只收不超过固定尺寸的箱子。如果你把包裹放进一个更大的防护箱里,就必须从更小的包裹开始,否则总尺寸会超标。VPN 就是那个多出来的箱子。
IP 协议关于分片的设计见 IP 规范,查找路径上最大可用尺寸的常用方法见 Path MTU Discovery。

为什么数值不对会出现怪症状
正常情况下,发送方与网络会自动协商大小。转发不了大包的路由器会送回一条很小的错误消息,意思是“太大了,请用更小的”,你的设备于是自行调整。问题出在这些消息被防火墙拦截或被设备忽略时:发送方继续发大包,而这些包悄无声息地消失,这常被称为黑洞。
因为小包仍然能通过,症状看上去像随机的。
- 网页加载了前半部分就停住。
- 加密网站在连接后卡住,因为较大的握手包丢了。
- 邮件能收但带附件发不出去。
- 上传开始后停滞,而下载一切正常。
- 远程桌面或文件共享连上后冻结。
- 使用极小数据包的 ping 却完全正常。
这种模式不同于已连接但完全没有网络的情形,那种情况下什么都加载不出来。而 MTU 问题是有的能加载、有的不能。
开销从哪里来
具体开销取决于 VPN 技术、底层使用 IPv4 还是 IPv6,以及运行在 UDP 还是 TCP 上。一般而言,隧道每个包会增加约 40 到 100 字节。IPv6 的包头比 IPv4 大,见 IPv6 规范,所以走 IPv6 的隧道通常余量更少。
| 链路 | 外层常见上限 | 扣除隧道开销后的大致余量 |
|---|---|---|
| 有线以太网或 Wi-Fi | 1500 | 约 1400 到 1460 |
| PPPoE 家庭宽带 | 1492 | 约 1390 到 1450 |
| 移动网络 | 常见 1400 到 1500 | 约 1300 到 1420 |
| 有额外封装的酒店或办公网络 | 不定 | 请自己测 |
最后一列的数字只是用来说明概念的范围,应该以实测为准,而不是依赖表格。
第 1 步:测出网络接受的最大数据包
测试使用带有“不要分片”标志的 ping。你发送越来越大的包,包太大时,回复会提示需要分片。能通过的最大负载,加上 28 字节的包头(IP 占 20,ICMP 占 8),就是你的路径 MTU。
先在没有 VPN 时测试。选一个稳定、能响应 ping 的公共地址。
Windows(命令提示符):
ping -f -l 1472 ADDRESS
macOS:
ping -D -s 1472 -c 4 ADDRESS
Linux:
ping -M do -s 1472 -c 4 ADDRESS
如果得到正常回复,说明 1472 能通过,1472 + 28 = 1500 就是 MTU。如果出现“Packet needs to be fragmented but DF set”(Windows)或“message too long”(macOS 和 Linux)之类的提示,就减小尺寸再试。
用简单的方法查找:从 1472 开始,每次减 10,直到通过,再每次加 1,找到准确的边界。
例如在 PPPoE 线路上,你可能看到:
- 1472 失败
- 1462 失败
- 1464 通过
接着试 1465、1466,直到找到能通过的最大值。假设 1464 是最后一个成功的值,你的路径 MTU 就是 1464 + 28 = 1492。
第 2 步:连着 VPN 再测
现在连接 VPN,等十秒,用同样的方法再查找一遍。许多 VPN 应用会创建一块虚拟网卡,它自带更小的 MTU,所以特别大的测试包可能在本机就失败,甚至没离开你的设备。没关系,你要找的本来就是能通过的最大值。
假设没有 VPN 时最大负载是 1472(MTU 为 1500),开启 VPN 后最大是 1392。
- 经过隧道的路径 MTU:1392 + 28 = 1420。
- 隧道花掉的开销:1500 - 1420 = 80 字节。
这 80 字节就是你实测的开销。意思是隧道网卡发送的内层包不应超过约 1420,稍微低一点还能留出余量。
第 3 步:选一个安全值
拿实测的数字,减去一点余量。
- 开启 VPN 的实测值:1420。
- 安全余量:10 到 20 字节,用来应对不同网络之间的差异。
- 备选 MTU:1400。
为什么要留余量?手机会在 Wi-Fi 与移动网络之间切换,笔记本会连上自带额外封装的酒店网络,今天测的路径明天可能就变了。MTU 略小几乎没有代价:1400 比 1420 小约 1.4%,效率损失微乎其微;而过大的包代价很高,可能让整个连接卡死。
隧道常用的保守范围是 1380 到 1420。在移动网络或双重封装的连接上,有时需要更低的值,比如 1300 到 1350。对于 IPv6 流量,不要选择低于 1280 的值,因为这是 IPv6 要求的最小链路尺寸。
第 4 步:谨慎应用(只在确有必要时)
大多数读者做到测量这一步就可以了。许多应用会自动挑选合适的值,而手动设置错误的 MTU 反而会带来新问题。
如果你的 VPN 应用提供 MTU 选项,通常位于高级或连接设置中。除非确有症状,否则请保留默认值。如果要修改,遵守这些规则。
- 一次只改一项,并记下旧值。
- 修改后重新连接,因为该设置在建立隧道时才生效。
- 用新值重新测试出问题的网站或上传。
- 没有改善就改回去。
对于 XPASS 使用的 VPNclient 应用,请保留应用的默认连接设置,除非支持人员另有建议,并在你的 My Pass 页面查看设置信息。并非每个应用都开放 MTU 设置,这很正常。如果没有可调的设置,下一步最好是换一个位置或换一个网络,然后带着你的测量数据去咨询支持。下载页面列有官方应用。
修改整块网卡的 MTU 属于更高级的操作。在 Windows 上通过管理员权限运行 netsh interface ipv4 set subinterface,在 Linux 上通过 ip link set dev NAME mtu VALUE。这些改动会影响该网卡上的全部流量,有些在重启后会失效。只有在你清楚如何还原时才这样做。

第 5 步:验证结果
选好数值后,确认它解决了最初的问题。
- 重新连接 VPN。
- 打开之前卡住的网站,或重新开始上传。
- 再次运行最大尺寸的 ping 测试,负载等于你所选 MTU 减去 28,应当通过。
- 再试一个大 10 字节的负载,应当失败,证明你已接近上限。
- 在第二个网络(比如移动数据)上测试,确认该数值仍然有效。
实际场景
PPPoE 家庭用户。 小琳的光纤使用 PPPoE,所以不开 VPN 时她的路径 MTU 是 1492。开启 VPN 后,通过的最大负载是 1372,隧道路径就是 1372 + 28 = 1400。一个银行网站卡在登录最后一步。她选了 1380,重新连接,网站顺利完成。这个值只比测量值低 20 字节,她感觉不到任何损失。
酒店 Wi-Fi 上的旅行者。 阿东的笔记本在家里一切正常,但在酒店里,不开 VPN 时能通过的最大包只有 1450,因为酒店网络自己对流量做了封装。开启 VPN 后他测得 1370,路径 MTU 为 1398。默认的 1420 在这里偏高,这就解释了为什么上传会卡住。他在这次出行期间调低了设置,回家后再恢复默认值。
手机热点上的远程办公者。 小米用手机共享移动数据。不开 VPN 时能通过的最大包是 1400,开启 VPN 后是 1320,路径就是 1348。接近 1330 的值可以正常使用,她还记下了:移动网络往往比固定线路需要更低的数值。
常见错误与局限
- 忘了 28 字节的包头。 测试负载不等于 MTU。对 IPv4 加 ICMP,要加上 28。
- 只测一个地址。 不同目的地可能走不同路径,请再用第二个地址确认。
- 直接取测得的精确数字。 请留 10 到 20 字节的余量。
- “为了保险”把 MTU 设得过低。 1000 往往也能用,但浪费容量,并让大文件传输变慢。
- 忽略了 ping 可能被拦截。 有些网络会丢弃 ICMP。如果连很小的包也全部失败,说明目标或网络根本不响应 ping,请换一个地址。
- 把 MTU 当成所有变慢的原因。 如果页面能完整加载只是慢,请改读为什么 VPN 会慢。
- 把一种修正套到所有网络。 为酒店 Wi-Fi 调好的数值,在家里可能就不对了。
为吞吐量调整协议自身的设置是另一个话题,见 OpenVPN 性能调优,它可能与 MTU 相互影响,因此请一次只改一件事。
总结
MTU 是链路一次能整体传送的最大数据包,而 VPN 会给你的数据包加上额外包头,所以内层包必须小于裸路径允许的大小。要找到合适的值,就用带“不要分片”标志的 ping,在有 VPN 和没有 VPN 两种情况下找出能通过的最大尺寸,给负载加上 28 字节,再减去一点安全余量。大多数人什么都不用改,因为应用会选一个可用的值;但当小的能加载、大的却卡住时,测量只需要几分钟。一次只改一个数值,没有改善就改回去。
如果你在测试不同网络的同时想了解短期预付套餐如何运作,可以到价格页面查看选项。
常见问题
VPN 的 MTU 应该设成多少?
没有唯一正确的数值。很多家庭网络允许 1500 字节,而 VPN 需要为自己的包头留出空间,所以 1380 到 1420 左右的值比较常见,通常也比较安全。可靠的办法是按本文的 ping 方法测量你自己的路径,再留一点安全余量。
VPN 一定要改 MTU 才能用吗?
通常不用。大多数 VPN 应用会自动选择可用的值,除非出现明确的症状,比如网页加载到一半卡住或上传中途停滞,否则应保留默认设置。如果你的应用没有 MTU 选项,说明既改不了,也不需要改。
MTU 太大或太小会怎样?
太大,大数据包会被丢弃或分片,导致网页卡住、登录失败、传输停滞。太小,一切仍能工作,但每个包携带的数据变少、包头占比变高,效率会略有损失。
为什么 ping 正常,有些网站却打不开?
很小的测试包能穿过隧道,而加密网页的满尺寸数据包却过不去。这种“小的能用、大的卡住”的表现,是 MTU 问题的典型特征。
可以在连着 VPN 时测 MTU 吗?
可以,而且两种情况都应该测。先在没有 VPN 时测,了解你的网络能接受多大的包,再开启 VPN 测一遍。两次结果的差值,大致就是隧道增加的开销。
关于作者

Bob Kanokphon Thongdee
- XPASS VPN 创始人
- eSIMonline.asia 联合创始人
- 7 年以上网络营销经验
- Cojourney Visa 与 Cojourney Travel 创始人




