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

Как маршрутизировать или использовать iptables для перенаправления одного порта сервера клиенту в другой подсети

Настройка (все это Linux):

client IP address: 192.168.2.15 (interface eth1)
box IP address: 192.168.2.2 (interface eth1)
box IP address: 192.168.101.11 (interface eth0)
server IP address: 192.168.101.12 (interface eth0)

Клиенту необходимо получить доступ к серверу через порт 2300, но он находится в другой подсети. Как настроить iptables так, чтобы клиент принимал box в качестве сервера в своей подсети? Другими словами, как мне маршрутизировать трафик между клиентом и сервером, чтобы:

Исходящий:

192.168.2.15 -> 192.168.2.2 ==> 192.168.101.11 -> 192.168.101.12 (all port 2300)

Возвращение:

192.168.101.12 -> 192.168.101.11 ==> 192.168.2.2 -> 192.168.2.15 (all port 2300)

Я занимаюсь этим некоторое время, и кажется, что это должно быть просто, но я (пока) не владею iptables.

Спасибо!

Кажется, это работает, хотя, вероятно, это не идеальное решение. Используя netcat:

mkfifo proxypipe
while true; do nc -l 9010 0<proxypipe | nc 192.168.101.12 9000 1> proxypipe; done 

Обратите внимание, что я использую 9010 в качестве порта сервера на стороне клиента. Тем не менее, это полностью дублирует сервер локально.