5 votes

Dans la sortie de lsof, quelles sont ces lignes 'sock' ?

Dans la commande lsof sous Ubuntu/Debian, je vois beaucoup de lignes comme ci-dessous :

PROGRAM 829 root  140u     sock        0,8       0t0 244182 protocol: TCP

Que sont ces lignes ?

Peuvent-ils être le résultat de l'échec de tentatives de connexion TCP ?

8voto

A.B Points 7722

Cette ligne est affichée lorsque lsof ne peut pas trouver d'informations supplémentaires sur la socket TCP : il sait qu'il s'agit d'une socket TCP mais pas plus.

Il y a deux raisons auxquelles je pense :

  • Peu probable : la socket n'est toujours pas en écoute ni en connexion : c'est à dire un serveur ou un client utilisé par exemple socket(AF_INET, SOCK_STREAM, 0) pour créer un socket TCP mais n'a pas encore appelé listen(2) o connect(2) . Cela peut être dû à un manque de ressources ou à un logiciel défectueux.

  • Le plus probable aujourd'hui : le processus vu par lsof fonctionne dans un autre espace de noms du réseau typiquement dans un conteneur (Docker, LXC, LXD ...) et donc lsof n'a pas accès aux informations pertinentes et ne les affiche pas.

    Vous devriez alors exécuter lsof du même espace de nom de réseau que le processus. Le site lsns y nsenter Les commandes peuvent être d'une grande aide pour cela. Dans votre cas, cela fonctionnerait probablement :

      nsenter -t 829 --net lsof -n -p 829

Dans les cas normaux lsof afficherait IPv4 o IPv6 au lieu de sock et aurait des informations supplémentaires, comme le port d'écoute ou les adresses concernées. Même une connexion encore en cours serait affichée avec les adresses impliquées et par exemple SYN_SENT .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X