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

Как лучше всего перенаправить трафик с определенного порта на другой компьютер?

У меня есть такая установка:

[client01] <-A-> [server01] <-B-> [server02]

client01 может получить доступ к порту 9300 на server01 (подключение A). server01 может получить доступ только к порту 9300 на server02 (подключение B) через ssh. Как лучше всего направить весь трафик на порт 9300 к server01 пойти в порт 9300 на server02?

Я могу успешно сделать это с помощью туннеля ssh из client01 к server01 к server02, но я не хочу запускать ssh на client01. Когда я ssh из server01 к server02 порт пересылки 9300 (ssh -g -L9300:localhost:9300 server02 на server01), это не работает - я использую неправильную команду?

EDIT: добавлено, что server02 доступен только через ssh

Вы можете сделать это с помощью правила iptables DNAT - примерно так:

iptables -A PREROUTING -p tcp -d x.x.x.x --dport 9300 -j DNAT --to-destination y.y.y.y:9300

Замените IP-адрес server01 на x.x.x.x и адрес server02 для y.y.y.y и все готово.

Все это, конечно, предполагает, что вы запускаете iptables на server01. Это также предполагает, что server02 использует server01 для обратной маршрутизации трафика в Интернет. Если server02 не работает, значит, он не делает того, что вы хотите.

Отредактируйте в свете возможности подключения между машинами только по SSH:

Ваша командная строка для прямого порта SSH выглядит нормально, за исключением того, что вам нужен пробел между «L» и «9300». Вы также должны быть уверены, что компьютер server01 будет принимать входящие соединения на порт 9300. Посмотрите на свою цепочку INPUT iptables в таблице фильтров (iptables -L INPUT), чтобы убедиться, что трафик будет разрешен.

Вам также необходимо постоянно поддерживать этот туннель.