远程办公

WireGuardEndpoint客户端与服务端配合配置

WireGuardEndpoint客户端与服务端配合配置

很多用户在部署WireGuard隧道时经常遇到明明两边配置都填了密钥,却始终无法建立连接的问题,大部分这类故障都不是底层协议的bug,而是WireGuard Endpoint的客户端与服务端配合逻辑出现了偏差,本文从实际运维的故障排查路径出发,梳理两者配合的核心规则、逐项校验步骤和常见误区,帮你快速定位配置不匹配的问题。

网络设备:WireGuard Endpo

运维人员逐项校验WireGuard两端节点的配置,快速定位隧道对接故障

配置前的核心前提校验

首先要明确WireGuard Endpoint的定义,它是每一端节点记录的对端公网地址和监听端口的组合,不是单方面随便填写的参数,客户端和服务端的Endpoint配置逻辑本身就存在差异,很多新手直接把两边的参数互相抄,反而会出现连通性异常。

对于服务端来说,它的WireGuard Endpoint不需要主动填写动态客户端的公网地址,因为大部分客户端处于NAT内网环境下,没有固定的公网入口,小火箭服务端默认是等待客户端主动发起握手请求的,只有固定公网IP的客户端才需要服务端侧填写对应的Endpoint字段。

第一级排查:预共享密钥与公钥的双向匹配

很多人跳过密钥校验直接去查Endpoint地址,其实密钥不匹配的情况下,两端根本不会发出任何有效的握手报文,WireGuard的设计逻辑是所有不符合密钥签名的数据包都会直接丢弃,不会返回任何错误提示,很容易误导管理员认为是Endpoint地址填错了。

检查的时候要确认客户端配置里的公钥是服务端的公钥,服务端配置里的公钥是客户端的公钥,私钥必须是各自节点独有的,不能出现两端私钥相同或者公私钥对颠倒的情况,预共享密钥如果启用的话,两端的32位base64编码字符串必须完全一致,没有任何字符差异。

第二级排查:WireGuard Endpoint地址字段的双向校验

确认密钥完全匹配之后,就可以开始核对Endpoint字段的配置了,普通移动办公场景下,客户端配置里的Endpoint字段必须填写服务端的公网IP或者解析正常的域名,后面紧跟服务端WireGuard进程监听的UDP端口,梯子注意WireGuard只默认使用UDP协议,填写TCP端口的话完全无法建立连接。

如果是部署在云服务器上的服务端,还要额外检查云服务商的安全组规则,是否已经放开了WireGuard监听的UDP端口的入站权限,很多用户在服务器本地防火墙放行了端口,但是云平台层面的拦截规则没有调整,客户端发往服务端Endpoint地址的握手报文会被直接丢弃。

对于有固定公网IP的客户端场景,服务端侧填写的WireGuard Endpoint就是客户端的固定公网地址加它的WireGuard监听端口,这种场景下服务端可以主动向客户端发起握手,梯子不需要等待客户端先发起请求,适合站点到站点的内网打通场景。

第三级排查:路由与虚拟网段的配合规则

很多人前面的配置都完全正确,隧道能建立成功但是无法传输业务流量,这也是客户端和服务端配合不到位的典型表现,首先要核对客户端配置里的AllowedIPs字段,这个字段定义的是哪些网段的流量会被转发到WireGuard隧道里,不要把它和节点的虚拟IP地址搞混。

服务端配置里的客户端Peer节点的AllowedIPs,必须完整覆盖客户端的WireGuard虚拟IP地址,否则服务端收到客户端发来的数据包时,无法匹配到对应的Peer条目,会直接丢弃数据包,反过来客户端侧的AllowedIPs如果没有包含服务端的虚拟IP,也无法向服务端发送隧道内的报文。

常见配置误区的规避

很多新手会在动态IP的客户端侧开启NAT映射,强行给客户端配置固定的公网Endpoint地址,这种操作完全没有必要,反而会引入额外的端口映射故障,普通移动场景下服务端不需要填写客户端的Endpoint,WireGuard会自动记录客户端发起握手的源地址和端口,动态更新对端的Endpoint信息。

还有部分用户习惯把WireGuard Endpoint的域名填写成内网解析的地址,当客户端在外网环境下时无法解析出服务端的公网IP,自然无法发起握手,配置完成后可以先在客户端设备上直接ping配置里填写的Endpoint域名或者IP,确认三层连通性正常之后再启动WireGuard进程。

所有配置调整完成之后,不要直接重启整个系统,先使用wg show命令查看两端的最新状态,小火箭如果看到最新的握手时间在合理范围内,就说明WireGuard Endpoint的客户端与服务端配合已经正常完成,隧道可以正常承载后续的加密流量。

连接排障编辑组
连接排障编辑组
内容编辑

按设备、网络、客户端和服务端逐层检查,让故障定位更有条理。

查看更多文章
连接指南

从一个连接问题开始

遇到账号密码复用相关问题,可从“使用独立凭据并启用可用的正常认证措施”开始阅读。更换出口不能补救已泄露的密码,需要结合具体环境判断。