netstat: n: protocollo sconosciuto o non strumentato

7

Uso sempre netstat su ubuntu per verificare quali processi sono in ascolto su porte specifiche. Uso i seguenti switch con netstat che funzionano bene su ubuntu ma su mac fail:

sudo netstat -tulpn
netstat: n: unknown or uninstrumented protocol
    
posta JohnMerlino 25.07.2013 - 22:25
fonte

3 risposte

7

Le opzioni di comando netstat di Linux e OS X (/ BSD) non hanno quasi nulla a che fare l'una con l'altra. Tra le opzioni che stai invocando, solo -n significa lo stesso su entrambi e alcuni degli altri ( -l e -p ) non hanno equivalenti su% X% di OS X. Quello che uso abitualmente su OS X è netstat , ma ciò non mostra UDP o il programma coinvolto. Suppongo che potresti usare netstat -an | grep LISTEN per includere UDP, ma è piuttosto prolisso (e vedrai anche un bel po 'di cose UDP senza senso, dal momento che non esiste un concetto di ascolto UDP rispetto ad altri stati). Se hai bisogno di conoscere il programma, devi andare al comando netstat -an | egrep '^udp|LISTEN' (elenca i file aperti) e questo richiede l'accesso come root per controllare i processi che non possiedi. Prova qualcosa come lsof

    
risposta data 26.07.2013 - 02:35
fonte
3

@ gordon-davisson ha ragione, ma puoi ancora ottenere pid da netstat su mac con l'opzione verbove. Inserisco una risposta in quanto mi manca la reputazione di commentare la sua risposta.

Quindi, se la domanda è come ottenere pid e port in un comando netstat , puoi ancora fare:

netstat -anv

l'opzione verbose fornisce pid nella postizione 9 in questo modo:

Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)     rhiwat shiwat    pid   epid
tcp4       0      0  127.0.0.1.3335         *.*                    LISTEN      131072 131072  45710      0

Ma l'output è pletorico, che è sopportabile se sai cosa cerchi, come: netstat -anv | grep 3335 o netstat -anv | grep LISTEN

L'output di lsof è ancora migliore.

    
risposta data 01.03.2017 - 12:11
fonte
0

Puoi lasciare che il tuo Mac "ascolti" su un'interfaccia di rete:

Digita sudo tcpdump -i en0 (seguito dalla password dell'amministratore)

    
risposta data 26.07.2013 - 00:06
fonte

Leggi altre domande sui tag