Linux - SoCat

SoCat - Fast start

1. Was ist socat?

Socat (SOcket CAT) ist ein sehr flexibles Kommandozeilen-Tool zum Weiterleiten von Datenströmen zwischen Netzwerk-Ports, Dateien, Pipes, UNIX Sockets oder SSL/TLS-Verbindungen.

Tipp: Für produktiven Dauerbetrieb sind Reverse-Proxys, VPNs oder Firewalls die bessere Wahl – socat ist ideal als temporärer Workaround!

2. Installation unter Debian/Linux

apt-get update
apt-get install socat

3. Einfaches Port-Forwarding: 192.168.0.1 → localhost

Beispiel: Du möchtest einen Dienst auf 192.168.0.1:8080 lokal als localhost:8000 bereitstellen.

socat TCP-LISTEN:8000,bind=localhost,reuseaddr,fork TCP:192.168.0.1:8080

4. Mehrere Ports/Services von 192.168.0.1 zu localhost weiterleiten

socat TCP-LISTEN:8001,bind=localhost,reuseaddr,fork TCP:192.168.0.1:8081

5. Optionen erklärt

6. Verbindung nach Abbruch automatisch wiederherstellen (persist)

socat -d -d TCP:192.168.0.1:8080,persist STDOUT

7. SSL/TLS: Verbindung von altem 192.168.0.1-SSL auf lokalen Dienst

Beispiel: Dienst auf 192.168.0.1:8443 nutzt nur TLS 1.0, du möchtest lokal localhost:8000 bereitstellen.

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes -subj "/CN=localhost"
socat openssl-connect:192.168.0.1:8443,method=TLS1 TCP-LISTEN:8000,bind=localhost,reuseaddr,fork

8. Umgekehrter Weg: Lokaler Dienst auf localhost nach 192.168.0.1 im anderen Netz bereitstellen

socat TCP-LISTEN:8080,bind=192.168.0.1,reuseaddr,fork TCP:localhost:8000

9. Hinweise & Tipps

10. Ressourcen