Mirando en / proc / $ mypid / fd /, veo estos archivos
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 0 -> /dev/pts/36 (deleted)
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 3 -> socket:[1424055856]
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 4 -> socket:[1424055868]
lrwx------ 1 cm_user cm_user 64 Oct 14 03:21 5 -> socket:[1424055882]
Como tengo acceso al código, sé que estos sockets están vinculados a conexiones TCP (uno es una conexión al puerto 5672 en alguna máquina, otro es una conexión al puerto 3306 en alguna otra máquina), pero quiero saber qué socket es atado a qué conexión. ¿Cómo puedo hacer eso?
En términos más generales, ¿cómo puedo preguntarle al sistema operativo qué hay en el otro extremo del socket?
networking
proc
socket
benhsu
fuente
fuente

socat....Respuestas:
Comando lsof
Una buena opción podría ser
lsof. Comoman lsofafirma, es útil para obtener información sobreopen files such as Internet sockets or Unix Domain sockets.Usándolo
Al principio, obtenga una descripción general
/proc/$PID/fd/y los números de socket enumerados.Por ejemplo,
socket:[14240]podría interesarte.Luego, use
lsof -i -a -p $PIDpara imprimir una lista de todos los$PIDusos de los archivos de red .-iproduce una lista de archivos de red que pertenecen a un usuario o proceso-acombina lógicamente o parámetros dados de AND-p $PIDselecciona información solo sobre su procesoUna salida típica para mi navegador que se ejecuta con un PID de
2543podría ser:y más líneas similares.
¡Excelente! Ahora mire más de cerca la
DEVICEcolumna. ¡Coincide con nuestro zócalo listado anteriormente de/proc/$PID/fd/!Y gracias a la
NAMEsección podemos decir cuál es el otro extremo de nuestro zócalo.En una ejecución en el mundo real, puede obtener una buena cantidad de salida, pero solo filtra o
greppor su socket de interés.Estoy bastante seguro de que uno podría combinar todos los comandos, pero eso debería ser suficiente para comenzar.
fuente
grep -rni ffff88002704d380 /proc. en algún lugar debajo de / proc / puede encontrar su respuesta,catsu archivo grep encontrado. Pero no me apuntes sobre esto ... Puede estar horrible mal aquí.lsoflee otra información sobre la toma de/proc/net/tcp,/proc/net/tcp6,/proc/net/udp, y así sucesivamente dependiendo del tipo de enchufe.