我正在尝试从 Ubuntu 服务器(版本 16.04)连接到 VPN,但是当服务器建立连接时,我失去了与服务器的连接,并且服务器似乎也没有连接。由于我无法在服务器连接到 VPN 时进行测试,因此我准备了一个脚本:
#!/bin/bash
sudo openvpn --client --config /etc/openvpn/England.ovpn --auth-user-pass authVpn.txt &
sleep 10
route > route.txt
curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address://' -e 's/<.*$//' > ip.txt
ping www.google.es -c 4 > ping.txt
# Kill processes to can connect again
ps axf | grep "openvpn" | grep -v grep | awk '{print "kill -9 " $1}' | sh
当我重新连接时,ip.txt和ping.txt 为空. 内容路线.txt是:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.127.0.97 128.0.0.0 UG 0 0 0 tun0
default 164.132.192.1 0.0.0.0 UG 0 0 0 ens3
10.127.0.1 10.127.0.97 255.255.255.255 UGH 0 0 0 tun0
10.127.0.97 * 255.255.255.255 UH 0 0 0 tun0
45.32.180.53 164.132.192.1 255.255.255.255 UGH 0 0 0 ens3
128.0.0.0 10.127.0.97 128.0.0.0 UG 0 0 0 tun0
164.132.192.1 * 255.255.255.255 UH 0 0 0 ens3
我已经在我的计算机上使用 Oracle VM 进行了相同的测试并且运行良好。
答案1
我解决了以下问题:
1 - 连接 VPN 后服务器无法访问互联网。解决方案:将 Google DNS 添加到 /etc/resolv.conf(名称服务器 8.8.8.8 和名称服务器 8.8.4.4)
2 - 连接 VPN 后我无法访问服务器。解决方案:将VPN流量重定向到真实IP:
ip rule add from x.x.x.x table 128
ip route add table 128 to y.y.y.y/y dev ethX
ip route add table 128 default via z.z.z.z
其中 xxxx 是您的公共 IP,yyyy/y 应为您的公共 IP 地址的子网,ethX 应为您的公共以太网接口,zzzz 应为默认网关。信息来自这里和这里