Aktualisierung:
Wie Michal in den Kommentaren darauf hingewiesen hat:Ab Version 1.3 von tcpflow wird die Option -e zur Angabe des Scannernamens verwendet. Daher wird der Fehler "Ungültiger Scannername '8983'" gedruckt. Der richtige Befehl ist
sudo tcpflow -i any -C -J port 1234
(auch -J
wurde in -g
geändert in der neuesten Version)
Danke an Yves für den Hinweis auf "tcpflow". Hier ist die Befehlszeile:
tcpflow -i any -C -e port 1234 # as root, or with sudo
Das macht alles, was ich will
- zeigt die Daten Byte für Byte an, wie sie eingehen
- zeigt keine anderen Metadaten an
- hört auf allen Schnittstellen zu (also erfasst es Daten, die von innerhalb und außerhalb der Maschine kommen)
Die Datei „-C
" teilt ihm mit, dass es statt in eine Datei auf die Konsole ausgegeben werden soll. Die Datei "-e
" aktiviert Farben, sodass Client->Server und Server->Client visuell voneinander getrennt sind.
Ich habe tcpflow einfach so installiert
sudo apt-get install tcpflow
socat ist das Tool, nach dem Sie fragen. Es kann als Proxy fungieren:
$socat -v TCP-LISTEN:4444 TCP:localhost:1234
hello
dann muss Ihre Anwendung Port 4444 statt direkt mit 1234 verbinden
-v Option gibt socat alles aus, was es auf dem Standardfehler (stderr) empfängt.
Aktualisieren:
Wenn socat auf Ihrem Rechner nicht verfügbar ist, können Sie es trotzdem mit netcat emulieren:
$netcat -l -p 4444 | tee output_file | netcat localhost 1234
Vorbehalte:Diese Option ist unidirektional. die zweite netcat-Instanz gibt jede Antwort von Ihrem Server auf die Standardausgabe aus. Sie können dann immer noch Folgendes tun:
$mkfifo my_fifo
$netcat -l -p 4444 < my_fifo | tee output_file | netcat localhost 1234 > my_fifo
Versuchen Sie es mit Wireshark. Es ist ein ausgezeichneter Protokollanalysator für Linux und Windows.