Was sind diese „Sock“-Zeilen in der LSOF-Ausgabe?

Was sind diese „Sock“-Zeilen in der LSOF-Ausgabe?

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 lsofkeine 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 beispielsweisesocket(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 lsofläuft in einer anderenNetzwerk-Namespace, typischerweise in einem Container (Docker, LXC, LXD ...) und lsofhat daher keinen Zugriff auf die relevanten Informationen und zeigt diese auch nicht an.

    Sie sollten dann lsofaus dem gleichen Netzwerk-Namespace wie der Prozess laufen.lsnsUndnsenterBefehle 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 lsofangezeigt 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 .IPv4IPv6sockSYN_SENT

verwandte Informationen