在使用 OpenVPN 时,如果服务端开启了全局代理,连接 VPN 后,大部分网络流量都会被 OpenVPN 接管。路由表中通常会出现类似规则:
0.0.0.0/1 via 10.8.0.1
128.0.0.0/1 via 10.8.0.1
这两条路由基本覆盖了整个 IPv4 地址空间,因此访问普通公网网站时,流量会走 VPN。
但有些系统虽然通过域名访问,实际服务地址却在本地内网。例如:
a.com -> 192.168.0.27
这类场景需要同时解决两个问题:
1. 域名要解析到内网 IP
2. 这个内网 IP 要绕过 VPN,走本地网关
以 Windows + OpenVPN 为例,可以这样配置。
首先,在 Windows 的 hosts 文件中固定域名解析:
C:\Windows\System32\drivers\etc\hosts
添加:
192.168.0.27 a.com
保存后刷新 DNS 缓存:
ipconfig /flushdns
这一步很关键。如果不加 hosts,系统可能无法把 erp.chinapcbone.com 解析到内网地址,浏览器自然也就无法访问到内网 ERP。
然后,在 OpenVPN 客户端配置文件中添加一条绕过 VPN 的路由。比如当前使用的配置文件是:
C:\Users\Albert\OpenVPN\config\dn\dn.ovpn
在文件末尾加入:
# Bypass VPN for ERP intranet host
route 192.168.0.27 255.255.255.255 net_gateway
这条配置的含义是:
访问 192.168.0.27 时,不走 VPN 网关,而是走本地网关。
其中:
192.168.0.27
是 ERP 服务器的内网 IP。
255.255.255.255
表示只匹配这一台主机。
net_gateway
是 OpenVPN 的特殊关键字,表示连接 VPN 之前的本地默认网关。
完成后,重连 OpenVPN,让配置生效。
最终效果:
访问普通网站 -> 走 OpenVPN
访问 a.com -> 解析到 192.168.0.27,并走本地内网
这样就实现了 OpenVPN 全局代理环境下的单个内网站点分流。









