Wenn ich in / proc / $ mypid / fd / schaue, sehe ich diese Dateien
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 0 -> /dev/pts/36 (deleted)
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 3 -> socket:[1424055856]
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 4 -> socket:[1424055868]
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 5 -> socket:[1424055882]
Da ich Zugriff auf den Code habe, weiß ich, dass diese Sockets an TCP-Verbindungen gebunden sind (einer ist eine Verbindung zu Port 5672 auf einem Computer, ein anderer ist eine Verbindung zu Port 3306 auf einem anderen Computer), aber ich möchte wissen, welcher Socket ist an welche verbindung gebunden. Wie kann ich das machen?
Wie kann ich das Betriebssystem generell fragen, was sich am anderen Ende des Sockets befindet?
networking
proc
socket
benhsu
quelle
quelle
socat
....Antworten:
Befehl lsof
Eine gute Option könnte sein
lsof
. Wie esman lsof
heißt, ist es praktisch, um Informationen zu erhaltenopen files such as Internet sockets or Unix Domain sockets
.Es benutzen
Verschaffen Sie sich zunächst einen Überblick über
/proc/$PID/fd/
und die aufgeführten Steckdosennummern.Zum Beispiel
socket:[14240]
könnte Sie interessieren.Verwenden Sie dann
lsof -i -a -p $PID
, um eine Liste aller verwendeten Netzwerkdateien zu drucken$PID
.-i
Erzeugt eine Liste von Netzwerkdateien, die zu einem Benutzer oder Prozess gehören-a
Kombiniert oder verknüpft die angegebenen Parameter mit AND-p $PID
Wählt nur Informationen zu Ihrem Prozess ausEine typische Ausgabe für meinen Browser mit einer PID von
2543
könnte sein:und ähnliche Zeilen.
Groß! Schauen Sie sich nun die
DEVICE
Säule genauer an . Es passt zu unserer bisher gelisteten Steckdose von/proc/$PID/fd/
!Und dank des
NAME
Abschnitts können wir sagen, was das andere Ende unserer Steckdose ist.In einer realen Umgebung erhalten Sie möglicherweise eine gute Menge an Ausgabe, aber nur Filter oder
grep
für Ihre Socket von Interesse.Ich bin mir ziemlich sicher, dass man alle Befehle kombinieren kann, aber das sollte ausreichen, um Ihnen den Einstieg zu erleichtern.
quelle
grep -rni ffff88002704d380 /proc
. irgendwo unter / proc / kann deine antwort liegen,cat
deine datei grep gefunden. Aber nimm mich nicht fest ... Kann hier furchtbar falsch sein.lsof
liest andere Informationen über die Buchse aus/proc/net/tcp
,/proc/net/tcp6
,/proc/net/udp
, und so weiter auf Socket - Typ abhängig.