折腾笔记

折腾笔记

记录一次奇怪的VPN问题WireGuard| 能ping能smb但网页全挂

2025-07-02

最近遇到一个很离谱的问题,记录一下,希望对以后踩坑的自己有用,也帮到碰到类似现象的人。

🧩 问题现象

我在单位一直通过 WireGuard VPN 连回家里,目标是访问家里的设备(群晖NAS、PVE服务器等)。用起来一直是没有问题的,但是最近使用单位的网络突然出现了一下情况:

  • ✅ 可以 ping 通家里的 NAS 和 PVE

  • ✅ 可以通过 SMB 访问 NAS 里的共享文件夹

  • ❌ 但就是群晖的网页(5000端口)和 PVE 管理界面(8006端口)打不开

浏览器里直接超时,curl 也没有返回,使用手机开热点访问却没有问题。

🔍 排查过程

  • NAT 转发做了,MASQUERADE 没问题

  • 防火墙没开,或者说相关段都已放行

  • AllowedIPs 配置也包含了 10.0.0.0/24

  • 甚至把 NAS 的服务监听从特定 IP 改成 0.0.0.0,都没用

  • 用 ping 测试也都是通的,延迟很低

唯一的共同点是:网页访问失败,ping 和 SMB 正常

一开始怀疑是 PVE 和群晖只监听局域网 IP,但抓包发现请求根本没到。

于是我怀疑是不是 MTU 有问题

⚙️ 解决方法

试着在 WireGuard 客户端配置里加上一行:

MTU = 1280

这是我当前的客户端配置(简化版):

[Interface]
PrivateKey = xxxxx
Address = 10.6.0.2/24
DNS = 192.168.1.1
MTU = 1280

[Peer]
PublicKey = xxxxx
Endpoint = my-home.ddns.net:51820
AllowedIPs = 192.168.1.0/24, 10.6.0.1/32

保存后重连,结果立刻就好了:

  • 群晖 DSM 网页秒开

  • PVE 8006 管理界面也顺利打开

  • 再也没有“能 ping 不能访问网页”的问题了

💡 为什么会这样?

大概率是因为单位 Wi-Fi 或中间链路的 MTU 设置较小,WireGuard 默认的 MTU(比如 1420)过大,导致 TCP 包被丢弃或无法重组,从而出现奇怪现象:

  • 小包能通过(ping、SMB)

  • 大包不通(网页加载)

把 MTU 降低到 1280 后,所有流量都能稳定传输了。

✅ 小结

这问题真的有点阴间,属于那种“明明网络通了却用不了”的典型案例。

如果你也遇到:

  • WireGuard 能连上

  • ping 正常,SMB 正常

  • 但网页打不开(群晖、PVE、Unraid、HomeAssistant等)

优先试试把 MTU 设置成 1280,能救命。

  • 0