Lista de puertos usados por un proceso…

por | enero 4, 2013

Dado el PID  y sin necesidad de netstat o herramientas similares, podéis saber qué puertos tiene en uso (y su estado y mucha más información) dicho proceso con algo parecido a esto:

ls -la /proc/$proceso/fd | grep socket | cut -d’>’ -f2|cut -d’:’ -f2 | while read id; do grep $id /proc/net/tcp; done;

La información resultante la podéis interpretar con la documentación del Kernel de GNU/Linux (proc_net_tcp.txt), si no os aclara la primera línea del fichero /proc/net/tcp:

sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode ref pointer drops

Para el caso que me ocupaba, sobraba con saber que de la línea:

4: 00000000:445C 00000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 71298 1 f61904c0 300 0 0 2 -1

el primer campo (4) es un identificador de entrada; el segundo (00000000:445C) son la IP de origen y el puerto de origen; el tercero es la IP y puerto de destino y el cuarto (0A) es el estado (0A= Listen)

Si alguien no se fía de los resultados que le muestran sus herramientas, recordad que siempre está /proc