TL;DR:WireGuard 是系统级 VPN,核心分流开关是
AllowedIPs;代理客户端更像规则引擎,擅长按域名、进程或规则集处理。把两者混用时,先决定谁掌握默认路由,别让两套工具同时抢流量。
很多人搜索「WireGuard 分流代理客户端」,其实是在问两件事:能不能只让一部分流量进 WireGuard;以及能不能像 Clash、Singbox 那样按网站规则分流。答案是:可以做 split route,但原生 WireGuard 不是域名规则客户端。
选型表
| 场景 | 更适合 | 原因 |
|---|---|---|
| 访问公司内网、NAS、家中服务器 | WireGuard 系统 VPN | 按网段路由,稳定简单 |
| 按域名规则选择出口 | 代理客户端 | 能读取域名、规则集和策略组 |
| 手机全局安全接入家庭网络 | WireGuard | 移动端系统支持成熟 |
| 多协议订阅、规则频繁变化 | 代理 App | 更新和策略切换更方便 |
| 两者共存 | 分层管理 | WG 负责内网,代理 App 负责应用流量 |
系统 VPN 与代理路由的区别
WireGuard 创建的是虚拟网卡,系统路由表决定哪些 IP 包进隧道。AllowedIPs = 0.0.0.0/0, ::/0 意味着默认路由都交给 WireGuard;如果只写 10.8.0.0/24 或公司内网段,就只有这些目标进入隧道。
代理客户端则通常在应用层或 TUN 层工作。它可以先看到域名,再根据规则选择出口。域名规则、策略组、规则集更新,这些都不是 WireGuard 原生关注的内容。
split route 的关键是 DNS
只改 AllowedIPs 不够。假设你只让公司内网段进 WireGuard,但 DNS 仍然使用公共 resolver,那么内网域名可能解析不到;反过来,所有 DNS 都进 WireGuard,普通网站又可能被内网 DNS 返回错误结果。
做法是把 DNS 和路由一起设计:内网域名交给内网 DNS,公共域名交给常规 DNS;如果客户端不支持细分,就宁可把 WireGuard 用作内网通道,再让代理 App 处理外部规则。
移动端行为要单独看
iOS 与 Android 在 Wi-Fi、蜂窝、休眠之间切换时,会重建 VPN。WireGuard 的隧道恢复很快,但 DNS 缓存、后台限制、低电量模式仍可能造成短暂断流。代理 App 如果也启用 VPN 模式,两者通常不能同时作为系统 VPN 运行。
如果你需要的是订阅格式与多客户端兼容,而不是原生 WireGuard 配置,可以使用兼容 Clash / Singbox / V2Ray 的订阅,把 WG 场景和代理规则场景分开管理。
共存时的安全边界
两套工具共存时,最怕默认路由重复。一个可维护的方案是:WireGuard 只写内网网段和必要 DNS,代理 App 负责浏览器、开发工具和普通应用;如果必须全局进入 WireGuard,就先关闭代理 App 的 TUN/VPN 模式,只保留本地 HTTP 或 SOCKS 端口给特定应用使用。
日志也要分开看。WireGuard 日志通常只能告诉你握手、端点和传输字节,不会告诉你某个域名为什么走这条路;代理客户端日志能显示规则命中,但不一定知道系统路由表里的 WireGuard 优先级。排查时同时记录 AllowedIPs、系统路由表、DNS 设置和代理规则,才能还原真实路径。
移动端配置建议
手机上不要频繁在多个 VPN 类 App 之间切换。iOS 一次只允许一个主要网络扩展接管,Android 厂商系统也可能清后台。若 WireGuard 用于家庭或公司内网,就让它保持简单;需要复杂规则时,另建代理客户端配置,按场景手动切换,比让两个 App 互相接管更稳定。
一个可落地的拆分例子
假设你要访问家里 NAS、公司 Git 服务和普通网页。可以让 WireGuard 的 AllowedIPs 只包含家中网段与公司网段,DNS 里保留能解析这些内网域名的服务器;浏览器、包管理器和聊天工具仍交给代理客户端。这样内网访问走隧道,日常应用由规则引擎处理,任何一边出问题都能单独关闭。
如果临时需要全局 WireGuard,就把代理客户端切到手动端口模式,只让指定应用使用本地端口。等全局任务结束,再恢复 split route。这个流程虽然多一步,但能避免移动端和桌面端最常见的双 VPN 冲突。配置变更后,先测内网域名、内网 IP、普通网页三类目标,确认每类都走预期路径。
相关阅读
FAQ
WireGuard 适合当日常代理客户端吗? 适合固定网段和全局 VPN,不适合频繁按域名切策略。
split route 写错会怎样? 常见结果是内网进不去、普通网站也进隧道,或 DNS 能解析但连接走错路。
桌面端能否让浏览器走代理、SSH 走 WireGuard? 可以。浏览器交给代理客户端,SSH 目标网段写进 WireGuard AllowedIPs,互不重叠即可。