很多初次接触WireGuard的用户都会卡在AllowedIPs的配置环节,要么出现VPN连通后公网流量完全断网,要么只能访问虚拟网段没法触达服务端侧的内网设备,本质上都是没有理清WireGuard AllowedIPs:客户端与服务端如何配合的核心逻辑。本文以家用旁路由部署WireGuard服务端、手机作为远程访问客户端的常见场景为基础,拆解字段原理、配置规则、验证方法和常见排错思路,帮用户避开路由配置的常见陷阱。
AllowedIPs字段的基础路由逻辑
不少新手会误以为AllowedIPs是WireGuard内置的访问白名单,用来过滤不被允许的IP访问请求,实际上WireGuard本身没有自带默认的访问控制规则,AllowedIPs的核心作用是定义路由匹配条目,告诉当前系统哪些目标网段的流量需要封装进WireGuard隧道,发往对应的对等节点。
这个字段的匹配规则遵循最长前缀优先原则,当系统内多条路由条目匹配同一个目标IP时,前缀长度更长的条目优先级更高,不会出现路由规则互相覆盖的问题,这也是WireGuard路由逻辑比传统IPsec、OpenVPN更简洁高效的核心原因。
服务端侧AllowedIPs的配置规则
WireGuard服务端的AllowedIPs字段全部挂载在每个Peer对等节点的配置段下,不存在全局统一的AllowedIPs配置,很多新手习惯在服务端的Interface段下添加AllowedIPs条目,完全不会生效,反而会引发配置解析报错。
针对普通的远程访问客户端,服务端对应Peer节点的AllowedIPs首先要填入给该客户端单独分配的虚拟IP地址,后缀必须是/32,比如给手机客户端分配的虚拟地址是10.0.0.2,这里就要写10.0.0.2/32,作用是告诉服务端,所有发往10.0.0.2的流量,都要从WireGuard接口转发到对应的手机客户端。
如果需要让该客户端对外宣告自身所在的局部网段,比如手机开启了本地热点,希望VPN隧道内的其他设备可以直接访问热点下的智能硬件,就可以把热点对应的网段也追加到该Peer的AllowedIPs字段中,服务端会自动生成对应的指向该客户端的路由条目。
客户端侧AllowedIPs的配合配置方案
客户端的AllowedIPs字段配置在自身的Interface段下,不需要修改任何服务端配置,仅通过调整这个字段就能实现完全不同的流量转发效果,适配不同的远程访问需求。
如果用户只需要在外网远程访问家里旁路由下的NAS、监控设备,不想让日常的蜂窝数据流量走VPN隧道增加服务端负担,客户端的AllowedIPs只需要填入WireGuard虚拟网段10.0.0.0/24和家庭内网网段192.168.3.0/24即可,只有访问这两个网段的流量会走隧道,其余公网流量依旧通过手机本身的运营商网络转发。
如果用户连接公共WiFi时希望所有上网流量都通过家里的宽带出口转发,降低公共网络下的流量嗅探风险,只需要把客户端的AllowedIPs设置为0.0.0.0/0,WireGuard会自动生成优先级高于系统默认路由的隧道路由,同时自动排除服务端本身的公网IP,不会出现隧道流量再次套进隧道引发的死循环问题。
配合效果的验证步骤
完成两边的配置并重启WireGuard服务后,首先在客户端侧执行ping命令,访问服务端的WireGuard虚拟网关地址10.0.0.1,如果可以正常收到回包,说明基础隧道连通,两端针对虚拟网段的AllowedIPs配置没有逻辑错误。
接下来测试访问家庭内网的网关地址192.168.3.1,如果可以正常连通,说明服务端已经生成了指向WireGuard接口的回程路由,内网设备的返回流量可以正常通过隧道发回客户端,没有被旁路由的其他路由规则拦截。
如果配置了全局流量走隧道的规则,打开浏览器访问公网IP查询站点,页面显示的出口IP为家庭宽带的公网IP,就说明全局路由的配合逻辑已经完全生效。
常见的配合误区排查
很多用户遇到隧道连通但无法访问内网设备的问题,大概率是服务端多个Peer节点的AllowedIPs配置出现网段重叠,比如给两个不同客户端的Peer都配置了10.0.0.0/24的AllowedIPs,服务端收到去往该网段的流量时无法判断该转发给哪个对等端,自然就会出现丢包不通的问题。
还有部分用户把客户端的AllowedIPs设置为0.0.0.0/0之后,出现部分公网站点无法打开的情况,这类问题和AllowedIPs的配合逻辑无关,大概率是服务端没有开启IP转发功能,或者防火墙的地址伪装规则没有覆盖WireGuard的虚拟网段,调整对应的防火墙配置即可恢复正常。

