Ces commandes doivent être exécutées lorsque le serveur que vous souhaitez surveiller écoute actuellement /path/to/sock
. Ensuite, si vous renommez /path/to/sock
, le serveur ne sera pas affecté.
La socat
commande insère un homme au milieu. Il écoute /path/to/socks
et transfère tout le trafic des clients /path/to/socks.original
(et l'enregistre dans le processus avec -v
).
Cela ne fonctionne que pour les types de sockets de flux (utilisez UNIX-RECVFROM
/ UNIX-RECV
pour les sockets datagramme ) et uniquement si les clients se contentent de read/write/send/recv
sur ces sockets, pas sendmsg()
avec des données auxiliaires et d'autres choses fantaisistes.
lsof
ne rapportera que les processus d'écoute ( socat
et le serveur pour les sockets d'écoute et acceptées). Il n'est généralement pas possible de lier un socket connecté sur le client au chemin du socket.
Si vous le faites avant le démarrage du serveur, qui ne fonctionnera pas que le serveur va essayer d' écouter sur /path/to/socks
et échouer comme socat
déjà l' écoute sur ce point . Ou vous devez /path/to/sock.original
plutôt dire au serveur d'écouter .
Stéphane Chazelas
la source