WireGuard AllowedIPs 详解:全局代理、内网分流和公司网络冲突
WireGuard 配置里最容易被误解的字段是 AllowedIPs。很多人以为它只是“允许访问哪些 IP”,但在客户端配置里,它还有一个更重要的作用:决定哪些目标网段走 WireGuard 隧道。
这篇文章整理几个常见场景:
- 只访问家里内网。
- 外出时所有流量回家走 OpenClash。
- 在公司网络里避免影响公司内网。
- 为什么建议准备两套 WireGuard 配置。
一、AllowedIPs 是什么
在客户端配置里:
[Peer]
AllowedIPs = 192.168.1.0/24, 10.7.0.0/24它的含义是:
访问这些目标网段时,走 WireGuard 隧道如果写成:
AllowedIPs = 0.0.0.0/0含义就是:
所有 IPv4 流量都走 WireGuard 隧道所以 AllowedIPs 不只是权限配置,也是路由配置。
二、只访问家里内网
如果你只是想在外面访问家里的 OpenWrt、NAS、服务器、AdGuardHome,推荐这样写:
AllowedIPs = 192.168.1.0/24, 10.7.0.0/24示例:
AllowedIPs = 192.168.1.0/24, 10.7.0.0/24效果:
访问 192.168.1.x → 走 WireGuard
访问 10.7.0.x → 走 WireGuard
访问普通互联网 → 不走 WireGuard
访问公司内网 → 不走 WireGuard适合:
- 公司环境。
- 只需要远程管理家里设备。
- 不想影响当前网络的默认上网行为。
- 不需要外出时使用家里的透明代理。
三、所有流量回家
如果你希望外出时也走家里的 OpenWrt / OpenClash,例如公共 Wi-Fi、酒店、咖啡店、手机热点,可以写:
AllowedIPs = 0.0.0.0/0效果:
所有 IPv4 流量 → WireGuard → 家里 OpenWrt → OpenClash → 出网适合:
- 外出也想走家里的 OpenClash。
- 外出也想使用家里的 AdGuardHome。
- 公共 Wi-Fi 下希望流量回家。
- 想让手机/笔记本表现得像在家里一样。
如果你的家里配置了 OpenClash 全屋透明代理,那么全局回家后,客户端流量可以继续由 OpenClash 按规则处理。
四、为什么公司网络里不建议用 0.0.0.0/0
很多公司有自己的内网地址,例如:
192.168.74.0/24
192.168.75.0/24
192.168.79.0/24
10.0.0.0/8
10.1.0.0/16
10.1.1.0/24如果你在公司网络里启用:
AllowedIPs = 0.0.0.0/0那么访问这些公司内网地址时,也可能被 WireGuard 拉回家里,导致:
- OA 打不开。
- 内网 GitLab 打不开。
- 公司打印机不可用。
- 内网服务器不可达。
- 公司 DNS 解析异常。
- 访问公司服务绕路甚至失败。
WireGuard 客户端本身没有一个简单的“排除这些网段不走 VPN”的字段。因此,公司网络里建议使用内网分流配置。
五、推荐准备两套配置
最实用的做法是准备两个 WireGuard 隧道。
Home-LAN
只访问家里内网:
AllowedIPs = 192.168.1.0/24, 10.7.0.0/24适合:
公司
办公室
需要保留当前网络内网访问的场景Home-Full
所有 IPv4 流量回家:
AllowedIPs = 0.0.0.0/0适合:
酒店
咖啡店
公共 Wi-Fi
手机热点
出差
外出时想走家里代理这样不用每次手动改配置,按场景切换即可。
六、全局回家是否一定走 OpenClash
不一定。
AllowedIPs = 0.0.0.0/0 只能说明客户端流量进了 WireGuard,不代表 OpenClash 一定接管了它。
完整链路应该是:
客户端
→ WireGuard
→ OpenWrt wg0
→ OpenClash 透明代理
→ DIRECT / Proxy验证方式:
- 客户端开启 WireGuard。
- 访问 Google、GitHub、YouTube 等服务。
- 打开 OpenClash 控制面板。
- 查看 Connections 里是否出现来源为
10.7.0.x的连接。
如果看到:
source: 10.7.0.2
host: google.com
rule: Proxy
chains: 代理节点说明 WireGuard 客户端流量已经被 OpenClash 接管。
如果看不到,需要检查 OpenClash 是否代理了 wg0 或 10.7.0.0/24 来源的流量。
七、IPv6 要不要写 ::/0
0.0.0.0/0 只包含 IPv4,不包含 IPv6。
如果你想让 IPv6 也全部走 WireGuard,需要:
AllowedIPs = 0.0.0.0/0, ::/0但前提是家里的 WireGuard、OpenWrt、OpenClash、IPv6 路由都已经配置好。
如果你没有专门处理 IPv6,建议先不要加 ::/0,先让 IPv4 稳定。
八、如果公司网段和家里网段冲突怎么办
如果公司也使用:
192.168.1.0/24而家里也是:
192.168.1.0/24就会发生地址冲突。
建议家庭网络尽量使用不常见的网段,例如:
192.168.88.0/24
192.168.56.0/24
172.27.7.0/24WireGuard 自身网段也尽量避免常见冲突。比如如果公司大量使用 10.x.x.x,可以考虑将 WireGuard 从 10.7.0.0/24 换成:
172.27.7.0/24或者其他不冲突网段。
九、常见配置示例
只访问家里内网
[Interface]
PrivateKey = 客户端私钥
Address = 10.7.0.3/32
DNS = 192.168.1.3
[Peer]
PublicKey = OpenWrt 服务端公钥
Endpoint = vpn.example.com:51820
AllowedIPs = 192.168.1.0/24, 10.7.0.0/24
PersistentKeepalive = 25所有流量回家
[Interface]
PrivateKey = 客户端私钥
Address = 10.7.0.3/32
DNS = 192.168.1.3
[Peer]
PublicKey = OpenWrt 服务端公钥
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25十、总结
AllowedIPs 是 WireGuard 配置里的关键字段。它决定了客户端哪些目标流量走 VPN。
192.168.1.0/24, 10.7.0.0/24:只访问家里内网。0.0.0.0/0:所有 IPv4 流量都回家。- 公司环境建议分流,不建议全局。
- 公共网络环境可以使用全局回家。
- 想同时兼顾两种需求,建议建两套配置。
最稳的使用方式:
Home-LAN:公司用
Home-Full:外出公共网络用