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.


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 Port 80 weitergeleitet. –> Nehmen wir an, dass localhost mit IP-Adresse konfiguriert ist.

Bei Aufruf der URL leitet der u.g. Befehl alle Pakte an Port 80 weiter. Somit wird die Webseite des Server angezeigt.

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


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>