作为轻量化VPN协议的代表,WireGuard的核心运行逻辑完全围绕Peer也就是对等节点机制展开,很多新手配置时容易混淆两端的参数对应关系,反复调试也没法建立连通隧道,本文就围绕WireGuard Peer配置:客户端与服务端如何配合的核心主题,以家用场景常见的OpenWrt软路由作为服务端、手机作为移动客户端的组合,拆解配置前提、对应规则、验证方法和常见排错思路,避开传统VPN的主从配置思维误区。
配置前的核心前提梳理
首先要明确WireGuard没有强绑定的服务端、客户端身份属性,我们日常说的服务端只是长期在线、拥有可访问公网地址的节点,客户端则是外出时按需接入的移动设备,两端都必须主动把对端添加为自己的Peer节点,不存在单方完成配置就能自动连通的情况,这是和OpenVPN这类传统VPN最大的逻辑差异。
正式配置前要提前在两个节点上分别生成独立的公私钥对,私钥仅保存在本地节点不能对外泄露,公钥可以通过任意明文渠道传输给对端,同时要提前给服务端节点设置专属的WireGuard监听UDP端口,在服务端的系统防火墙、上层网络的安全组规则里放通这个端口的入站访问权限,不少用户的连通故障根源其实是端口未开放,和Peer参数配置无关。
服务端节点的Peer配置规则
以常用的OpenWrt软路由服务端场景为例,进入WireGuard配置界面的Peer管理板块,添加新的客户端Peer时,首先要填入的是客户端节点的公钥,而非服务端自身的公钥,可选的预共享密钥是额外的加密防护层,没有特殊安全需求的场景下可以跳过配置,不会影响基础连通性。
接下来要给这个新增的Peer分配专属的虚拟内网IP,比如提前规划的WireGuard虚拟网段是10.0.0.0/24,给手机客户端分配的Peer地址就可以设置为10.0.0.2/32,注意这里的子网掩码前缀是32位,代表这个Peer是单个独立节点,不要误填为24位,否则会直接引发虚拟网段的路由冲突,导致后续数据包转发异常。
客户端侧的Peer对应配置要求
以安卓平台的WireGuard官方客户端为例,新建隧道时先在接口板块填入客户端自身生成的私钥,以及刚才服务端为这个Peer分配的专属虚拟IP,DNS服务器可以按需配置为公共解析服务地址,也可以填写服务端侧的内网DNS地址,实现内网域名的正常解析。
接下来在客户端隧道的Peer配置板块添加节点信息,这里的Peer指向的就是之前配置的软路由服务端,所以要填入服务端的公钥,端点位置填写服务端的公网IP或者动态域名加之前设置的UDP监听端口,允许的IP段可以根据需求设置,如果填写0.0.0.0/0就代表把客户端所有流量都通过VPN隧道转发,如果仅需要访问家庭内网设备,就只填写家庭局域网段和WireGuard虚拟网段即可。
连通性验证与常见配合误区排查
两端配置全部完成后,先启动服务端的WireGuard进程,确认服务状态显示正常运行,再启动手机端的VPN隧道,正常情况下在服务端的Peer管理列表里,就能看到对应客户端节点的最新握手时间持续更新,如果这个时间字段停留在几小时前,就代表两端还没有完成加密握手流程。
如果长时间没有握手记录,首先排查两端的Peer公钥是否填反,这是新手配置WireGuard Peer时最高发的错误,正确的对应逻辑永远是本地节点留存自身的私钥,把对端的公钥填入自己的Peer列表,这个对应关系出错的话,无论怎么调整其他参数都不可能建立握手。
如果已经生成了有效握手记录,但客户端还是没法访问服务端侧的内网资源,就逐一检查两端Peer的允许IP字段是否配置错误,服务端侧给客户端Peer分配的虚拟IP有没有和其他Peer节点冲突,同时确认服务端系统已经开启了IP转发功能,没有开启IP转发的话,即使隧道成功建立也没法完成跨网段的数据包转发。
最后要注意WireGuard的Peer配置是完全对等的,你也可以把两台部署在公网的服务器互相添加为Peer组建跨地域的私有网络,完全不需要刻意区分谁是服务端谁是客户端,只要保证两端的Peer参数一一对应,就能快速建立加密隧道,不要生硬套用传统IPsec VPN的主从配置思维,避免添加不必要的冗余配置。



