在 Ubuntu 上设置测试 openvpn 客户端时(使用本指南),客户端会设置一条通过 vpn 隧道传输所有流量的路由。
例如,当我从 Ubuntu 连接到 vpn 时,netstat -nr
显示的内容如下:
0.0.0.0 10.8.0.9 0.0.0.0 UG 0 0 0 tun0
10.8.0.1 10.8.0.9 255.255.255.255 UGH 0 0 0 tun0
10.8.0.9 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tun0
...
我相信第一行是通过 VPN 隧道传输所有内容,对吗?当我将其与 OSX 计算机上的相同命令的输出进行比较时:
10.8.0.1/32 10.8.0.5 UGSc 1 0 tun0
10.8.0.5 10.8.0.6 UH 2 33 tun0
...
我没有该规则。我有没有办法从客户端推送命令来删除该路由?我还有什么其他选择?
答案1
我假设您正在使用 NetworkManager GUI。看来它的默认行为是覆盖默认路由,即使 OpenVPN 服务器没有推送它。
您可以通过编辑 VPN 连接来修复此行为,然后在IPv4设置选项卡选择'路线...' 按钮。您将看到一个名为 '仅将此连接用于此网络上的资源'。确保已启用该功能,然后重新启动 VPN。这样应该可以解决问题。
答案2
编辑 .ovpn 文件中的相应行。您可能需要 root 权限 (sudo) 才能执行此操作。您应该已经收到文件whateveritiscalled.ovpn以及您从 openvpn 提供商处获得的证书。使用 vi、gedit 或其他文本编辑器打开文件并搜索以下行:
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
在这些行下,您可以添加要使用的路由的 IP 和/或主机名,或者由您的 vpn 提供商推荐的路由。保存文件。