连接到私人 VPN 后,我的互联网立即断开连接。我使用的是 Ubuntu 18.04 LTS。有人能帮我解决这个问题吗?我应该提供哪些信息来帮助调查问题?
更多信息:
连接到 VPN 之前的 Internet 连接
命令输出ip -r
default via 192.199.0.2 dev enp7s0 proto dhcp metric 100
169.254.0.0/16 dev virbr0 scope link metric 1000 linkdown
188.18.0.0/16 dev docker0 proto kernel scope link src 188.18.0.1
192.199.0.0/24 dev enp7s0 proto kernel scope link src 192.199.0.18 metric 100
192.199.123.0/24 dev virbr0 proto kernel scope link src 192.199.123.1 linkdown
命令输出route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.199.0.2 0.0.0.0 UG 100 0 0 enp7s0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 virbr0
188.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.199.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp7s0
192.199.123.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
连接 VPN 后
命令输出ip -r
default via 175.19.2.1 dev tun1 proto static metric 50
default via 192.199.0.2 dev enp7s0 proto dhcp metric 100
10.1.1.0/24 via 175.19.2.1 dev tun1 proto static metric 50
10.100.0.0/16 via 175.19.2.1 dev tun1 proto static metric 50
10.130.0.0/17 via 175.19.2.1 dev tun1 proto static metric 50
169.254.0.0/16 dev virbr0 scope link metric 1000 linkdown
175.19.2.0/24 dev tun1 proto kernel scope link src 175.19.2.15 metric 50
188.18.0.0/16 dev docker0 proto kernel scope link src 188.18.0.1
192.199.0.0/24 dev enp7s0 proto kernel scope link src 192.199.0.18 metric 100
192.199.0.2 dev enp7s0 proto static scope link metric 100
192.199.123.0/24 dev virbr0 proto kernel scope link src 192.199.123.1 linkdown
192.199.200.0/24 via 175.19.2.1 dev tun1 proto static metric 50
xxx.xxx.xxx.xxx via 192.199.0.2 dev enp7s0 proto static metric 100
命令输出route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 175.19.2.1 0.0.0.0 UG 50 0 0 tun1
0.0.0.0 192.199.0.2 0.0.0.0 UG 100 0 0 enp7s0
10.1.1.0 175.19.2.1 255.255.255.0 UG 50 0 0 tun1
10.100.0.0 175.19.2.1 255.255.0.0 UG 50 0 0 tun1
10.130.0.0 175.19.2.1 255.255.128.0 UG 50 0 0 tun1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 virbr0
175.19.2.0 0.0.0.0 255.255.255.0 U 50 0 0 tun1
188.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.199.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp7s0
192.199.0.2 0.0.0.0 255.255.255.255 UH 100 0 0 enp7s0
192.199.123.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.199.200.0 175.19.2.1 255.255.255.0 UG 50 0 0 tun1
XXX.XXX.XXX.XXX 192.199.0.2 255.255.255.255 UGH 100 0 0 enp7s0
以下是 VPN 配置,图片如下。遗憾的是,我无法显示所有信息
此后,第一个连接的互联网不再起作用。
我对路由有疑虑,但又不太确定。请帮我解决一下。
答案1
感谢您编辑您的帖子以澄清事实。
如果我理解正确的话,您要做的是通过使用 VPN 连接到某些特定网络(172.16.2.0、192.168.200.0 和 10.xxx 网络),同时使用您的正常连接连接到 Internet 和其他地方。
但相反,你观察到的是以下行为:
- 您可以连接到远程网络中的计算机
- 您无法访问互联网,或者如果您访问互联网,则需要通过 VPN,这会导致速度变慢或出现其他问题
如果是这种情况,请运行适当的命令以删除此行:
0.0.0.0 172.16.2.1 0.0.0.0 UG 50 0 0 tun1
它告诉您的系统所有流量都应通过 VPN 路由。这称为“默认网关”,但谁知道 VPN GUI 如何调用它。
手动执行此操作的正确命令是:
sudo ip route del 0.0.0.0/0 via 172.16.2.1 dev tun1
不过,这是一种解决方法,因为您的 VPN 客户端每次重新连接时都会不断更新您的路由(甚至更频繁,具体取决于 VPN 版本和内部设置)。我从不使用 GUI 配置 VPN,我是一个总是使用配置文件的命令行人,但有一个设置可以避免这种情况(可能在 Misc 部分?)。您需要谷歌搜索如何防止您的特定 VPN 将 VPN 服务器设置为默认网关(这就是这一切的关键概念)
答案2
我想要的是通过 VPN 连接到某些特定服务,但通过我的正常连接访问其他任何服务。
事实证明,GUI 网络设置根本不起作用,因此通过此命令连接 VPN 后解决了我的问题:
sudo openvpn --config vpn-config-file.ovpn