隐私与安全

WireGuardPeer配置常见填写错误避坑与正确设置

很多用户在自行部署WireGuard站点到站点隧道、远程办公接入隧道的过程中,经常遇到Peer配置填写错误导致隧道完全无法建立、单向不通、路由异常等问题,反复重启服务也找不到故障根源。本文结合日常实操中的大量排障案例,梳理WireGuard Peer配置:常见填写错误的典型场景,给出对应正确设置方法和可落地的验证步骤,帮大家避开配置过程中的隐性坑点。

网络设备:WireGuard Peer配

技术人员逐一校验WireGuard Peer配置项,定位隧道无法建立的故障根源

Peer公网端点地址与端口填写误区

很多新手配置Peer的时候,飞马加速器安装教程容易把对端的Endpoint字段填错成内网IP,比如之前在同一个局域网下做过本地测试,后续把节点部署到公网之后没有修改配置,本地WireGuard进程根本找不到对应的公网路由转发握手包,隧道永远卡在没有对等节点响应的状态,没有任何显性报错提示。

还有不少用户填写Endpoint的时候只写了公网IP或者动态域名,漏写了冒号后面的自定义端口号,WireGuard默认监听端口是51820,但很多公网部署场景下为了避开运营商的常见端口封禁,会改用其他自定义端口,漏填端口的话客户端会默认往51820端口发送握手请求,要是对端防火墙没有放行这个端口的流量,所有握手包都会被直接丢弃。

正确的设置方式是先在对端设备上确认WireGuard进程实际监听的端口,同时用公网IP加对应端口做一次端口连通性测试,确认端口在公网侧可达之后,再把完整的「对端公网IP/域名:端口」格式内容填到Endpoint字段里,填完之后可以在本地用抓包工具监听WireGuard对应的出站网卡,确认发出的握手包目标地址和端口和你填写的Endpoint内容完全一致。

Peer公钥与预共享密钥的常见填写错误

多Peer部署场景下,很多用户容易把不同对端的公钥搞混,比如把A节点的公钥填到B节点的Peer配置项里,这种情况下WireGuard不会弹出任何显性配置错误提示,只会默默丢弃所有不匹配公钥校验规则的加密包,你抓包能看到两边都在持续发送握手包,但始终收不到对端返回的合法响应。

还有不少用户使用预共享密钥增强加密安全性的时候,直接把自己本地的私钥填到PresharedKey字段里,或者复制密钥内容的时候不小心多带了一个空格、换行符,WireGuard的密钥是固定长度的base64编码字符串,多一个字符都会导致校验失败,加密出来的内容完全无法被对端正常解密。

验证这部分配置是否正确的方法非常简单,两边分别把自己的公钥和对方配置里对应的Peer公钥做逐字符比对,完全一致才是正确的,预共享密钥可以两边分别导出之后做哈希校验,飞马确认字符完全相同,全程不要用手动输入的方式填写密钥,全部通过复制粘贴操作,粘贴完成之后检查内容首尾有没有多余的空白字符。

Peer允许IP段配置的逻辑误区

很多新手搞不清Peer的AllowedIPs字段的实际作用,误以为这个字段是本地设备要对外发布的路由段,实际上这个字段的作用是告诉WireGuard,哪些目标IP的流量要走这个Peer对应的隧道发出去,很多用户随手填了0.0.0.0/0想走隧道转发所有流量,但是忘了把连接WireGuard对端的公网地址本身的路由排除,结果连公网握手的流量都往隧道里发,直接导致WireGuard的公网出口流量被隧道本身劫持,隧道瞬间断开。

还有的多Peer部署场景下,不同Peer的AllowedIPs段出现重叠,比如两个Peer都配置了指向同一段内网地址的路由,WireGuard会按照最长掩码匹配规则选择转发路径,很容易出现本该发给A节点的流量错误发到B节点的情况,导致对应业务完全不通,而且这类路由冲突问题排查起来非常耗时。

正确的设置逻辑是,先梳理每个Peer节点背后对应的专属内网网段,把这些网段精准填到对应的AllowedIPs配置项里,如果要设置全局流量走隧道的规则,要在AllowedIPs之外单独加一条路由,把你连接WireGuard对端的公网地址指向本地原有网关,保证公网握手流量不会被隧道劫持,多Peer场景下要保证所有AllowedIPs的网段没有重叠,从根源上避免路由冲突。

Peer保活参数的不合理设置问题

很多用户在NAT网关后面部署WireGuard节点的时候,不知道需要配置PersistentKeepalive参数,默认这个参数值是0,也就是不会主动向对端发送保活包,NAT网关的会话超时之后,公网侧的对端根本找不到NAT后面的节点地址,隧道就会变成单向连通,只能NAT后面的节点主动访问公网节点,公网节点主动发起的所有请求都没有任何响应。

还有的用户误以为保活参数设得越小隧道越稳定,把PersistentKeepalive的值设成1秒,在多节点部署场景下会产生大量不必要的空握手包,占用多余的带宽资源,也不会带来实际的稳定性提升。

正确的设置是所有处于NAT后的Peer节点,都给对应的远端Peer配置项加上PersistentKeepalive参数,取值不需要太小,只要小于你上游NAT网关的会话超时时间就可以,配置完成之后可以查看WireGuard的运行状态信息,飞马加速器安装教程看对等节点的最新握手时间间隔,只要间隔不超过你设置的保活时间加正常网络延迟,就说明隧道维持状态正常。

手机连接编辑组
手机连接编辑组
内容编辑

整理 Android 与 iOS 的连接权限、后台运行和网络切换注意事项。

查看更多文章
配置入门

从一个连接问题开始

遇到丢包只出现在探测工具相关问题,可从“对照实际业务和终点响应后再判断”开始阅读。不能仅凭被限制的探测推断所有业务都丢包,需要结合具体环境判断。