OpenVPN 和 Clash TUN Mode 共存方案详解
OpenVPN 和 Clash TUN Mode 共存方案详解
在边缘的临时办公场景中,经常需要同时使用 OpenVPN 和 Clash TUN Mode 来实现科学上网和访问公司内网的需求。然而,这两者同时使用时可能会出现冲突,导致网络连接问题。本文将详细介绍如何在 Linux 系统下实现 OpenVPN 和 Clash TUN Mode 的共存,并提供解决方案。
问题背景
Clash Verge Rev 主要用于科学上网,而 OpenVPN 主要用于访问公司内网。当两者同时开启时,可能会出现所有国内流量都通过 OpenVPN 的现象,导致公司内网访问速度变慢。这是因为 OpenVPN 和 Clash TUN Mode 都试图接管系统的网络流量,从而产生冲突。
解决方案
步骤一:验证网络连接
- 关闭 OpenVPN 和 Clash,测试是否正常上网。
- 开启 OpenVPN,加载原有配置文件,测试是否正常上网,并验证公网 IP 是否为公司网络。
- 关闭 OpenVPN,修改配置文件,加上以下两条,重新打开 OpenVPN,验证公网 IP 是否是家里的网络。
步骤二:找到目标虚拟网卡
执行 ifconfig|grep -i utun,记住现有的虚拟网卡名称。开启 OpenVPN 后,系统会创建新的虚拟网卡,例如 utun4。
步骤三:获取路由表信息
执行 netstat -rn|grep -i utun4 获取 utun4 的路由表信息,这将帮助你了解 OpenVPN 的网络配置。
步骤四:推理出 OpenVPN 的配置
根据 netstat 命令输出的 CIDR 表示法,将其转换成传统的网络地址+子网掩码的写法。例如,将 10.10.128/17 转换为 10.10.128.0 255.255.128.0。
步骤五:配置 OpenVPN
在 OpenVPN 配置文件中添加以下路由信息,并设置 route-nopull 阻止推送所有路由。
route-nopull
route 10.10.128.0 255.255.128.0 vpn_gateway
route 10.120.0.0 255.255.0.0 vpn_gateway
route 10.20.0.0 255.255.0.0 vpn_gateway
route 10.10.128.248 255.255.255.252 vpn_gateway
route 10.10.128.249 255.255.255.255 vpn_gateway步骤六:配置 Clash
在 Clash Verge Rev 中,开启 DNS Overwrite 并设置 Fake IP Filter,将目标域名脱敏处理。这样,Clash 可以正确地管理流量,避免嵌套代理的问题。
- DOMAIN-KEY,example.com,[email protected]其他注意事项
- 在规则设置中,尝试使用
PROCESS-NAME和PROCESS-PATH-REGEX来指定需要走 OpenVPN 代理的域名和进程,但可能没有效果。 - 不同的 OpenVPN 客户端(如 Tunnelblick、Pritunl、Viscosity)表现不同,需要根据实际情况选择合适的客户端。
总结
通过以上步骤,可以在 Linux 系统下实现 OpenVPN 和 Clash TUN Mode 的共存,从而满足科学上网和访问公司内网的需求。希望本文提供的解决方案能够帮助到有类似需求的用户。
评论已关闭