最奇怪的互联网问题:有些网站可以运行,有些则不能
您的互联网正在运行。你可以用谷歌搜索东西。 YouTube 加载。 Reddit 运行良好。但您的银行网站无法加载。您的工作 VPN 已连接,但随后没有任何效果。 Gmail 可以,但您无法访问某些网站。
速度测试显示速度良好。平有效。你们绝对是有联系的。但特定网站只是超时或永远挂起。
这种奇怪的症状模式让人尖叫 MTU问题 (最大传输单元)。您的网络正在发送太大的数据包,变得碎片或丢失,并破坏特定网站,而其他网站却正常工作。
MTU到底是什么(简单版)
MTU 是网络允许的最大数据包大小。可以将其视为运输的最大箱子尺寸:
- 标准MTU: 1500 字节(在任何地方都适用)
- 您的网络 MTU: 也许设置为 1500
- 但在路径中的某个地方: 一个设备只能处理 1400 字节
- 结果: 大数据包被丢弃,小数据包正常工作
为什么有些网站可以工作,有些则不行:
- Google 主页:小数据包,负载良好
- 安全性高的银行网站:大数据包容易被丢弃
- 普通电子邮件:小包,有效
- 带附件的电子邮件:大数据包,失败
如何知道 MTU 是否是您的问题
经典MTU问题症状:
- VPN 连接但没有任何效果
- VPN 连接成功 - 但网页浏览、应用程序全部超时 - 这是 #1 MTU 症状
- 有些网站可以加载,有些则不能
- 简单站点:工作正常 - 具有 HTTPS/安全性的复杂站点:失败 - 模式一致(相同站点总是失败)
- 可以 ping 通但无法浏览某些网站
- 小 ping 数据包:工作 - 大型 Web 数据包:失败
- 适用于移动数据,但不适用于 WiFi(反之亦然)
- 不同的网络有不同的 MTU 限制 - 问题仅出现在一个网络上
- SSH/远程桌面连接但在使用过程中挂起
- 初始连接:小数据包,有效 - 数据传输:大数据包,失败
快速 MTU 测试 (Windows)
测试您的 MTU 是否导致问题:
ping google.com -f -l 1472
这是做什么的: 发送无法分片的1472字节数据包
好结果:
Reply from 142.250.80.46: bytes=1472 time=15ms
MTU 就可以了。
不好的结果:
Packet needs to be fragmented but DF set
MTU 问题已确认。
如果失败,请测试较小的尺寸:
ping google.com -f -l 1464
ping google.com -f -l 1400
ping google.com -f -l 1352
找到最合适的尺寸。这是您的实际 MTU 限制(数字加 28)。
快速 MTU 测试 (Mac/Linux)
ping -D -s 1472 google.com
Mac 替代方案:
ping -D -s 1464 google.com
相同的逻辑:找到不会被丢弃的最大数据包大小。
如何修复 MTU 问题
修复 1:降低网络适配器上的 MTU (Windows)
步骤一: 以管理员身份打开命令提示符
步骤 2: 找到您的网络接口名称:
netsh interface ipv4 show subinterfaces
步骤 3: 将 MTU 设置为 1400(安全值):
netsh interface ipv4 set subinterface "Wi-Fi" mtu=1400 store=persistent
(将“Wi-Fi”替换为您的接口名称)
步骤 4: 测试网站现在是否正常工作
如果1400有效,你可以尝试增加:
- 尝试1450,测试
- 尝试1480,测试
- 找到一切正常的最佳位置
修复 2:降低 Mac 上的 MTU
步骤一: 找到您的网络接口:
networksetup -listallhardwareports
步骤 2: 设置MTU:
sudo networksetup -setMTU Wi-Fi 1400
步骤 3: 验证:
networksetup -getMTU Wi-Fi
修复 3:降低 Linux 上的 MTU
临时(直到重新启动):
sudo ip link set dev eth0 mtu 1400
永久(添加到 /etc/network/interfaces):
iface eth0 inet dhcp
mtu 1400
修复 4:路由器 MTU 设置(影响所有设备)
更好的解决方案: 在路由器级别修复它,以便所有设备受益。
- 登录路由器(192.168.1.1 或类似)
- 找到“MTU”设置(通常在WAN或高级设置中)
- 从 1500 更改为 1400 或 1450
- 保存并重启路由器
常见地点:
- TP-Link: 网络 > WAN > MTU 大小
- 网件: 高级 > 设置 > WAN 设置 > MTU 大小
- 华硕: WAN > 互联网连接 > MTU
- 链接系统: 连接 > 互联网设置 > MTU
VPN 特定的 MTU 修复
如果 VPN 连接但不起作用:
大多数 VPN 软件都有 MTU 设置。
OpenVPN: 添加到配置文件:
mssfix 1400
tun-mtu 1400
WireGuard: 在接口配置中设置 MTU:
MTU = 1400
商业 VPN 应用程序:
- 在高级设置中查找“MTU”
- 尝试值:1400、1420、1450
- 测试直至有效
为什么会出现 MTU 问题
常见原因:
- PPPoE 连接 (DSL 互联网)
- PPPoE 增加了 8 字节开销 - 标准 1500 MTU 变为 1492 有效 - 某些设备不能很好地处理这个问题
- VPN/隧道
- 加密会增加开销 - 加密后 1500 MTU 数据包变得太大 - VPN 流量需要较低的 MTU
- ISP网络设备
- 某些 ISP 在内部使用 MTU < 1500 - 不要向客户宣传这一点 - 导致神秘故障
- 多层隧道
- VPN through VPN - VPN over PPPoE - 每层都会增加开销
如何找到最佳 MTU
公式: 最佳 MTU =(最大工作 ping 数据包大小)+ 28
示例:
ping -f -l 1464有效ping -f -l 1472失败- 最佳 MTU = 1464 + 28 = 1492
常用安全MTU值:
- 1500: 标准,适用于大多数地方
- 1492: PPPoE 连接
- 1450: 对于大多数 VPN 来说都是安全的
- 1400: 非常保守,几乎在任何地方都适用
- 1280: IPv6 的最小值,总是有效但效率低下
底线
如果某些网站可以工作,但其他网站却不能,或者 VPN 连接但流量不流动,则可能存在 MTU 问题。
快速诊断:
ping google.com -f -l 1472
如果失败,则 MTU 就是您的问题。
快速修复: 将网络适配器或路由器上的 MTU 降低至 1400。测试问题是否消失。
最佳修复: 测试不同的 MTU 值(1400、1450、1480)以找到可靠工作的最高值。用那个。
设置位置:
- 路由器:影响所有设备(最佳选择)
- 网络适配器:仅影响一台设备
- VPN 软件:仅影响 VPN 流量
大多数人从未遇到过 MTU 问题。但当你这样做时,症状会非常奇怪,你会浪费几个小时先排除其他所有问题。现在您知道要检查什么了。