2

У меня есть сервер OpenVPN, работающий в локальной сети (локально адресуемый по адресу 192.168.1.12), и я хотел бы перенаправлять запросы на него с других устройств в локальной сети, через порт 3000, одному из клиентов VPN. (10.8.0.6)

Мой конечный результат заключается в том, что устройства 192.168.xx могут подключаться к веб-серверу, набрав в браузере 192.168.1.12:3000, но на самом деле обмениваться данными с 10.8.0.6:3000.

Переадресация ip включена на сервере vpn.

(эти измененные попытки из других вопросов, похоже, не работают)

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 3000 -j DNAT --to-destination 10.8.0.6:3000
iptables -A FORWARD -p tcp -d 10.8.0.6 --dport 3000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

3 ответа3

0

Нечто подобное можно достичь, добавив "статический маршрут" к вашим компьютерам в локальной сети, который сообщает им, где они могут найти VPN-клиентов.

Клиенты локальной сети


Например, вы можете добавить маршрут к машине Linux в вашей локальной сети следующим образом:

(sudo) ip route add 10.8.0.0/24 via 192.168.1.12

В Windows то же самое может быть достигнуто так:

route add 10.8.0.0 mask 255.255.255.0 192.168.1.12

(Если вы используете Windows, рассмотрите возможность использования опции -p с route чтобы сделать маршрут постоянным.

OpenVPN сервер


Очевидно, что ваши VPN-клиенты также должны знать о вашей локальной сети, чего можно добиться, добавив это в ваш OpenVPN server.conf:

push "route 192.168.1.0 255.255.255.0"

(Предполагая, что маска вашей локальной сети равна /24)

Теперь, если вы сделали все вышеперечисленное, вы можете просто получить доступ к указанному веб-серверу следующим образом: http://10.8.0.6:3000

0

Оказывается ... с моим начальным правилом iptables все было в порядке. Хотя нужен был только первый!

0

Вы можете сделать то же самое без каких-либо правил iptables, связанных с использованием туннелирования SSH. Выполните следующую команду на вашем сервере OpenVPN:

$ ssh -L 3000:10.8.0.6:3000 root@localhost &

После этого, если вы откроете http://192.168.1.12:3000 и он будет перенаправлен на 10.8.0.6:3000

Фактическое соединение SSH будет работать в фоновом режиме, и вам нужно будет снова запустить команду после перезагрузки сервера или периодического сброса соединения.

Посмотрите здесь другие примеры туннелирования SSH, это может быть чрезвычайно полезно в подобных случаях.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .