LINUX.ORG.RU
ФорумAdmin

VNC доступ к компьютерам за роутером под OpenVPN

 , ,


0

1

Здравствуйте. Не являюсь специалистом в этом вопросе. Многое не понимаю и из-за этого не могу даже в гугл адекватно задать вопрос о том, что и как мне нужно. Возникла следующая потребность. 4g модем не дает внешний IP, мне нужен доступ через VNC к компьютерам, подключенным к роутеру. На роутере я сделал перенаправления с его локального IP адреса через разные порты на локальные IP адреса компьютеров с 5900 портом. Сейчас мне необходимо иметь возможность обращаться к этим портам роутера из сети. Для этого оплатил VPS и на нем установил OpenVPN. Получается что есть внешний IP - 217.**.***.***, есть локальные server 10.1.0.0 255.255.255.0 и роутер получает 10.1.0.2. Как нужно правильно сделать переброс, чтоб вбивая 217.**.***.***:4005 попадал на 10.1.0.2:4005?

Так понимаю, что делается это через iptables? В Forwarding стоит 1. Думал, что таким образом получится, но видимо я совсем не понимаю базовых вещей и написал глупость.

iptables -t nat -A PREROUTING --dst 217.**.***.*** -p tcp --dport 4005 -j DNAT --to-destination 10.1.0.2

iptables -t nat -A POSTROUTING --dst 217.**.***.*** -p tcp --dport 4005 -j SNAT --to-source 10.1.0.2

Может ли кто-нибудь помочь?

Сейчас вот так попробовал. Думал может быть порты не прописал. Но тоже не получается.

iptables -t nat -A PREROUTING -p tcp -d 217.**.***.*** --dport 4005 -j DNAT --to-destination 10.1.0.2:4005

iptables -t nat -A POSTROUTING -p tcp --dst 10.1.0.2 --dport 4005 -j SNAT --to-source 217.**.***.***:4005

Так тоже не получается

iptables -t nat -A PREROUTING -p tcp -d 10.1.0.1 --dport 4005 -j DNAT --to-destination 10.1.0.2:4005

iptables -t nat -A POSTROUTING -p tcp --dst 10.1.0.2 --dport 4005 -j SNAT --to-source 10.1.0.1:4005



Последнее исправление: AhalaiMahalai (всего исправлений: 3)

Роутер и VPS не в одной сети, насколько я понимаю? Если так, то нет разницы, пробуете вы зайти напрямую или пробуете вы зайти через VPS. VPS тоже должен как бы сначала зайти, те он должен видеть либо локальные айпи , либо айпи свистка.

Свисток должен получать внешний айпи адрес.

constin ★★★★
()
Ответ на: комментарий от constin

В роутер вставлен свисток, он получается с него интернет и является клиентом OpenVPN, VPS является сервером OpenVPN. Интернет на роутере идет через VPN, тот ему выдал локальный IP 10.1.0.2, внутри сети роутера можно через этот IP и его порты подключаться на машины. Правильно я понимаю, что VPS через VPN не может перекинуть обращение? Они же формально в одной сети, но только виртуальной.

AhalaiMahalai
() автор топика

Я правильно понимаю, что:

  • роутер умеет выступать в роли клиента OpenVPN?
  • роутер прописан в качестве шлюза по-умолчанию для всех машин в локалке?

Если так, то NAT здесь не требуется вообще (кроме стандартного SNAT из локалки в интернет, само собой).

Ключевой момент: на компьютере, которым Вы пытаетесь подключиться, должен быть маршрут в локальную сеть. Достигается это директивой push "route 10.1.0.0 255.255.255.0" в конфиге сервера (либо вручную на клиенте).

То есть, с т.з. клиента (который пытается установить соединение по VNC), картина будет такая:

[client]->[client subnet]->[client gw]->[internet]->
[openvpn server]->[openvpn interface for client]->
[openvpn subnet]->[server subnet]->[server]

С т.з. сервера (который принимает соединение по VNC):
[server]->[server subnet]->[server gw]

Прошу прощения, отравил недописанным; правил.

Harliff ★★★★★
()
Последнее исправление: Harliff (всего исправлений: 5)
Ответ на: комментарий от AhalaiMahalai

Тогда может, проверьте пингует ли VPS локальный айпишники.


echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth0 -p tcp -d  217.**.***.*** --dport 4005 -j DNAT --to-destination 10.1.0.2:4005

где eth0 - имя внешнего интерфейса VPS

constin ★★★★
()

локальные server 10.1.0.0 255.255.255.0

10.1.0.1, наверное?

Harliff ★★★★★
()
Ответ на: комментарий от Harliff

[client]->[client subnet]->[client gw]->[internet]->[openvpn server]->[openvpn interface for client]-> [openvpn subnet]->[server subnet]->[server]

Это концептуально, не буквально. Буквально там будет два интерфейса, физический (eth/wlan) и tun для OpenVPN.

Harliff ★★★★★
()
Последнее исправление: Harliff (всего исправлений: 1)
Ответ на: комментарий от constin

Тогда может, проверьте пингует ли VPS локальный айпишники

Хорошо, спасибо, буду разбираться.

10.1.0.1, наверное?

Да, вы правы.

роутер умеет выступать в роли клиента OpenVPN?

роутер прописан в качестве шлюза по-умолчанию для всех машин в локалке? Все именно так.

То есть, с т.з. клиента (который пытается установить соединение по VNC), картина будет такая

Спасибо большое за ответ, теперь буду пробовать.

AhalaiMahalai
() автор топика
Ответ на: комментарий от constin

Сюда еще SNAT добавить надо

iptables -t nat -A POSTROUTING -p tcp -d 10.1.0.2 --dport 4005 -j MASQUERADE
иначе ответ 10.1.0.2 другим маршрутом пойдет и с другого ip, через инет от роутера.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.