WireGuard 加第二个客户端后第一个不通:每个客户端需要独立 Peer
WireGuard 加手机后笔记本不通,先核对独立 Peer 段、运行中公钥与隧道地址,再区分客户端默认路由和服务器对端归属。
服务器上原来只有笔记本能连接 WireGuard,加上手机配置后,笔记本不通;删掉手机的几行,笔记本又恢复。先数服务器配置里的 [Peer] 段,并与运行中的对端列表比较。写了两组 PublicKey,不代表已经配置了两个对端,每个客户端应有自己的 Peer 段。
以下针对一个 Linux WireGuard 接口接入多个独立客户端,使用 wg 或 wg-quick 管理配置的情况。客户端只通过服务器访问内网,还是把全部 IPv4 流量交给服务器,会影响路由设计;先修对端结构,再检查转发和出口,不能把所有不可达都归到 AllowedIPs。
服务器实际加载了几个对端
在有管理权限的服务器上,读取实际接口的公开信息。wg0 是示例名称:
sudo wg show wg0 peers
sudo wg show wg0 allowed-ips
sudo wg show wg0 latest-handshakes
对照每个客户端的公钥,确认两台设备都出现在运行列表中。握手时间为零或很久以前,还要结合该设备是否刚发起流量判断;没有业务流量时,不能仅凭时间旧就认定隧道损坏。
只在受控环境检查输出,分享时脱敏公钥与内部地址。不要为了收集配置直接公开 wg showconf 或 wg show ... dump 的完整输出,这些形式可能包含私钥或预共享密钥。
若磁盘上有两个客户端的文字,而运行中只有一个,先确认读取的是当前接口真正使用的配置,再检查段落边界。注释 # Phone 只是注释,不会建立新的 Peer。
两个客户端要写成两个 Peer 段
下面是服务器配置的结构片段,地址是示例,公钥占位文字必须替换,不能直接加载:
[Peer]
PublicKey = LAPTOP_PUBLIC_KEY
AllowedIPs = 10.66.0.2/32
[Peer]
PublicKey = PHONE_PUBLIC_KEY
AllowedIPs = 10.66.0.3/32
把它们放进现有服务器配置,保留原来的 Interface、监听、路由与访问控制。不要复制同一份客户端私钥到两台设备:不同客户端应有各自的密钥对和唯一的隧道地址,服务器才能区分对端身份。
服务器端的 AllowedIPs 有两个作用:选择向哪个对端发送某个目标地址的包,以及核对该对端解密后的包允许使用哪些源地址。对于各自只有一个 IPv4 隧道地址的普通客户端,用对应的 /32 描述归属,比把整个共享网段都交给每个客户端更明确。
如果某个对端还承载后面的子网,需要按实际拓扑增加其网段,不能把 /32 当成所有部署的唯一正确值。也要检查相同地址或相同前缀是否被错误分给多个对端,避免回程送往错误身份。
客户端 Interface 的 Address 是接口地址,Peer 的 AllowedIPs 则描述经这个对端收发的地址范围,两者不能混为一个字段。客户端 Address 使用 /24 本身并不普遍违法;修改掩码应有路由依据,不能看到 /24 就认定它必然导致第二台设备断线。
两台客户端各自使用 0.0.0.0/0 可以成立
在两台独立设备上,各自只有一个服务器 Peer,AllowedIPs 都写 0.0.0.0/0,可以表示各自将全部 IPv4 目标交给服务器。这两个设置分属不同机器,并不会因为文字相同就互相覆盖。
相反,服务器上的两个普通客户端 Peer 不应都无条件承接同一个默认前缀。服务器需要按各自的隧道地址把返回包交回对应客户端。
wg-quick 会依据 AllowedIPs 安排系统路由;直接使用 wg 则还需要由既有网络管理流程设置接口地址和路由。不要只修改磁盘文件后,就假定运行状态已经更新,也不要在已有接口上反复执行 up 来试图叠加配置。
这篇片段只说明 IPv4 对端结构。实际同时使用 IPv6 时,还需检查其地址、路由及访问策略,不能凭 IPv4 连通就宣布全部流量已通过 VPN。
更新后先查隧道,再查互联网出口
变更前保存配置和当前公开状态,配置备份含私钥时按敏感文件限制权限。通过现有管理方式加载,确认采用的是正确接口与文件。需要重建接口时会影响已有连接,先保留控制台或另一条管理通道。
wg 的 syncconf 可以尽量只应用差异;但它不会替你更新所有 wg-quick 管理的地址、DNS 和系统路由。还要留意 SaveConfig:启用时,接口关闭会把运行配置写回文件,可能覆盖尚未加载的磁盘修改。不要把不同加载方式混用而失去配置来源。
加载后,再查 peers 与 allowed-ips,确认两台客户端的公钥和唯一地址同时存在。分别发起到隧道内服务的请求,检查两台设备都能握手、传输并获得正确响应。
若隧道内服务已恢复,只有互联网访问失败,再检查服务器转发、必要的出口转换、防火墙和 DNS。扩大 AllowedIPs 或关闭防火墙不会替代这些检查。失败时恢复保存的配置及本次改动的路由,通过相同管理流程重新加载;不要清空其他客户端或重生成全套密钥。


