У меня Ubuntu 18.04 работает на Compute Engine на облачной платформе Google. Я настраиваю VPN на 1194 / UDP с помощью Nyr's классный сценарий (Еще пробовал на 443 / TCP). VPN подключается, но я не могу получить доступ к Интернету при подключении.
greg@vpn:~$ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 10.8.0.0/24 !10.8.0.0/24 to:104.154.-.- #removed
traceroute в VPN
greg@vpn:~$ traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
1 209.85.241.122 (209.85.241.122) 10.729 ms 216.239.63.174 (216.239.63.174) 9.965 ms 209.85.241.122 (209.85.241.122) 10.771 ms
2 108.170.243.187 (108.170.243.187) 10.086 ms 108.170.243.196 (108.170.243.196) 10.330 ms 10.285 ms
3 141.101.73.2 (141.101.73.2) 10.867 ms 10.860 ms 11.104 ms
4 one.one.one.one (1.1.1.1) 10.753 ms 9.886 ms 9.930 ms
локальная трассировка при подключении к VPN
greg ~ $traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 64 hops max, 52 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
...
Есть выпуск по репо Ныр что предполагает, что это проблема с сетевой конфигурацией. У меня вопрос, как мне решить эту проблему? И может ли это быть проблемой конфигурации брандмауэра / GCP, если у VPN-сервера есть доступ в Интернет?
/etc/openvpn/server.conf
port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
Я убедился, что iptables верны
greg@vpn:~$ iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o ens4 -j SNAT --to 104.154.x.x
Вот мой IP-маршрут
greg@vpn:~$ ip route show
default via 10.128.0.1 dev ens4 proto dhcp metric 100
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
10.128.0.1 dev ens4 proto dhcp scope link metric 100
Подсети
greg@vpn:~$ netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default _gateway 0.0.0.0 UG 0 0 0 ens4
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
_gateway 0.0.0.0 255.255.255.255 UH 0 0 0 ens4
Я также включил net.ipv4.tcp_syncookies=1
в /etc/sysctl.conf
Моя трассировка с локального компьютера при подключении к VPN
greg ~ $sudo mtr 1.1.1.1
My traceroute [vUNKNOWN]
Gregs-MacBook-Pro.local (10.8.0.2) 2019-03-14T13:57:40-0400
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 10.8.0.1 0.0% 24 35.3 36.5 34.3 48.2 3.8
2. ???
Моя трассировка прямо с VPN-сервера
greg@vpn:~$ mtr 1.1.1.1
My traceroute [v0.92]
vpn (10.128.0.28) 2019-03-14T18:11:28+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 216.239.40.188 0.0% 177 10.1 11.3 10.0 33.7 3.8
2. 108.170.243.196 0.0% 177 10.5 10.6 10.4 13.9 0.5
3. 141.101.73.2 0.0% 177 10.8 14.2 10.7 52.4 7.1
4. one.one.one.one 0.0% 176 11.1 11.1 10.9 12.6 0.2
Вы включили переадресацию IP?
Вы можете сделать это на странице сведений об экземпляре в GCP или прямо в sysctl.conf: net.ipv4.ip_forward=1
Также я использовал этот отличный руководство один раз настроить OpenVPN на Ubuntu 16, и он работал безупречно, я уверен, что это будет большим подспорьем.
Для устранения неполадок с доступом в Интернет было бы хорошо опубликовать свою таблицу маршрутизации GCP и правила брандмауэра.
Я бы предложил попробовать следующее:
1) Использование протокола TCP вместо UDP; это можно сделать, изменив 'proto udp' на 'proto tcp' в файлах конфигурации клиента и сервера.
порт 443
proto tcp
; proto udp
2) Использование устройства Tap вместо tun, изменив «dev tun» на «dev tap» в файлах конфигурации клиента и сервера. Устройство TAP - это виртуальный адаптер Ethernet, а устройство TUN - это виртуальный IP-канал точка-точка.. Вам придется использовать одно или другое нельзя смешивать.