如何在客户端的 .ovpn 配置文件中禁用通过 VPN 路由所有流量(包括网络流量)?

dKa*_*Kab 6 networking vpn openvpn ubuntu ubuntu-14.04

为了连接到公司网络,我有这四个文件

  • ca.crt
  • 客户端.ovpn
  • 客户端密钥
  • 客户端.crt

我无法通过 Ubuntu GUI 创建 VPN 连接,但我设法让它从命令行运行cd到包含这些文件和sudo openvpn --config client.ovpn. 它将我连接到网络,但我无法访问网络外的任何其他主机。经过大量的谷歌搜索后,似乎是因为启用了通过 VPN 路由我的所有流量(包括网络流量)。在论坛上,人们建议选中Use this connection only for resources on its networkVPN 编辑窗口中的复选框。但是由于我无法通过 GUI 创建连接 - 我在连接列表中没有它,因此我无论如何都无法通过 GUI 对其进行编辑。但也许我可以在我的 client.ovpn 配置文件中添加一些东西来解决这个问题?

fsw*_*ngs 8

答案 1

在 OpenVPN 客户端文件中client.ovpn找到并注释掉这一行(如果存在):

redirect-gateway
# This is a comment so change line above to this
# redirect-gateway
Run Code Online (Sandbox Code Playgroud)

如果管理员或服务器未将其放入客户端文件或“推送”重定向网关,您可以按照以下说明手动覆盖它:IgnoreRedirectGateway

为了帮助确定如何最好地进行,请执行以下操作。首先将所有内容重置为 vpn 之前的状态(例如重启)。然后检查您是否可以访问本地网络。然后运行:

sudo ip route
Run Code Online (Sandbox Code Playgroud)

这将显示当前的默认网关 - 记下这一点,我们称之为original。然后正常运行 vpn 客户端sudo openvpn config.opvn。建立连接后,运行sudo ip route. 您应该会看到默认网关已更改,因此所有内容都通过 VPN 进行路由。

接下来杀死 openvpn 并sudo ip route再次运行以检查设置是否已恢复。然后使用--route-nopull选项运行客户端:

--route-nopull 用于路由和 dhcp 选项,如 DNS 服务器。在客户端上使用时,此选项有效地阻止服务器向客户端的路由表添加路由,但请注意,此选项仍允许服务器设置客户端 TUN/TAP 接口的 TCP/IP 属性。

最后检查使用sudo ip route默认网关是否与original(因为这就是命令所做的)相同。理论上,您应该具有本地网络访问权限和 vpn 接口。

方法 2 基本上接受完整的 VPN 配置,但允许您手动指定网关地址。

答案 2

你已经试过了吗?Ubuntu 手册