Назад | Перейти на главную страницу

Отправка трафика через две LAN, через порт 80 и обратное SSH-туннелирование. Как настроить сервер

Я хочу отправить трафик на хост B через порт 3000, у меня есть доступ ко всем узлам на этом чертеже, единственный открытый порт между этими двумя lans - это порт 80 от Linux Box B до Linux Box A.

так что я делаю "ssh -R 1206:192.168.1.10:22 disp@10.10.10.10 -p 80", и ssh назад через туннель с помощью"ssh -L 3000:10.10.10.10:3000 disp@localhost -1206"

Если я исправлю это, теперь слушает порт 3000 на Linux Box A и отправляет его в Linux Box B через туннель на порт 3000? моя логика верна?

как я могу теперь направить этот трафик на порт 3000 на хосте B.

и если мне нужно двустороннее соединение «От B к A», как это можно сделать?

ИМО, ваша маршрутизация / диапазоны IP-адресов выглядят странно, но я думаю, что это не часть проблемы.

Я немного работаю над предположениями, но надеюсь, что это все же поможет.

linux_box_b$ ssh -g -R *:3000:192.168.1.11:3000 disp@10.10.10.10 -p 80

теперь, если вы отправляете что-то с host_a на linux_box_a: 3000, оно фактически отправляется на host_b: 3000. Для этого sshd в Linux Box A должен разрешить GatewayPorts и AllowTcpForwarding.

для использования в другом направлении

linux_box_b$ ssh -g -L *:3000:192.168.1.11:3000 disp@10.10.10.10 -p 80

теперь Linux Box B прослушивает порт 3000 и туннелирует их на порт 3000 хоста A.

Однако с этим решением всегда последняя часть соединения (между хостом A и Linux Box A, а с другой стороны - хостом B и Linux Box B) не шифруется.

для сквозного зашифрованного туннеля вы можете использовать:

linux_box_b$ ssh -g -R *:10022:192.168.1.11:22 disp@10.10.10.10 -p 80
linux_box_b$ ssh -g -L *:10022:192.168.1.11:22 disp@10.10.10.10 -p 80

host_a$ ssh -L 33000:localhost:3000 -p 10022 10.10.10.10

host_b$ ssh -L 33000:localhost:3000 -p 10022 192.168.1.10

теперь каждый хост (a и b) должен будет использовать localhost: 33000 в качестве места назначения для отправки.