WireGuard作为轻量化的现代VPN协议,很多用户配置时遇到的连不上、分流失效、内网不通等问题,网络加速器80%以上都和AllowedIPs参数的错误设置有关,这个参数看起来只是一串网段列表,实际上是WireGuard路由逻辑的核心触发规则,不同场景下的配置逻辑差异极大,稍有不慎就会导致整个隧道的转发逻辑完全错乱。
AllowedIPs参数的核心作用与配置前置要求
很多新手对这个参数的第一误解是把它当成访问控制白名单,实际上AllowedIPs的核心作用是告诉WireGuard内核,哪些目标IP的流量需要走当前隧道接口转发,同时系统会自动生成对应网段指向WireGuard虚拟网卡的路由条目,它本身不具备任何流量拦截的能力。
在开始配置之前,你必须先理清两端的地址规划,首先要确认WireGuard隧道本身使用的虚拟私网网段,不能和本地设备的现有局域网网段、所有要对接的对端内网网段出现重叠,其次要明确自己的使用需求,是只分流部分内网流量,还是所有公网流量都走隧道,不同需求对应的AllowedIPs写法完全不同。
基础场景的WireGuard AllowedIPs配置示例说明
最常见的家庭远程访问场景,用户只需要在外网访问家里的监控、NAS等内网设备,不需要把普通上网流量走隧道,这时候客户端的AllowedIPs只需要填写服务端的WireGuard虚拟接口地址,加上家里内网的目标网段即可,比如服务端虚拟地址是10.0.0.1,家里内网是192.168.3.0/24,就可以写AllowedIPs = 10.0.0.2/32, 192.168.3.0/24,配置完成后只有访问这两个段的流量会走VPN,其余流量依旧走本地运营商网络。

运维人员正在核对VPN路由转发规则,排查隧道连通异常问题
如果需要让所有设备的公网访问流量都通过WireGuard隧道转发,实现全流量走隧道的效果,小黄鸭只需要在客户端的AllowedIPs里写入0.0.0.0/0, ::/0,覆盖所有IPv4和IPv6的地址段即可,这时候系统会把所有对外的请求都导向WireGuard虚拟接口,再由服务端节点做转发处理。
针对两个办公点的内网互通场景,A办公室的内网网段是192.168.1.0/24,B办公室的内网网段是192.168.2.0/24,两端的WireGuard节点互加peer规则时,A端对应B节点的AllowedIPs需要填写B的WireGuard虚拟地址加上192.168.2.0/24,B端对应A节点的AllowedIPs填写A的虚拟地址加上192.168.1.0/24,就能实现两个内网的全量互访。
配置后的校验步骤与预期结果判断
写完配置之后不要直接启动隧道,先核对所有单节点的地址对应的掩码长度,比如单独一个设备的虚拟地址必须用/32掩码,不能随意写成/24,否则系统会生成范围错误的路由条目,直接干扰本地原有网络的正常转发。
启动隧道之后,可以通过系统自带的路由查询命令,查看是否生成了和AllowedIPs网段一一对应、指向WireGuard虚拟接口的路由规则,如果没有生成对应路由,大概率是你填写的网段和本地已经存在的路由条目出现了重叠,需要调整网段规划或者修改路由优先级解决冲突。
测试连通性的时候建议按照从近到远的顺序验证,先ping对端的WireGuard虚拟接口地址,确认隧道本身的加密通道正常,再ping对端内网的实体设备地址,最后验证分流规则是否符合预期,比如只配置了内网网段分流的场景下,访问公网服务时查询到的出口IP应该还是本地运营商的地址。
常见的AllowedIPs配置误区排查
很多新手误以为AllowedIPs里不写的网段就无法通过隧道访问,实际上这个参数只负责生成路由,不会拦截任何流量,如果需要限制特定网段的访问权限,必须额外在WireGuard两端的系统防火墙里配置对应的转发规则,不能只靠修改AllowedIPs实现访问控制。
配置全流量隧道的时候最容易遇到的坑是路由死循环,隧道建立之后WireGuard本身的加密公网流量也被导向隧道转发,直接导致隧道瞬间断开,排查这个问题的时候可以检查是否没有把WireGuard服务端的公网地址从全量路由规则里排除,通过添加更精确的静态路由把服务端公网IP指向本地物理网卡的默认网关即可解决。
不要为了省事在服务端的多个peer规则里都填写0.0.0.0/0的AllowedIPs,这种配置会让服务端的路由表出现大量重叠的全量段条目,所有客户端的返回流量转发目标都会完全错乱,正常场景下服务端的每个peer对应的AllowedIPs都只能填写该peer独占的虚拟地址,以及该peer侧负责的专属内网段。




