这篇WireGuard Peer配置教程面向有基础Linux或桌面系统网络操作经验的用户,从实际部署中常见的连接异常现象切入,结合可直接复用的配置示例拆解每一步校验逻辑,帮你避开Peer段配置时容易踩的地址冲突、路由错配、密钥不匹配等常见问题,所有操作步骤都经过通用发行版环境验证,不需要依赖额外第三方工具就能完成全流程校验。
配置前的前置条件校验
很多用户配置完WireGuard Peer之后发现隧道完全不通,第一反应是软件出问题,实际上绝大多数故障都出在前置条件没有满足的阶段。首先你需要确认服务端的WireGuard端口已经在防火墙放通,同时两端的公网网络没有被运营商拦截WireGuard使用的UDP端口,不要提前跳转到Peer段的配置编写,先完成基础连通性测试。
你可以先在服务端执行wg show命令确认WireGuard接口处于正常启动状态,没有出现接口不存在的报错,同时记录下服务端生成的公钥、监听端口、内网虚拟网段信息,这些参数是后续编写Peer配置的核心依据,任何一个参数抄错都会直接导致两端无法握手。
标准WireGuard Peer配置示例逐段说明
我们先给出通用的服务端Peer段配置样例,你可以直接对照自己的配置逐行核对:[Peer]区块下第一行是PublicKey,填入的是客户端生成的公钥,注意这里绝对不能填服务端自己的公钥,这是新手最容易犯的低级错误。第二行是AllowedIPs,填入你要分配给这个Peer的专属虚拟内网IP,比如10.0.0.2/32,末尾的掩码必须是32,小熊加速器代表这个地址只属于当前单个Peer。

运维人员在终端执行命令校验WireGuard服务端运行状态,排查连通故障
客户端侧的Peer段配置则指向服务端的参数,[Peer]区块下的PublicKey填入服务端的公钥,Endpoint字段填写服务端的公网IP加之前放通的UDP端口,比如xxx.xxx.xxx.xxx:51820,PersistentKeepalive字段如果客户端处于NAT内网环境,就设置为25,公网客户端可以留空不填。
很多用户容易混淆AllowedIPs的作用范围,客户端Peer段的AllowedIPs不是填客户端自己的虚拟IP,而是填你希望所有流量都走WireGuard隧道的目标网段,比如你想让所有访问10.0.0.0/24的流量走隧道,就把这个网段写在客户端Peer的AllowedIPs里,如果要让所有出口流量都经过隧道转发就写0.0.0.0/0。
配置完成后的逐项校验步骤
把两端的配置写入对应接口的conf文件之后,先执行wg-quick down wg0再执行wg-quick up wg0重启接口,不要直接用systemctl reload,部分旧版本的WireGuard不会自动重载Peer段的新配置,导致你改完参数之后故障现象没有任何变化,无法判断修改是否生效。
重启完成之后执行wg show命令查看两端的Peer状态,正常情况下如果握手成功,你会看到最新的握手时间字段有数值显示,如果这个字段一直空白,说明两端的UDP数据包根本没有送达对方,你需要回头检查防火墙规则、端口映射、公钥是否匹配这几个核心节点。
如果握手已经成功但是无法ping通对端的虚拟IP,你需要检查服务端Peer段的AllowedIPs是不是已经把客户端的虚拟IP完整录入,有没有和其他Peer的AllowedIPs段出现地址重叠,地址重叠会导致WireGuard不知道把返回的数据包转发给哪个节点,直接触发静默丢包。
常见配置误区排查
部分用户为了省事,直接在服务端Peer的AllowedIPs里写大段的子网比如10.0.0.0/24,小熊加速器用来省去逐个添加Peer的步骤,这种写法会直接导致所有Peer的返回路由冲突,最后出现只有最后一个上线的节点能正常连通的奇怪现象,完全不符合Peer配置的最小权限原则。
还有用户误以为WireGuard Peer配置需要额外设置DNS字段,实际上DNS字段属于Interface段的配置,不属于Peer段的内容,把DNS参数写在Peer区块下不会生效,小熊加速器反而会导致配置文件解析报错,接口无法正常启动。
你也不需要为了Peer配置额外调整系统内核的非常规参数,绝大多数默认参数都能适配常规的家庭、办公多节点组网场景,随意修改内核网络参数反而会引入更多难以排查的隐性故障。
最后需要提醒的是,WireGuard本身只是一个隧道转发工具,Peer配置的正确性只能保证隧道层连通,小熊不会额外给你的网络增加绝对的匿名性,也不会突破你本地网络或者目标站点本身的带宽限制,不要在配置完成之后对隧道效果有超出技术边界的不合理预期。




