分享技术 · 探索极限 · Code is Art
安全 发布 2026-05-11 281阅读 约 7分钟阅读

WireGuard AllowedIPs 详解:全局代理、内网分流和公司网络冲突

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

验证方式:

  1. 客户端开启 WireGuard。
  2. 访问 Google、GitHub、YouTube 等服务。
  3. 打开 OpenClash 控制面板。
  4. 查看 Connections 里是否出现来源为 10.7.0.x 的连接。

如果看到:

source: 10.7.0.2
host: google.com
rule: Proxy
chains: 代理节点

说明 WireGuard 客户端流量已经被 OpenClash 接管。

如果看不到,需要检查 OpenClash 是否代理了 wg010.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/24

WireGuard 自身网段也尽量避免常见冲突。比如如果公司大量使用 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:外出公共网络用

发表回复