Przy przenoszeniu serwera pomiędzy różnymi lokalizacjami czasem pojawia się potrzeba aby przez pewien czas w obu miejscach, w starej i nowej sieci (na starym i nowym IP) na tych samych portach słuchały usługi. Można to osiągnąć stawiając w jednym z miejsc serwer, który będzie zajmował się wyłącznie forwardowaniem portów na właściwy serwer. Można to osiągnąć przy użyciu programu socat.
Instalujemy:
apt-get install socat
Dla każdego używanego portu TCP uruchamiamy:
# socat TCP4-LISTEN:80,fork TCP:195.64.174.90:80
a dla każdego portu UDP:
# socat UDP4-LISTEN:53,fork UDP4-SENDTO:195.64.174.90:53
Aby socat słuchał tylko na jednym IP, a nie bindował się do wszystkich, należy dodać opcję bind= np.
# socat TCP4-LISTEN:80,bind=195.64.174.11,fork TCP:195.64.174.90:80
Dla TCP to samo można osiągnąć przy użyciu programu redir poprzez:
# redir --lport=80 --cport=80 --caddr=195.64.174.90
O co chodzi?!