13 votes

netstat : n : protocole inconnu ou non instrumenté

J'utilise toujours netstat sur ubuntu pour vérifier quels processus écoutent sur des ports spécifiques. J'utilise les commutateurs suivants avec netstat qui fonctionnent bien sur ubuntu mais échouent sur mac :

sudo netstat -tulpn
netstat: n: unknown or uninstrumented protocol

0 votes

-p nécessite un protocole man netstat

16voto

Gordon Davisson Points 30215

Linux netstat et celles d'OS X(/BSD) n'ont pratiquement rien à voir les unes avec les autres. Parmi les options que vous invoquez, seulement -n signifie la même chose sur les deux, et certains autres ( -l y -p ) n'ont pas d'équivalent sur le système OS X netstat . Ce que j'utilise habituellement sous OS X est netstat -an | grep LISTEN mais cela ne montre pas UDP ou le programme impliqué. Je suppose que vous pourriez utiliser netstat -an | egrep '^udp|LISTEN' pour inclure UDP, mais c'est plutôt verbeux (et vous verrez aussi pas mal de choses absurdes sur UDP, puisqu'il n'y a pas vraiment de concept d'écoute UDP par rapport aux autres états). Si vous avez besoin de connaître le programme, vous devez vous rendre à la page lsof (list open files), et cela nécessite un accès Root pour vérifier les processus que vous ne possédez pas. Essayez quelque chose comme sudo lsof -nPi -sTCP:LISTEN

Edit : comme @loic.jaouen l'a fait remarquer dans une autre réponse, alors que le système d'OS X netstat n'a pas d'équivalent direct à celui de Linux. -p l'option -v (verbeux) inclut le PID du processus, et vous pouvez obtenir le nom du programme à partir de celui-ci avec ps .

4voto

loic.jaouen Points 151

@gordon-davisson est juste, mais vous pouvez toujours obtenir le pid de netstat sur mac avec l'option verbove. Je poste une réponse car je n'ai pas la réputation de commenter sa réponse.


Donc, si la question est de savoir comment obtenir pid y port dans un netstat vous pouvez toujours le faire :

netstat -anv

l'option verbose donne le pid en position 9 comme ceci :

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

Mais le résultat est pléthorique, ce qui est supportable si vous savez ce que vous cherchez, par exemple : netstat -anv | grep 3335 o netstat -anv | grep LISTEN

La sortie de lsof est toujours plus agréable.

0voto

Ruskes Points 44895

Vous pouvez laisser votre Mac "écouter" sur une interface réseau :

Type sudo tcpdump -i en0 (suivi de votre mot de passe administrateur)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X