Czy przekierowywać żądania na mój zewnętrzny adres IP / port na inny zewnętrzny adres IP / port?

14

Czy można przekierowywać połączenia do określonego adresu IP / portu na zewnętrzny adres IP / port?

Przykład:

  • Serwer A ma zewnętrzny adres IP xxx.xxx.xxx.xxx
  • Serwer B ma zewnętrzny adres IP rrr.rrr.rrr.rrr
  • Użytkownik wysyła żądanie do serwera A na porcie 2106, chcę go przekierować na serwer B na porcie 2106.
Prix
źródło
2
Czy mógłbyś opracować? Czy maszyna „A” jest bramą wieloadresową? Jeśli tak, prawdopodobnie można by użyć iptables. Przykład: iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 2106 -j DNAT --to rrrr: 2106 iptables -A WEJŚCIE -p stan tcp -m - stan NOWOŚĆ --port 2106 -i eth1 - j AKCEPTUJĘ
głupkowaty głupiec
@bumbling głupie dzięki, już to rozwiązałem i opublikowałem poniżej tego, co zrobiłem.
Prix

Odpowiedzi:

22

Problem rozwiązany:

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

Gdzie ip i port to serwer docelowy, do którego chcę przekierować bieżący port serwera.

Prix
źródło
To mi nie działa. W szczególności ta ostatnia linia powoduje, że cały ruch z mojej maszyny wydaje się pochodzić z zewnątrz i podobne problemy.
singpolyma
@Prix nie przekierowałby całego ruchu do określonego portu (2106) do rrrrrrrrrrrr: port? Co jeśli chciałbym przekierować ruch, który trafia tylko do xxx.xxx.xxx.xxx:port?
Jezor