针对 OpenVPN 的最简单分割隧道解决方案(每个应用程序)

针对 OpenVPN 的最简单分割隧道解决方案(每个应用程序)

我使用 ExpressVPN,在 Android 上我有一个应用程序可以让我选择哪些应用程序通过 VPN 运行。其他一切都使用正常流量。我也可以在 Ubuntu 上安装 ExpressVPN,但它没有拆分隧道功能。

我设置了 OpenVPN 来使用我的 VPN,但当我打开它时,它会通过它路由我的所有流量。当我选中“仅将此连接用于此网络上的资源”时,这似乎允许我的 LAN 流量远离 VPN。

但是,我实际上只希望一两个应用程序使用 VPN:Firefox,也许还有一个 podcatcher。我无论如何都无法让任何拆分隧道教程为我工作。我安装了 Qomui,但它无法加载我的 VPN。我按照教程创建了一个名为“vpn”的新用户并以该用户的身份运行应用程序,但脚本抛出了错误,应用程序无法启动。

我运行的是 OpenWRT,如果这样更简单,我愿意在路由器上设置 VPN。但我正在努力解决这个问题,所以如果有人有好的 GUI、教程、脚本或其他解决方案,请告诉我。

谢谢。

答案1

如果我理解正确,我的目标是相同的:为我的 Ubuntu openvpn 客户端拆分隧道。从我目前所读到的内容来看,Ubuntu-Gnome 中的网络管理器 (GUI) 不支持此类路由设置。它将路由创建的网络接口 (tun0) 上的所有内容。这是该软件的限制。我确实按照以下方式成功做到了这一点,我的 VPN 提供商提供了说明:

  1. 从我的 openvpn 提供商处获取了 .conf 文件(而不是 .ovpn 文件)。
  2. 编辑文件并添加一些路由命令(由 openvpn 提供商提供),例如“route-nopull ; route 10.0.0.0 255.0.0.0 ; route WXYZ 255.255.255.255”
  3. 运行以下命令:sudo openvpn --config my-openvpn.conf(您也可以在启动时自动将文件移动到 /etc/openvpn 目录,但尚未测试)。

这样做后,不会有任何内容被路由到创建的 tun0 接口,所有流量仍将流向默认的 enp3s0。然后我转到要使用 vpn 的应用程序,并添加我的 VPN 提供商提供的 SOCKS5 代理设置。然后该应用程序使用 tun0 网络接口。

我希望这会有所帮助。

相关内容