你描述的是典型的 “智能分流”(Smart Split Tunneling) 需求:
国内网站(百度、网易等)直连(不走 VPN)
国外网站(Google、YouTube 等)走 VPN
这在 OpenVPN 中无法直接通过路由实现(因为路由基于 IP,而你给的是域名),但可以通过以下 组合方案 实现。
核心思路
- 获取国外网站的 IP 段列表(如 Google、AWS、Cloudflare 等)
- 只将这些 IP 段加入 OpenVPN 路由
- 国内流量默认走本地网络(不进 VPN)
由于 DNS 解析结果可能是国内外混合 IP,最可靠的方式是按目标 IP 路由,而非域名。
推荐方案:使用 chnroutes + OpenVPN 分流
这是中文用户最成熟的方案,基于 chnroutes 项目。
步骤 1:生成“仅国外 IP”的路由表
# 在你的电脑或服务器上执行
git clone https://github.com/misakaio/chnroutes.git
cd chnroutes
# 生成 OpenVPN 路由配置(排除中国 IP,只推国外 IP)
python3 chnroutes.py -p openvpn -o vpn-routes.txt
输出文件
vpn-routes.txt包含数千条route X.X.X.X 255.255.255.255,覆盖所有非中国 IP 段。
步骤 2:修改 OpenVPN 客户端配置
编辑你的 .ovpn 文件,在末尾追加这些路由:
# client.ovpn
client
dev tun
proto udp
remote your-vpn-server.com 1194
...
# 删除 redirect-gateway
# push "redirect-gateway def1" # 必须去掉!
# 加载国外 IP 路由(从 chnroutes 生成)
<file>
# 这里粘贴 vpn-routes.txt 的全部内容
route 1.0.0.0 255.255.255.0
route 1.0.1.0 255.255.255.0
route 1.0.2.0 255.255.255.0
...
route 223.255.255.0 255.255.255.0
</file>
原理:
- 所有不在中国 IP 列表中的地址 → 走 VPN
- 所有中国 IP(包括百度、网易、腾讯等)→ 走本地网络
步骤 3:确保 DNS 不泄漏(关键!)
如果 DNS 请求走本地运营商,可能被污染或返回错误 IP。建议:
方案 A:使用 DoH/DoT(推荐)
- 浏览器用 Cloudflare WARP、AdGuard Home 或 Firefox 内置 DoH
- 系统级用
dnscrypt-proxy+1.1.1.1或8.8.8.8
方案 B:强制 DNS 走 VPN(简单)
在 .ovpn 中加:
dhcp-option DNS 8.8.8.8
dhcp-option DNS 1.1.1.1
缺点:所有 DNS 都走 VPN,可能变慢。
验证是否生效
1. 访问国内网站(应直连)
# 查看出口 IP(应为你的本地公网 IP)
curl ifconfig.me
# 测试百度(应快速打开,无延迟)
ping www.baidu.com
2. 访问国外网站(应走 VPN)
# 出口 IP 应变为 VPN 服务器 IP
curl --interface tun0 ifconfig.me
# 测试 Google(应可访问)
curl -I https://www.google.com
3. 检查路由表
# Linux/macOS
ip route show table all | grep tun0 | wc -l
# 应显示 ~6000 条(国外 IP 路由)
# Windows
route print | findstr "你的_VPN网关"
注意事项
| 问题 | 解决方案 |
|---|---|
| 新网站 IP 未覆盖 | 定期更新 chnroutes(每月一次) |
| CDN 混合 IP(如 Cloudflare 有国内节点) | 可能部分资源直连,属正常现象 |
| 某些 App 强制全流量 | 在系统设置中关闭该 App 的 VPN 权限 |
| IPv6 泄漏 | 在 OpenVPN 中禁用 IPv6:pull-filter ignore "route-ipv6" |
替代方案(更简单)
如果你不想维护路由表,可用以下工具自动分流:
| 工具 | 说明 |
|---|---|
| Clash / Clash Meta | 支持规则分流(DOMAIN-SUFFIX, GEOIP),需配合 TUN 模式 |
| Surge / Quantumult X(iOS) | 商业软件,内置 GEOIP 规则 |
| V2Ray / Xray + routing | 支持 geoip.dat 智能路由 |
| WireGuard + gfwlist2dnsmasq | 轻量级方案 |
但如果你坚持用 OpenVPN,
chnroutes是最稳定的选择。
总结:OpenVPN 智能分流配置要点
- 禁用
redirect-gateway - 用
chnroutes生成国外 IP 路由 - 将路由追加到
.ovpn文件 - 配置安全 DNS(防污染)
- 定期更新 IP 列表
这样,你就能实现:
- 百度、淘宝、B站 → 高速直连
- Google、GitHub、Netflix → 走 VPN