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.
- Temporäres Port-Forwarding zwischen unterschiedlichen Netzen oder Interfaces
- Debugging & Überbrückung von Netzwerkrestriktionen
- Brücke zwischen alten und neuen Protokollen (z.B. altes TLS zu modernem TLS)
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
apt-get update
: Paketquellen aktualisieren.apt-get install socat
: Socat installieren.
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
- TCP-LISTEN:8000,bind=localhost: Lauscht lokal auf Port 8000 (nur auf localhost).
- reuseaddr,fork: Mehrere/kurze Verbindungen, sofortige Wiederverwendung.
- TCP:192.168.0.1:8080: Weiterleitung zum Dienst auf
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
- fork: Parallele Verbindungen möglich
- reuseaddr: Port sofort wieder benutzbar
- bind=localhost: Lauscht nur auf localhost (kein LAN-Zugriff möglich)
6. Verbindung nach Abbruch automatisch wiederherstellen (persist)
socat -d -d TCP:192.168.0.1:8080,persist STDOUT
- persist: Baut Verbindung bei Abbruch erneut auf
- -d -d: Debug-Ausgabe
- STDOUT: Gibt Daten im Terminal aus (Beispiel)
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
- Der Rechner mit socat braucht Zugriff auf beide IPs/Netze.
- Temporärer Einsatz: Nach Nutzung
Strg+C
oder Terminal schließen. - Für längere Nutzung: Reverse-Proxy, VPN oder Firewall bevorzugen.
- Mit
-d -d
bekommst du hilfreiche Debug-Ausgaben.
No Comments