У меня есть сервер Ubuntu 16.04, на котором работает OpenVPN (через UPD).
Это отлично работает, за исключением того, что после подключения к VPN меня выкидывают из SSH-соединения, а DNS / http-соединения больше не разрешаются.
Это как и ожидалось, но как мне по-прежнему поддерживать работу этих соединений, когда исходящие запросы сервера проходят через VPN?
У вас проблема с маршрутизацией при включении OpenVPN. Предположим, вы подключены к Интернету через маршрутизатор с локальным IP-адресом 192.168.0.1 (IP-адрес маршрутизатора в локальной сети), а IP-адрес вашего SSH-сервера (к которому вы подключаетесь) - 999.999.999.999. Затем добавьте маршрут:
ip route add 999.999.999.999/32 via 192.168.0.1
Если у вас ничего не получилось, просто удалите правило:
ip route del 999.999.999.999/32 via 192.168.0.1
и попробуйте это:
ip rule add from 192.168.0.12 table 128
ip route add table 128 to 192.168.0.0/24 dev eth0
ip route add table 128 default via 192.168.0.1
Где 192.168.0.12 - ваш локальный IP-адрес, 192.168.0.0/24 - подсеть вашего локального IP, 192.168.0.1 - IP вашего маршрутизатора в локальной сети, eth0 - имя вашего сетевого интерфейса.
Если впоследствии проблема не исчезла, удалите правила, заменив add
с участием del
и просто расскажите в комментариях больше о ваших сетевых подключениях и конфигурации - насколько это возможно.
P.S. Указанные выше правила / маршруты являются временными - до следующей перезагрузки. Чтобы сделать его постоянным, просто добавьте в свой /etc/network/interfaces
соответствующие строки с ведущими up
, например:
up ip route add 999.999.999.999/32 via 192.168.0.1
Прочитайте это: http://www.networkinghowtos.com/howto/adding-persistent-static-routes-on-ubuntu/