Weiterleiten einer TCP-Verbindung mit der Protokollierung mit socat
Ich versuche, einen Service zu debuggen, mit dem sich Clients über TCP (unter Linux) verbinden. Ich kann kein Programm ändern (habe keine Quelle), und ich kann keine Mechanismen verwenden, die auf der Netzwerkebene schnüffeln (wie tcpdump, pcap, wireshark usw.).
Ich kann jedes Service- und Client-Programm so konfigurieren, dass es an jedem beliebigen Port oder an der Adressbindung abhört oder eine Verbindung herstellt.
Ich weiß, dass es möglich ist, das SOCAT-Programm zu verwenden, um beliebige Verbindungen mit einem Befehl wie weiterzuleiten SOCAT -d -d TCP-LISTEN:2001,bind=127.0.0.1,fork TCP:localhost:2002
. Ich sehe jedoch nicht, dass die Standardversionen von socat über einen Mechanismus verfügen, um die Daten zu protokollieren, wenn sie hin und her gehen.
Was ich brauche, ist eine Möglichkeit, eine TCP-Verbindung auf diese Weise weiterzuleiten, aber die Daten in beiden Richtungen in eine Datei (also ein Paar von Dateien) zu protokollieren. Im Idealfall würde diese Strategie nur Linux-Pakete wie Socat oder Tee verwenden.
Ich weiß, dass es wahrscheinlich möglich ist, ein Programm zu schreiben, das dies mit Perl oder Python oder ähnlichem ausführt, aber für die Zwecke dieser Frage möchte ich eine Möglichkeit, nur mit Klebstoff (bash usw.) und Aktienprogrammen zu arbeiten.
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
2
Erinnert sich Windows 7 Home Premium an Netzwerkfreigaben-Passwörter?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
5
XP-Netzwerkverbindung ohne Neustart freigeben?
-
5
Wie richte ich Windows ein, 802.11 gegenüber 3G zu bevorzugen?