Как направить весь трафик (даже на сам openvpn-сервер) через сам VPN

Как направить весь трафик (даже на сам openvpn-сервер) через сам VPN

Итак, у меня есть сервер с публичным IP-адресом 101.102.103.104 (например). На этом сервере запущен сервер OpenVPN, а также куча других вещей, которые прослушивают порты сетевых устройств с публичным IP-адресом.

Я хочу после подключения к 101.102.103.104 направлять весь будущий трафик на этот IP через VPN.

Например, если у меня curl101.102.103.104:8080, то он будет подключен через VPN-соединение.

Я попробовал добавить push routeв свой server.conf вот так:

push "route 101.102.103.104 255.255.255.255"

и я даже попробовал добавить маршрут исключения:

push "route 101.102.103.104 255.255.255.255 net_gateway"

но это, похоже, не сработало. Запуск sudo route -nпо-прежнему показывал маршрут, проходящий через мой домашний маршрутизатор:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
10.8.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
101.102.103.104  192.168.1.1     255.255.255.255 UGH   0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

Есть мысли, как это сделать? Я подумал, что проблема, скорее всего, в том, что я пытаюсь направить трафик на сам VPN-сервер, через VPN-сервер, и таким образом формирую своего рода бесконечный цикл, но это всего лишь предположение.

решение1

Таблица маршрутизации, которую вы показали, явно не направляет весь трафик через VPN, как показано в самой первой строке. В своей текущей конфигурации она только позволяет клиенту иметь доступ к LAN.

Команда для маршрутизации всего клиентского трафика через OpenVPN, включая весь трафик к третьим лицам (то есть, а не локальная сеть VPN-сервера)

  push "redirect-gateway def1"

который необходимо добавить в файл конфигурации сервера (чтобы изменения вступили в силу, вам потребуется перезапустить программу OpenVPN).

Кроме того, поскольку вы настроили маршрутизируемый OpenVPN, а не мостовой, вам потребуется активировать NAT на сервере:

  iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Это предполагает, что интерфейс сервера OpenVPN в Интернете (то естьтот, у которого IP-адрес 101.102.103.104) называетсяeth0. Пожалуйста, отрегулируйте соответствующим образом.

Чтобы проверить конфигурацию, после установки соединения с сервером OpenVPN выполните следующую команду:

 wget 216.146.39.70:80 -O - -o /dev/null

Это выведет ваш очевидный IP-адрес. Если вывод содержит 101.102.103.104, то все готово.

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