TCP-Relay / port forwarding mit socat

Was ist socat?

socat is a relay for bidirectional data transfer between two independent data channels. Each of these data channels may be a file, pipe, device (serial line etc. or a pseudo terminal), a socket (UNIX, IP4, IP6 – raw, UDP, TCP), an SSL socket, proxy CONNECT connection, a file descriptor (stdin etc.), the GNU line editor (readline), a program, or a combination of two of these. These modes include generation of “listening” sockets, named pipes, and pseudo terminals.

socat can be used, e.g., as TCP port forwarder (one-shot or daemon), as an external socksifier, for attacking weak firewalls, as a shell interface to UNIX sockets, IP6 relay, for redirecting TCP oriented programs to a serial line, to logically connect serial lines on different computers, or to establish a relatively secure environment (su and chroot) for running client or server shell scripts with network connections.

Beispiel:

In dem folgenden Beispiel hört socat den Port 1000 ab und sendet alle Pakete (die an Port 1000 gesendet werden) direkt an localhost Port 80. –> Somit ist der lokale Webserver auch über Port 1000 erreichbar.

socat TCP4-LISTEN:10000,nodelay,fork,reuseaddr TCP4:localhost:80,nodelay

Es ist auch möglich Ports auf andere Rechner weiterzuleiten. Im nächsten Beispiel wird der lokale Port 81 auf 10.0.0.1 Port 80 weitergeleitet. –> Nehmen wir an, dass localhost mit IP-Adresse 10.0.0.22 konfiguriert ist.

Bei Aufruf der URL http://10.0.0.2:81 leitet der u.g. Befehl alle Pakte an 10.0.0.1 Port 80 weiter. Somit wird die Webseite des Server 10.0.0.1 angezeigt.

socat TCP4-LISTEN:81,nodelay,fork,reuseaddr TCP4:10.0.0.1:80,nodelay

Wichtig:

Wird der Parameter “fork” nicht benutzt, beendet sich socat nach dem ersten Verbindungsaufbau und es findet kein weiteres port forwarding für diesesn Port mehr statt.

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>