Я пытаюсь соединиться с VPN с сервера Ubuntu (версия 16.04), но когда сервер устанавливает соединение, я потерял соединение с сервером, и сервер кажется, не имеет соединения также. Поскольку я не могу сделать тесты, когда подключение сервера к 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 пусты. Содержание route.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 - Сервер не получает доступ к Интернету после соединения с 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
, Где x.x.x.x является Вашим общедоступным IP, y.y.y.y/y должен быть подсетью Вашего общедоступного IP-адреса, ethX должен быть Вашим общедоступным интерфейсом Ethernet, и z.z.z.z должен быть шлюзом по умолчанию. Информация, полученная от здесь и здесь