
Na saída, nmap -p- localhost
recebo uma porta tcp aberta desconhecida, que é diferente a cada reinicialização. Como posso determinar qual processo o abriu e o escuta. Tentei muitas das ferramentas usuais ( netstat
, ss
, lsof
), mas não consigo encontrar o culpado. Por exemplo. sudo netstat -pan -Ainet | grep <PORT>
não fornece nome de PID/programa:
tcp 0 0 0.0.0.0:<PORT> 0.0.0.0:* LISTEN -
Talvez eu deva analisar a sequência de inicialização? Mas como assim?
Alguém poderia ajudar?
Responder1
Comosugeriu, ss
também pode fornecer a resposta; a sintaxe é:
sudo ss --tcp --listening --processes 'sport = 1234'
Onde 1234
está a porta do dia da sua varredura nmap. Isso limita a saída às portas TCP e mostra o nome do processo e o PID que está escutando nessa porta. sudo
só é necessário se você quiser o --process
sinalizador, que fornece o nome do processo e o PID.
Responder2
O Netstat faz exatamente o que você pede, quando executado como root e com os sinalizadores corretos:
sudo netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1931/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 32296/cupsd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1550/postgres
tcp6 0 0 :::80 :::* LISTEN 3198/docker-proxy
Além disso, ss
é a substituição de netstat
e usa principalmente os mesmos sinalizadores, mas tem uma saída formatada de forma diferente
Responder3
Algumas portas abertas pelo kernel e por alguns serviços específicos (NFS, OCFS, túneis ssh) não são visíveis com netstat nem ss