很多初次接触WireGuard的用户都会卡在Peer配置环节,要么服务端加完客户端配置后始终无法握手,要么连上之后出现路由混乱、部分资源无法访问的问题,核心原因大多是没搞懂WireGuard Peer配置:客户端与服务端如何配合的对等逻辑,和传统主从架构的VPN配置逻辑有明显区别。本文从实操层面拆解全流程的配置要点、校验方法和常见误区,帮用户避开绝大多数配置坑。

直观展示服务端与客户端双向配置WireGuard对等节点的实操部署场景
配置前的核心前提梳理
首先要明确WireGuard的Peer是双向对等的身份标识,不存在传统VPN里服务端单方面下发权限的逻辑,两端都需要把对方的身份信息、路由规则写入自己的Peer条目,才能完成双向身份认证和流量转发,不少新手一开始误以为只需要在服务端添加客户端的Peer记录就能连通,最后排查很久都找不到问题根源。
正式配置前要分别在服务端和客户端独立生成各自的公私钥对,不要在同一台设备生成所有密钥再通过网络分发,避免私钥在传输过程中泄露,同时要提前规划好WireGuard的虚拟内网网段,确认这个网段和服务端、客户端本地的现有局域网网段都不冲突,避免后续出现路由冲突的问题。
还要提前确认服务端的防火墙已经放通WireGuard使用的UDP端口,同时在系统层面开启IP转发功能,这两个前置条件不满足的话,就算两边的Peer配置完全匹配,也没法正常完成跨节点的数据包转发。
服务端Peer条目的正确配置方法
打开服务端的WireGuard配置文件,在[Peer]区块里填写的公钥必须是客户端自己生成的公钥,不能填服务端本身的公钥,后续要给多少个客户端开权限,就要新增多少个独立的[Peer]区块,不要把多个客户端的公钥塞到同一个Peer条目里。
服务端Peer条目中的AllowedIPs字段,要给每个客户端单独分配专属的虚拟IP,且末尾的子网掩码必须是32,比如分配给第一个客户端的地址就写10.0.0.2/32,如果掩码写成24,会直接把整个虚拟网段的路由都指向这个客户端,导致其他Peer的流量全部异常。
客户端Peer条目的对应配合规则
打开客户端的WireGuard配置文件,在[Interface]区块填写之前分配给自己的专属虚拟IP,然后新建独立的[Peer]区块,这里填写的公钥必须是服务端的公钥,不少新手图省事直接复制自己的公钥填入,两端公钥不匹配自然永远无法完成握手。
客户端Peer的Endpoint字段要填写服务端的公网IP或者可正常解析的域名,后面跟上WireGuard服务监听的UDP端口,AllowedIPs字段可以根据使用场景自定义,如果只需要访问服务端侧的内网资源,就只填写对应内网的网段地址,如果希望所有流量都走隧道,再填写0.0.0.0/0和::/0,处于内网NAT后的客户端可以把PersistentKeepalive字段设为25,维持隧道长连接避免NAT映射过期。
配置后的双向校验与常见误区规避
两端配置完成后分别启动WireGuard服务,在服务端执行wg show命令查看所有Peer的运行状态,重点观察对应客户端条目的“latest handshake”字段,如果这个字段的时间在持续更新,说明两端的Peer配置已经完成了正常握手,身份认证环节没有问题。
如果握手成功但无法正常访问目标资源,白鲸加速器官网首先检查服务端Peer的AllowedIPs是不是给客户端分配的/32地址,再核对客户端Peer的AllowedIPs有没有包含要访问的目标网段,同时确认服务端的IP转发功能已经正常开启,防火墙没有拦截跨网段转发的数据包。
这里要注意一个高频误区,不少用户为了调试方便,直接把服务端Peer的AllowedIPs写成0.0.0.0/0,会直接打乱服务端本身的路由表,所有返回流量都会被错误路由到这个客户端,直接导致整个隧道甚至服务端本身的网络异常。
后续如果要吊销某个客户端的访问权限,只需要在服务端删除对应的Peer条目重启服务即可,不需要修改其他任何客户端的配置,这也是WireGuard Peer轻量化配置的核心优势,白鲸加速器日常使用中不要随意把自己的Peer配置分享给无关人员,避免非授权节点接入虚拟内网带来的安全风险。




