Im lsof-Befehl unter Ubuntu/Debian sehe ich viele Zeilen wie die folgende:
PROGRAM 829 root 140u sock 0,8 0t0 244182 protocol: TCP
Was sind diese Linien?
Können es sich dabei um das Ergebnis fehlgeschlagener TCP-Verbindungsversuche handeln?
Antwort1
Diese Zeile wird angezeigt, wenn lsof
keine zusätzlichen Informationen zum TCP-Socket gefunden werden können: Sie weiß, dass es sich um einen TCP-Socket handelt, mehr jedoch nicht.
Mir fallen dafür zwei Gründe ein:
Unwahrscheinlich: Der Socket hört noch immer nicht zu und stellt auch keine Verbindung her: d. h. ein Server oder Client verwendet beispielsweise
socket(AF_INET, SOCK_STREAM, 0)
um einen TCP-Socket zu erstellen, aber noch nicht aufgerufenlisten(2)
oderconnect(2)
. Die Ursache kann in fehlenden Ressourcen oder fehlerhafter Software liegen.Am wahrscheinlichsten heute: der Prozess von
lsof
läuft in einer anderenNetzwerk-Namespace, typischerweise in einem Container (Docker, LXC, LXD ...) undlsof
hat daher keinen Zugriff auf die relevanten Informationen und zeigt diese auch nicht an.Sie sollten dann
lsof
aus dem gleichen Netzwerk-Namespace wie der Prozess laufen.lsns
Undnsenter
Befehle können dabei sehr hilfreich sein. Für Ihren Fall würde dann wahrscheinlich Folgendes funktionieren:nsenter -t 829 --net lsof -n -p 829
Normalerweise würde oder anstelle von lsof
angezeigt und es würden zusätzliche Informationen wie der Abhörport oder die beteiligten Adressen angezeigt. Sogar eine noch laufende Verbindung würde mit den beteiligten Adressen und beispielsweise angezeigt .IPv4
IPv6
sock
SYN_SENT