trucs et astuces netstat

13

Dans la même veine que les questions «Ligne de commande utile» (pour Windows , Linux et Mac ), je pense qu'il serait pratique d'avoir des «façons utiles d'utiliser l'utilitaire x». Les pages de manuel vous indiquent ce que font les paramètres, mais pas nécessairement pourquoi vous les utiliseriez, ce que le résultat signifie, ce que la commande fait que vous ne sauriez jamais sans expérimentation approfondie, ou comment obtenir la réponse que vous voulez vraiment.

J'aimerais en savoir plus sur netstat . Il semblerait que je devrais être en mesure de déterminer quels processus utilisent la bande passante et, en fait, à quelle vitesse le système utilise la bande passante. Il semble également utile pour détecter les connexions indésirables (probablement virii), et il donne toutes sortes d'informations de routage (avec lesquelles je n'ai dû jouer qu'en essayant de faire en sorte qu'un PDA Sharp Zaurus utilise TCP / IP sur USB.) En d'autres termes, il sonne comme une mine d'or, et j'espérais que certains d'entre vous partageraient des pépites d'informations que vous avez trouvées.

Veuillez inclure la version de netstat et votre système d'exploitation dans votre réponse. Ce serait bien de voir un exemple de sortie et de savoir ce que cela signifie. J'ai marqué cette question comme wiki communautaire, et j'espère que vous ferez de même dans vos réponses, afin que d'autres personnes, connaissant un système d'exploitation différent, puissent mettre une commande presque équivalente si elles le savent, dans la même réponse, et nous pourrons ensuite voter sur les réponses les plus utiles.

Clinton Blackmore
la source

Réponses:

4

Afficher les ports TCP / UDP d'écoute locaux et le processus auquel ils appartiennent:

sudo netstat -tulpn
cmcginty
la source
4
Le quasi-équivalent Mac semble être "sudo lsof -i -n -P | grep LISTEN". (Ommitting les drapeaux -n et -P le fera rechercher des noms d'hôte et de port).
Clinton Blackmore
1
Clinton - c'est une commande fantastique.
SpacemanSpiff
3

Tables de routage Netstat

[Cela a été testé sur Mac OS X 10.5.7. Je soupçonne que le résultat est presque le même sur toutes les plates-formes, car il a été indiqué qu'il fonctionnait sur Solaris.]

netstat -r 

vous donnera une table de routage.

netstat -nr

est le même, mais vous donnera des IP brutes au lieu de rechercher des noms de machine. Sa sortie ressemble à ceci (seulement plus longtemps):

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.40.250     UGSc       19        1    en1
127                127.0.0.1          UCS         0        0    lo0
127.0.0.1          127.0.0.1          UH          1     3140    lo0
169.254            link#5             UCS         0        0    en1
169.254.33.92      127.0.0.1          UHS         0        0    lo0
192.168.40         link#5             UCS        11        0    en1
192.168.40.1       0:17:f2:ca:a0:94   UHLW        0        0    en1   1150
...

Internet6:
Destination                             Gateway                         Flags      Netif Expire
::1                                     link#1                          UHL         lo0
fe80::%lo0/64                           fe80::1%lo0                     Uc          lo0
fe80::1%lo0                             link#1                          UHL         lo0
fe80::%en0/64                           link#4                          UC          en0
...
ff02::/32                               link#7                          UC          en2
ff02::/32                               link#8                          UC          en3

Colonnes:

Destination et passerelle: la destination est une adresse (ou plage d'adresses) à laquelle nous pouvons envoyer des informations. Toutes les données envoyées à cette destination iront à la passerelle associée. La passerelle sait où envoyer les données pour son prochain «saut» sur le trajet. Si nous souhaitons envoyer des données vers une destination qui n'a pas d'entrée dans la table de routage, elles passeront par la passerelle par défaut.

Indicateurs: la page man / info répertorie tous les indicateurs. Voici ce que signifient les paramètres de ma passerelle par défaut:

UGSc
U       - RTF_UP           Route usable
 G      - RTF_GATEWAY      Destination requires forwarding by intermediary
  S     - RTF_STATIC       Manually added
   c    - RTF_PRCLONING    Protocol-specified generate new routes on use

C'est curieux qu'il prétend être ajouté manuellement, car il est venu sur DHCP.

Refs: "Le champ refcnt donne le nombre actuel d'utilisations actives de la route. Les protocoles orientés connexion se maintiennent normalement sur une seule route pendant la durée d'une connexion tandis que les protocoles sans connexion obtiennent une route lors de l'envoi vers la même destination." (Page de manuel)

Use: "Le champ use fournit un décompte du nombre de paquets envoyés en utilisant cette route."

Netif: "L'entrée d'interface indique l'interface réseau utilisée pour l'itinéraire."

Sur mon Mac,

  • lo0 est l'interface de bouclage.
  • en0 est Ethernet.
  • en1 est sans fil.
  • en2 et en3 sont utilisés par une machine virtuelle.

Expire: à partir d'une page de manuel pour une version différente de netstat: "Affiche le temps (en minutes) restant avant l'expiration de l'itinéraire."

Clinton Blackmore
la source
2

Dans les fenêtres:

c:>netstat -a | find /c "TCP"
68

Affiche le nombre de connexions TCP / IP. Utile si vous dépannez des systèmes réseau élevés qui manquent de ports TCP et doivent augmenter MaxUserPorts .

Christopher_G_Lewis
la source
OS X 10.5.7 équiv: netstat -a | grep -c tcp
Clinton Blackmore
2

Taux de transmission / réception

Sur Mac [OS X 10.5.7]:

netstat -i -w 10

[Voir la réponse de chuck pour des notes sur l'utilisation sous Solaris et Linux.]

La sortie ressemble à ceci:

            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
       794     0    1166796        763     0      50358     0
       789     0    1167773        765     0      52542     0
       792     0    1166548        765     0      51174     0
       796     0    1167262        598     0      40152     0
       929     0    1278561        846     0      65625     0
       563     0     815570        530     0      36828     0
        32     0       4360          1     0        774     0
         9     0        705          0     0        684     0
         9     0        631          0     0          0     0

Cela montre combien de paquets et d'octets ont été transférés dans un intervalle de temps donné. (10 secondes dans cet exemple). J'étais connecté à YouTube et téléchargeais plus de 1 Mo à chaque intervalle, jusqu'à ce que je ferme l'onglet du navigateur et que le taux atteigne son plus bas.

Cela pourrait s'avérer utile si vous attendez la fin d'un téléchargement ou d'un téléchargement. Surveillez le taux, et quand il baisse considérablement, vous savez que c'est fait.

Notez que la commande ci-dessus vous montre tout le débit sur toutes les interfaces. Pour l'étendre à une interface particulière (WiFi dans cet exemple), utilisez l' -Iindicateur, comme suit:

netstat -I en1 -w 10
Clinton Blackmore
la source
1

Les fenêtres:

Netstat -n
(Show active TCP connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Affiche les connexions TCP actives, mais aucune activité UDP.

Netstat -an
  (Show all connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Affiche toutes les connexions TCP actives, ainsi que les connexions TCP et UDP en écoute. N'affiche pas l'activité UDP sortante ici.

Mike
la source
Je vais ajouter un commentaire pour l'instant, mais quand j'aurai suffisamment de représentants, je modifierai la réponse. netstat sur Mac OS X 10.5.7 équivalent - ajoutez -p tcp pour qu'il soit limité au protocole tcp. c'est à dire. netstat -p tcp -n, ounetstat -p tcp -an
Clinton Blackmore
Un autre couple utile de commutateurs sous Windows sont -o (afficher le PID propriétaire de chaque socket) et -b (afficher le nom du processus propriétaire de chaque socket). Particulièrement pratique pour enquêter sur des machines que vous soupçonnez d'avoir été compromises.
Murali Suriar
netstat -nt fait la même chose (numérique et TCP uniquement)
Jauder Ho
1

les fenêtres

netstat -b

Afficher le processus à l'aide de la connexion

user640
la source
1

Windows 7 (peut-être depuis plus tôt, cependant):

netstat -ano

répertorie les sessions actives avec les PID associés

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       776
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING       1724

ou pour enregistrer une étape

netstat -anb

(à partir d'une invite CMD élevée) donne le nom du processus

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  RpcSs
 [svchost.exe]
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING
 [wmpnetwk.exe]
  TCP    0.0.0.0:2048           0.0.0.0:0              LISTENING
TristanK
la source
1

Je suis sûr que je réinvente la roue, mais voici un simple script Perl pour exécuter netstat et trier la sortie afin que les adresses IP actuellement principalement connectées s'affichent en haut. Il est préférable de l'utiliser avec le programme «watch» pour les mises à jour à intervalles de 2 secondes.

Mise à jour: réécriture importante 2013-02-11 pour se débarrasser de nombreux problèmes et afficher les noms d'hôtes

Exemple de sortie:

Distant inbound connections: 2
   85.93.216.17:772               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
   80.90.47.155:443               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
Distant outbound connections: 3
   80.90.63.61                    --> 80.90.63.48:25      :    2        smtp.m-plify.net                      2 x TIME_WAIT
   85.93.216.17                   --> 85.93.216.18:772    :    1        maya.m-plify.net                      1 x ESTABLISHED
Looping connections: 57 (10 duplicates)
   127.0.0.1                      --> 127.0.0.1:9355      :   20                                              1 x ESTABLISHED, 8 x TIME_WAIT, 11 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:4713      :   10                                             10 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:9353      :    9                                              4 x TIME_WAIT, 5 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:3306      :    8                                              6 x ESTABLISHED, 1 x TIME_WAIT, 1 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:5445      :    5                                              1 x ESTABLISHED, 4 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:9354      :    2                                              2 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:7998      :    1                                              1 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:3351      :    1                                              1 x ESTABLISHED
   127.0.0.1                      --> 127.0.0.1:32000     :    1                                              1 x ESTABLISHED
David Tonhofer
la source
0

Solaris:

netstat -nr
(displays routing table)
Milner
la source
0

Extrait du livre Wicked Cool Shell Scripts:

Script # 90.1 : Toutes les 'n' minutes, récupérez les valeurs netstats (via crontab)

Script # 90.2 : Analysez le journal des performances de netstat en cours d'exécution, en identifiant les résultats et tendances importants.

(J'adore ce livre - ça vaut le coup d'acheter!)

gharper
la source
0

Sous Solaris, beaucoup de gens ont l'habitude de faire "netstat -i 1" pour obtenir un nombre de paquets en cours d'exécution. Le netstat Linux a une version inutile de cette fonctionnalité, car elle vous montre le nombre brut et non un delta. Pour obtenir des résultats similaires, faites "sar -n DEV 1 0". Considérez en fait "LANG = C sar -n DEV 1 0 | grep interfacename" (sar met l'heure avec AM et PM au début de la ligne dans certains paramètres régionaux, il est donc préférable de prendre l'habitude de toujours exécuter "LANG = C sar "au cas où vous le paralyseriez jamais).

carlito
la source
Pour un exemple de sortie et d'utilisation de Mac, voir serverfault.com/questions/11289/netstat-tips-and-tricks/… .
Clinton Blackmore
0

Sous Solaris,

netstat -k

Affiche un résumé de diverses statistiques. Utile pour vérifier les erreurs, etc.

Jauder Ho
la source
0

Puisque personne ne l'a encore mentionné:

netstat -s 

fournit une tonne de statistiques utiles par protocole sous linux.

dmourati
la source