Маршрутизируйте только определенный IP-адрес через VPN

Маршрутизируйте только определенный IP-адрес через VPN

Я работаю на компьютере с Ubuntu 18.04 и хочу направить через VPN-туннель только один IP-адрес в свою рабочую сеть, а именно к сетевому файловому ресурсу.

Мне дали файл конфигурации клиента .ovpn со всей аутентификацией внутри, и я смог настроить его и получить доступ к файловому серверу. Чтобы сделать это, я пошел по пути GUI: [Системные настройки Ubuntu > Сеть > VPN > Импорт из файла...]. Однако после активации VPN я больше не могу получить доступ к Интернету: попытка открыть google.com приводит к тайм-ауту.

Я добавил следующее в конец моего файла .ovpn:

route-nopull
route <file server ip> 255.255.255.255

Но когда я снова пытаюсь использовать [Импорт из файла...], GUI останавливает меня и говорит, что мне нужно ввести адрес шлюза для этого конкретного маршрута, прежде чем я смогу сохранить эту конфигурацию VPN. Директива 255.255.255.255из routeвыше заполняется как сетевая маска.

Я понятия не имею, какой шлюзовой ip мне там ввести. Я пробовал:

  • 192.168.0.1
  • 192.168.1.1
  • 192.168.42 1 .1

1 На самом деле не 42, а какое-то конкретное число, извлеченное из ipconfigвыходных данных на машине с Windows внутри сети.

Как мне найти правильный IP шлюза? Я все делаю неправильно?

решение1

Я бы рекомендовал следующие варианты:

route-noexec
up misc/up.sh

Где misc/up.shотносится к скрипту относительно файла конфигурации. (Моя конфигурация находится в /etc/openvpn/foo.conf, а скрипт в /etc/openvpn/misc/up.sh) Этот скрипт будет содержать следующее:

#!/bin/sh
#

ip route add <file_server_ip> via $4
#ip route add <file_server_ip> dev $1

Это позволяет VPN-серверу настроить IP-адрес вашей конечной точки, но маршрутизация будет осуществляться скриптом. Если вышеприведенное не работает, попробуйте использовать только вторую строку.

решение2

Маршрутный шлюз практически произволен, по крайней мере, для настройки tun, поскольку он не нужен/фактически бесполезен (фактический шлюз, если он не является сервером, определяется вместо этого iroute).

Я предполагаю, что либо вы фильтруете route-gatewayопцию в конфигурации клиента, либо конфигурация сервера просто не поддерживает ее (не использует директиву server).

Адрес «должен быть» VPN IP сервера, но это не должно иметь значения, даже если вы просто используете любой IP (хотя я не уверен, что «умный» графический интерфейс будет проверять его по чему-либо; он не должен этого делать, если только вы не делаете настройку «один к одному» с помощью ifconfig).

PS Другими словами, если соединение не работает после того, как вы ввели в поле случайный IP-адрес, это может быть не причиной вашей проблемы.

Связанный контент