隐私与安全

WireGuardAllowedIPs配置逻辑与常见连接

WireGuardAllowedIPs配置逻辑与常见连接 | shadowrocket

很多WireGuard用户在部署隧道时经常遇到密钥匹配、公网端口未封禁,但隧道连通异常、路由行为不符合预期的问题,这类故障绝大多数都和AllowedIPs的配置逻辑错位直接相关。本文从AllowedIPs的底层运行规则出发,梳理该字段和连接故障的核心关联,给出可落地的逐项排查步骤,帮用户快速定位路由冲突、流量逃逸、校验失效等隐形网络问题。

网络设备:WireGuard Allow

运维人员对照路由规则排查WireGuard隧道的连通异常故障

AllowedIPs的核心配置底层逻辑

很多用户误以为AllowedIPs只是“允许通过WireGuard隧道的IP段白名单”,这是最常见的认知偏差,实际上这个字段在WireGuard两端同时承担两个核心作用,一是对端发来的数据包的源IP校验规则,小火箭加速二是本地路由表的自动注入触发条件。

站在发起连接的客户端侧看,你填写的AllowedIPs列表,会直接被WireGuard转化为操作系统路由表里的明细路由,指向WireGuard的虚拟网卡,所有目标IP落在这个列表里的流量,都会被封装进隧道发往对端公网地址。站在服务端侧看,AllowedIPs里填写的客户端虚拟IP,是服务端判断某个数据包是不是来自对应客户端的核心依据,要是客户端发来的源IP不在服务端给它配置的AllowedIPs里,数据包会直接被内核丢弃。

AllowedIPs配置错位直接引发的典型故障现象

最常见的故障就是隧道能正常完成握手,但完全ping不通对端虚拟网段,很多用户第一反应去查防火墙规则,查完发现端口全开、密钥完全匹配,最后排查到AllowedIPs里根本没填对端的虚拟IP段,小火箭加速本地根本没有生成指向隧道的对应路由,流量直接走了本地默认网关绕路,自然不可能抵达隧道对端。

第二类故障是部分外部站点能正常访问、部分站点完全打不开,同时本地内网的打印机、共享NAS完全失联,这种情况大多是用户为了实现隧道全流量转发,在客户端AllowedIPs里填了0.0.0.0/0,却漏加了自己本地局域网的网段,导致本地内网访问的流量也被强行送进隧道,直接出现本地资源无法访问的问题。

还有一类隐形故障是隧道握手几秒钟就自动断开,很多用户排查半天找不到原因,实际上是服务端给不同客户端配置的AllowedIPs出现了网段重叠,两个不同的客户端被分配了同一段虚拟IP的路由,内核路由表出现冲突,shadowrocket后上线的隧道直接被系统路由规则踢下线。

逐项排查AllowedIPs关联故障的操作步骤

第一步先确认两端AllowedIPs的双向匹配关系,先在客户端执行路由查看命令,核对你在AllowedIPs里填写的所有网段,是不是都已经正确生成了指向WireGuard虚拟网卡的路由条目,如果有缺失,说明你填写的网段格式不符合操作系统的路由规则,比如填了带主机位的非CIDR格式,系统无法识别就不会生成对应路由。

第二步登录WireGuard服务端,查看对应peer条目的AllowedIPs配置,小火箭加速确认给客户端分配的虚拟IP是唯一的,没有和其他peer的AllowedIPs网段出现重叠,同时要确认服务端的AllowedIPs里写的客户端虚拟IP,和客户端自己配置的虚拟IP完全一致,不然客户端发来的所有数据包都会被服务端校验丢弃。

如果是配置全局隧道的场景,要额外在客户端的AllowedIPs里追加你当前所在本地局域网的全部网段,让访问本地内网的流量走物理网卡直接转发,不要被隧道路由覆盖,排查的时候可以临时删掉0.0.0.0/0的配置,只填两端的虚拟网段,先确认隧道基础连通性正常,再逐步扩大AllowedIPs的覆盖范围。

常见的AllowedIPs配置误区规避

很多用户为了省事,直接在服务端给所有peer的AllowedIPs都填0.0.0.0/0,这种配置除了会大幅提升路由冲突的概率之外,还会破坏WireGuard本身的源IP校验机制,任何一个客户端发来的源IP都能被服务端接收,相当于直接放开了隧道的入口校验规则,会带来不必要的网络安全风险。

还有不少用户习惯在AllowedIPs里填大量零散的单IP条目,这种操作不会直接引发连接故障,但会导致系统路由表生成大量明细条目,路由维护成本大幅提升,后续排查其他网络故障的时候很容易被冗余路由干扰,尽量把连续的IP段合并成标准CIDR格式填写,就能避免这类冗余问题。

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

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

查看更多文章
配置入门

从一个连接问题开始

遇到WireGuard对端端口变更相关问题,可从“同步批准的配置并检查相关网络规则”开始阅读。开放一个端口不等于认证与路由配置正确,需要结合具体环境判断。