Você deve conseguir encontrar todas as portas abertas em /proc/net/tcp
e /proc/net/udp
. Cada um desses arquivos tem uma coluna inode
, que pode ser usada para encontrar o processo que possui esse soquete.
Quando tiver um número de inode, você poderá executar um comando ls, como ls -l /proc/*/fd/* | grep socket:.$INODE
, para localizar os processos que usam esse soquete. Caso um processo tenha sido configurado com diferentes descritores de arquivo para diferentes threads, você pode precisar estender o comando para ls -l /proc/*/task/*/fd/* | grep socket:.$INODE
para encontrá-los todos.