Les réponses courtes sont non et pas faciles.
Sous Linux, lsof s'appuie sur /proc/net/unix
pour récupérer les informations concernant les sockets de domaine UNIX. Cette interface répertorie tous les sockets liés, mais elle ne garde pas la trace des points de terminaison. Ainsi, vous pouvez voir les sockets existantes, mais vous ne pouvez pas voir ce qui leur est connecté. Quelque part, ces informations sont suivies, elles doivent l'être, sinon les connexions des sockets ne fonctionneraient pas. Je n'ai pas encore trouvé de mécanisme pour récupérer les informations de connexion.
La question du reniflement est un peu plus intéressante, mais non moins décevante. Ce que j'entendais par «pas facilement», c'est qu'il n'y a pas de crochet pour s'introduire et saisir ces données. L'analogue le plus proche utilise tcpdump ou Wireshark, qui utilisent tous deux libpcap pour faire le gros du travail. Alors que le réseau (AF_INET) et le domaine UNIX (AF_UNIX) sont tous deux créés à l'aide de l' socket()
appel de fonction, les deux servent connect()
à se connecter, à utiliser read()
et write()
à traiter les données, ils sont gérés par différents sous-systèmes du noyau. Cela a pour effet secondaire malheureux que libpcap n'est pas conçu pour fonctionner avec les sockets de domaine UNIX.
Il y a un côté un peu moins sombre du problème. Jetez un œil à la page de manuel de recv(2)
. Il s'agit d'un appel système de niveau inférieur qui read()
utilise. Il existe un drapeau pour recv()
appelé MSG_PEEK
. Cela vous permettrait de renifler le trafic passant par un socket de domaine UNIX. Voilà donc le côté positif, le côté sombre est qu'à ma connaissance, il n'existe aucune application actuellement conçue pour le faire. Vous envisagez donc un effort de développement.
J'aimerais vraiment qu'il y ait une belle réponse simple de F'YEAH aux deux parties de votre question.
socat -t100 UNIX-LISTEN: /tmp/file.sock,mode=777,reuseaddr,fork STDOUT
Il n'y a pas de duplication de sortie, pas de sortie cyclique. Erreur du commentaire précédent ".sock.socat"
la source