Перенаправить запросы на мой внешний IP / порт на другой внешний IP / порт?

14

Можно ли перенаправить соединения с определенного IP / порта на внешний IP / порт?

Пример:

  • Сервер A имеет внешний IP-адрес xxx.xxx.xxx.xxx
  • Сервер B имеет внешний IP гггггггггггггг
  • Пользователь отправляет запрос на сервер A на порт 2106, я хочу перенаправить его на сервер B на порт 2106.
Prix
источник
2
Не могли бы вы уточнить? Является ли машина "A" многосетевым шлюзом? Если да, вероятно, можно использовать iptables. Пример: iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 2106 -j DNAT --to yyyy: 2106 iptables -A INPUT -p tcp -m состояние --state NEW --dport 2106 -i eth1 - J ПРИНЯТЬ
неуклюжий дурак
@ неуклюжий дурак спасибо, я уже решил это и опубликовал ниже, что я сделал.
Prix

Ответы:

22

Проблема решена:

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

Где ip и порт - целевой сервер, на который я хочу перенаправить текущий порт сервера.

Prix
источник
Это не работает для меня. В частности, эта последняя строка приводит к тому, что весь трафик с моей машины на себя кажется поступающим извне, и подобные проблемы.
сингполима
@Prix не будет перенаправлять весь трафик на указанный порт (2106) на yyy.yyy.yyy.yyy: port? Что если я бы хотел перенаправить трафик, который идет только на xxx.xxx.xxx.xxx:port?
Jezor