porte lsof e di ascolto


50

Sto cercando di ottenere tutti i processi in ascolto per una connessione di rete su Mac OS X. netstatnon ha l' -popzione e sto provando con lsof

lsof -i -sTCP:LISTEN

mi dà un giusto elenco di processi di ascolto ma non tutti. Posso ad esempio telnet alla porta 10080 dove ho un processo in ascolto di una connessione ma questo non è mostrato nell'output di lsof. Cosa mi sto perdendo?

$ telnet localhost 10080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> Connection closed.

ma

$ sudo lsof -n -i | grep 10080
$

3
L'output di lsof dice amandainvece di 10080?
Jon Lin,

3
@JonLin Non ho notato che -ninteressa solo gli indirizzi e non le porte. Per ottenere i numeri di porta devo usare -Panch'io. Grazie
Matteo,

3
@JonLin: ma hai post lsof -i -sTCP:LISTEN, e senza il -ne non ha rivelato anche il 10080. Quindi devi usare il -P.
Hanan N.

Risposte:


75
sudo lsof -iTCP -sTCP:LISTEN
sudo lsof -iTCP -sTCP:LISTEN -P
sudo lsof -iTCP -sTCP:LISTEN -P -n
sudo lsof -iTCP -sTCP:LISTEN -n

Tutti restituiscono le stesse 32 voci ( ... | wc -l) sul mio Lion MBP pesantemente usato.

-P -nimpedisce lsofdi eseguire la risoluzione dei nomi e non si blocca. Manca uno di questi, può essere molto lento.

Per UDP: sudo lsof -iUDP -P -n | egrep -v '(127|::1)'. Senza -ne -P, ci vuole molto tempo.

Promemoria: questo non include le impostazioni del firewall.


3
Sì, il problema era mancante -P. Ho erroneamente ritenuto -napplicato non solo agli IP, ma anche ai numeri di porta.
Matteo

-1
  1. Per prima cosa scopri l'ID processo (pid) che ha occupato la porta richiesta (es. 5434):

    ps aux | grep 5434
    
  2. Uccidi quel processo:

    kill -9 <pid>
    

5
ps auxnon elenca le porte utilizzate da un processo
Matteo

Sono d'accordo con Matteo; sei sicuro di non aver fatto qualcosa come netstat -anp | grep 5434 (che restituirà un elenco di cose in ascolto su 5434, e la prima o la seconda colonna è il pid?)
Foon

6
Quindi potrebbe funzionare solo in una situazione in cui un processo è stato chiamato con il numero di porta indicato esplicitamente nella stringa di esecuzione e quella parte della stringa sarebbe abbinata da grep.
techraf

1
L'uso kill -9come prima opzione per sbarazzarsi di un processo è una scelta estrema. Inoltre, questo in realtà non risponde alla domanda, che non riguarda l'uccisione di cose, ma scoprire cosa sta succedendo.
scade il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.