Debería poder encontrar todos los puertos abiertos en /proc/net/tcp
y /proc/net/udp
. Cada uno de esos archivos tiene un inode
columna, que se puede usar para encontrar el proceso que posee ese socket.
Una vez que tenga un número de inodo, puede ejecutar un comando ls como ls -l /proc/*/fd/* | grep socket:.$INODE
para encontrar los procesos que usan ese socket. En caso de que se haya configurado un proceso con diferentes descriptores de archivo para diferentes subprocesos, es posible que deba extender el comando a ls -l /proc/*/task/*/fd/* | grep socket:.$INODE
para encontrarlos a todos.