很多新手初次部署WireGuard的时候,经常碰到配置完之后隧道完全无法握手、连通之后部分服务访问异常的问题,排查几个小时都找不到根源,其实80%以上的故障都来自Peer配置项的填写错误。本文结合日常运维中接触到的家用软路由、云服务器、嵌入式网关等多场景配置经验,把WireGuard Peer配置常见填写错误逐个拆解,搭配可落地的检查步骤,帮大家避开没必要的调试弯路。
公钥与预共享密钥配对错误的排查方法
很多刚接触WireGuard的用户,最容易犯的低级错误就是把本地Interface段的私钥,直接填到对端Peer配置的Public Key栏里,或是两端互相填反了对方的公钥,这种故障在WireGuard的运行日志里只会显示没有收到任何对端握手包,vpn加速器新手很容易误判为防火墙端口没有放通,浪费大量排查时间。
正确的配对逻辑非常清晰:节点A的Interface段私钥对应的公钥,必须完整无误填写到节点B的Peer Public Key栏位,反过来节点B的Interface私钥对应的公钥,也要完整填写到节点A的Peer Public Key栏。预共享密钥属于可选的额外加密层,如果开启的话两端Peer配置里的对应字段必须是完全一致的字符串,不能有多余的空格、换行或是大小写偏差。
验证的时候可以直接在对应节点的命令行执行wg pubkey < 本地私钥存储路径,生成的公钥字符串和对端Peer配置里的公钥逐字符比对,只要有一个字符出现偏差,WireGuard就完全无法完成握手,确认密钥配对完全正确之后,再进入下一个排查步骤。

运维人员正在调试排查WireGuard Peer配置相关的连通故障
Peer Endpoint地址与端口填写误区
不少用户配置动态IP节点或是多网卡节点的时候,会随手把对端的内网IP填到Peer的Endpoint字段里,或是填了动态域名但域名解析结果和对端实际公网IP不符,还有的用户把WireGuard服务端的监听端口错填成客户端本地的其他服务端口,导致加密数据包根本无法发送到正确的服务端口。
这里要特别注意场景区分:如果两端都没有固定公网IP,Peer的Endpoint字段可以留空,靠后续的主动心跳触发握手;但如果其中一端是带固定公网IP的云服务器,另一端客户端的Peer Endpoint必须填写服务器的公网IP、或是可正常解析到服务器地址的域名,冒号后面跟随的是服务器Interface段配置的ListenPort监听端口,不能填写客户端本地的监听端口。
验证连通性的时候,可以在客户端本地用telnet或是nc工具,vpn加速器测试Endpoint配置的IP加对应端口的连通性,如果连接不通,先排查中间的本地防火墙、云服务商安全组规则,确认端口已经放通之后,再回到WireGuard配置里核对参数。
AllowedIPs配置的边界错误
AllowedIPs是WireGuard Peer配置里最容易被误解的参数,很多新手误以为这个字段只需要填写对端节点的WireGuard虚拟IP,实际上它的核心作用是定义哪些网段的流量会被路由到WireGuard隧道转发,填写错误之后轻则出现路由冲突,重则隧道连通之后本地局域网服务完全无法访问。
高频的错误场景有两种:一种是用户想让所有流量走隧道,直接在Peer的AllowedIPs里填了0.0.0.0/0,但是没有把本地家用局域网的网段排除在外,导致访问本地NAS、网络打印机的流量也被错误转发到远端隧道,免费梯子直接出现断连;另一种是多Peer节点配置的时候,两个Peer的AllowedIPs网段出现重叠,WireGuard无法判断对应流量该转发到哪个节点,直接静默丢包。
正确的填写逻辑是,如果只需要访问对端的隧道内网和特定业务网段,免费梯子就只填写对端的WireGuard虚拟IP对应的/32路由,以及需要走隧道的业务网段;如果需要全局流量走隧道,填写0.0.0.0/0的同时,要在本地系统路由规则里把本地局域网的网段排除在隧道转发范围外,避免影响本地服务访问。
PersistentKeepalive参数的误用场景
很多用户不管节点处于公网还是NAT内网环境,都随便填写PersistentKeepalive参数,或是干脆不填,导致处于运营商NAT后面的内网节点,端口映射表被运营商回收之后,远端公网节点主动发起的连接根本无法触达内网的Peer节点。
这个参数只有部署在NAT后面的客户端节点的Peer配置里才需要填写,作用是定期向对端节点发送心跳包,维持NAT网关的端口映射表有效性,位于公网的服务端节点的Peer配置里完全不需要填写这个参数,随意填写反而会产生不必要的冗余流量。
所有参数修改完成之后,不建议直接重启整个WireGuard服务,可以先用wg syncconf命令热重载配置,再执行wg show命令查看最新的握手时间,如果握手时间显示在最近几分钟内,就说明Peer配置已经生效,之后再测试跨节点的业务连通性即可。




