Назад | Перейти на главную страницу

OpenVPN соединяется с сервером OpenVPN, но не имеет данных… иногда

У меня есть сервер OpenVPN, работающий на сервере Ubuntu (16.04.2) в Digital Ocean. Этот сервер у меня работает довольно давно. Я могу сказать, что он работает без каких-либо проблем.

1) У меня есть клиент Ubuntu. Этот компьютер всегда подключается к серверу без каких-либо проблем либо с помощью соединителя Unity OpenVPN в верхней строке меню, либо напрямую с помощью файла .ovpn.

2) У меня есть мобильный клиент Android, который использует клиент Open VPN и всегда подключен к одному и тому же серверу.

3) У меня есть клиент Windows, которым я пользуюсь периодически. У него никогда не возникает проблем с подключением к серверу.

Проблема периодически возникает с №1 выше: клиентом Ubuntu. Как я уже сказал, он всегда подключается без проблем. Но бывают случаи, когда 0 байтов проходят в любом направлении, пока он подключен, и независимо от того, как он подключен. Когда он находится в таком «настроении», перезагрузка или повторное подключение не решают проблему. Так будет в течение дня или около того, а затем все будет нормально работать в течение нескольких недель, прежде чем снова навязать мне это маленькое число.

Все устройства подключены к одному и тому же Wi-Fi, и во время этих перебоев затрагивается только клиент Ubuntu. Когда он затронут, сетевые команды ужасно медленны (например, «маршрут»).

Когда это работает, маршрут возвращается:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.10.0.5       128.0.0.0       UG    0      0        0 tun0
default         gateway         0.0.0.0         UG    600    0        0 wlp3s0
10.10.0.1       10.10.0.5       255.255.255.255 UGH   0      0        0 tun0
10.10.0.5       0.0.0.0         255.255.255.255 UH    0      0        0 tun0
128.0.0.0       10.10.0.5       128.0.0.0       UG    0      0        0 tun0
[servers name]  gateway         255.255.255.255 UGH   0      0        0 wlp3s0
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 docker0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.0.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp3s0

Когда это не работает, маршрут возвращается (хотя и очень медленно):

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.10.0.5       0.0.0.0         UG    50     0        0 tun0
default         192.168.0.1     0.0.0.0         UG    600    0        0 wlp3s0
10.10.0.1       10.10.0.5       255.255.255.255 UGH   50     0        0 tun0
10.10.0.5       0.0.0.0         255.255.255.255 UH    50     0        0 tun0
[server’s name] 192.168.0.1     255.255.255.255 UGH   600    0        0 wlp3s0
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 docker0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.0.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp3s0

Почему такое поведение? Я не знаю и не мог найти никакой информации. Опять же: один и тот же сервер на нескольких клиентах. Клиент Android постоянно подключен, и у него никогда не возникает проблем. Клиент Windows: он работает как гость Vbox на том же клиенте Ubuntu, у которого есть проблемы. Если возникают проблемы, то я не подключаю его к VPN, но у клиента Winows Vbox на том же компьютере нет проблем с подключением и проблем с перемещением байтов туда и обратно.

Клиентский .ovpn (одинаковый для всех клиентов):

client
dev tun
mssfix 1200
proto udp
remote vpn.myserver.com 443
resolv-retry infinite
nobind
persist-key
persist-tun
pkcs12 mykey.p12
remote-cert-tls server
comp-lzo
verb 3
auth-user-pass

Опять же, аутентификация и подключение никогда не проблема. Размер MTU имеет решающее значение: автоматическое обнаружение MTU нигде не является надежным, и некоторые «кофейни» или маршрутизаторы в облаке между клиентом и сервером имеют проблемы, если размер MTU не уменьшается, потому что тогда фактический размер пакета иногда превышает максимум и вызвать проблемы. Но, как я уже сказал, проблема возникает только у клиента Ubuntu. Такая же конфигурация работает везде.

Я также пробовал использовать различные другие конфигурации (клиент и сервер): TCP вместо UDP; разные номера портов.

Спасибо за вашу помощь.