WireGuard 已握手,为什么还是无法上网?
latest handshake 正常只说明两端能够通过 UDP 完成 WireGuard 密钥通信。它不证明隧道地址、路由、服务端转发、NAT 或 DNS 已配置正确。下面按最容易缩小范围的顺序检查。
1. 先确认流量有没有进入隧道
在客户端发起一次访问后查看 WireGuard 的发送与接收计数。只有发送增加、接收始终为零,通常应继续检查服务端 Peer 的 AllowedIPs、防火墙和回程路径;两边都有流量,再检查具体目标和 DNS。
sudo wg show公开求助时不要贴私钥,也不要上传未经处理的完整配置。
2. 先测隧道地址,再测公网 IP
- 隧道对端地址也不通:核对双方 Address 是否唯一、网段是否一致,以及服务端对应 Peer 是否允许该客户端的隧道地址。
- 隧道地址能通,公网 IP 不通:重点检查服务端 IP 转发、NAT 或上游回程路由。
- 公网 IP 能通,域名不通:问题通常落在 DNS 配置或 DNS 服务器的可达性。
3. 检查客户端 AllowedIPs
若目标是让所有 IPv4 流量经服务器出去,客户端 Peer 常见写法是:
[Peer]
AllowedIPs = 0.0.0.0/0这只安装默认路由,不会替你开启服务器转发。若只访问远端内网,应只列出需要的网段。客户端本地局域网与远端网段相同,也可能导致路由冲突。
4. 检查服务端转发和回程
作为互联网出口的服务器必须允许对应 IP 协议转发。客户端使用私有隧道地址时,服务端还需要合适的源 NAT,或让上游网络知道如何把回复路由回隧道网段。云平台安全组和主机防火墙也不能阻断转发链。
NAT 的网卡名、隧道网段和防火墙框架因系统而异,不要直接复制不匹配的规则。先记录服务器的出口接口和实际隧道网段,再按发行版的持久化方式配置。
5. 最后单独验证 DNS
如果访问公网 IP 正常而域名失败,检查客户端实际采用的 DNS、该地址是否被 AllowedIPs 覆盖,以及 DNS 请求是否能从当前网络到达。wg-quick 的 DNS 字段依赖本机 DNS 管理机制;不同客户端实现可能不同。
仍然只是部分网站打不开?
再考虑 MTU、IPv6 与策略路由。不要一开始就盲目设置固定 MTU;先确认基础 IPv4 路径与 DNS 正常,再结合实际外层网络测试。若客户端仍保留 IPv6 直连,也要明确这是否符合你的预期。
先用本地工具检查配置 · 查看 AllowedIPs 详细说明 · 完整排障顺序
参考文档
更新于 2026-10-05。Wirehaven 是独立工具,与 WireGuard 官方无关联。