Для простоты предположим, что в сети есть два компьютера за шлюзом и межсетевым экраном, компьютер A и компьютер B.

Компьютер A работает под управлением openvpn в качестве клиента. Его трафик направляется на сервер openvpn в удаленном месте. Соответственно, компьютер A имеет два IP-адреса: 192.168.1.1 (eth0) и 10.20.10.20 (нажмите). Файл конфигурации openvpn компьютера A отображается внизу. Компьютер A работает под управлением Windows 7.

Компьютер B не запускает открытую vpn. У него просто IP 192.168.1.2 (eth0). Компьютер B работает под управлением Linux. Это доступно для внешнего мира.

Как перенаправить один порт с компьютера A на компьютер B? (Используя шпаклевку или иное). На компьютере A работает порт A, порт XYZ, который должен быть доступен для внешнего мира. Доступ к нему на конечной точке openvpn-сервера невозможен. Таким образом, можно переадресовать один порт от А до Б поверх шпатлевки? Затем пользователи могут получить доступ к компьютеру B из внешнего мира, чье подключение к порту XYZ будет затем направлено на компьютер A. Таким образом, хотя компьютер A все еще подключен к туннелю openvpn, его можно получить с компьютера B в локальной сети.

Пожалуйста, дайте мне знать, если у вас есть решение, спасибо.

client
dev tun
proto tcp
remote XX.XX.XXX.XXX 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
tls-client
remote-cert-tls server
auth-user-pass
comp-lzo
verb 1
reneg-sec 0

2 ответа2

1

Латс предполагает, что компьютер B работает под управлением Linux (дистрибутив не работает). Латс предполагает, что компьютер B имеет 2 интерфейса. eth0 с IP-адресом 192.168.1.2 и интернет-интерфейсом (как вы упоминаете, он доступен из интернета). Лэтс предполагает, что нам нужно перенаправить порт XY из Интернета на порт XY компьютера.

На компьютере B нам нужно будет активировать пересылку ipv4 (из предыдущего комментария)

 sysctl net.ipv4.ip_forward=1

Теперь нам нужно перенаправить весь трафик, поступающий на интернет-интерфейс (eth1), на порт XY на компьютер. Интерфейс eth0, порт XY

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport XY  -j DNAT --to COMPA_ETH0_IP:XY

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

iptables -t nat -A POSTROUTING -j MASQUERADE

после этой команды весь видимый трафик через порт XY на компьютере A будет виден как с IP-адреса компьютера B.

0

Вот решение

sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport port -j DNAT --to-destination ip:port
iptables -t nat -A POSTROUTING -j MASQUERADE

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