Utilisation de la commande netstat


lan
La commande netstat, sous Linux, a des fonctionalités bien pratique. Elle peut par exemple, permettre de connaître le nombre exact de connexions sur un port donné.

Ici, on veut afficher le nombre de connexions sur le port 80 :

netstat -an | egrep ".*:80" | tr -s " " | cut -f6 -d " " | sort | uniq -c

On peut également afficher toutes les connexions tcp et sur quelles adresses distantes :

netstat -tn

Tous les ports en attente de connexion tcp (et donc ouvert) avec le programme associé :

netstat -lptn

Ou encore, obtenir des statistiques :

netstat -s

Voici une liste des différents états qui existe (trouvé sur Internet) :

  • ESTABLISHED: la socket a une connexion établie
  • SYN_SENT: la socket attend activement d'établir une connexion
  • SYN_RECV: une requête de connexion a été reçue du réseau
  • FIN_WAIT1: la socket est fermée, et la connexion est en cours de terminaison
  • FIN_WAIT2: la connexion est fermée, et la socket attend une terminaison du distant
  • TIME_WAIT: la socket attend la fin du traitement avant d'entreprendre la fermeture
  • CLOSED: la socket n'est pas utilisée
  • CLOSE_WAIT: le distant a arrêté, attendant la fermeture de la socket
  • LAST_ACK: le distant termine, et la socket est fermée. Attente d'acquittement
  • LISTEN: la socket est à l'écoute de connexions entrantes
  • CLOSING: les deux prises sont arrêtées mais toutes les données locales n'ont pas encore été envoyées
  • UNKNOWN: l'état de la prise est inconnu

7 Commentaires pour "Utilisation de la commande netstat"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Sympa !!

    Un peu de sécurité en plus.

    RépondreRépondre
    garoubeef , le 15 mars 2007 à 23:24
  •  

    Je rajoute une commande netstat un peu particulière, qui permet d'avoir le nombre de connexions à un moment donnée. L'avantage ici, est que les données sont formatés sur une seule ligne, ce qui permet de mettre la commande en crontab et permet ensuite d'exporter les données dans un tableur.

    La commande en une seule ligne :

    netstat -an | egrep ".*:80" | awk -F' ' '{print $6}' | sort | uniq -c | tr -d ' '

    Ce qui peux donner en syntaxe crontab (ici exécution toutes les minutes) :

    * * * * * netstat -an | egrep ".*:80" | awk -F' ' '{print $6}' | sort | uniq -c | tr -d ' ' >> /tmp/netstat.log && echo " " >> /tmp/netstat.log

    RépondreRépondre
    pti-seb , le 6 juillet 2007 à 15:54
  •  

    Merci pti-seb pour la petite ligne de commande qui va bien. Je vais tester ça de suite dans un cron. Pour surveiller certains comportement un peu bizarre de mon dédié...

    Choa

    RépondreRépondre
    julesdsl , le 12 octobre 2007 à 17:25
  •  

    1. Quel est le rôle de la commande netstat -tua
    2. Quels sont les fichiers et/ou les services utilisés pour la résolution des noms lors de l'exécution de la commande netstat -tua ? Justifiez votre réponse ?
    3. Quelle est la commande la plus rapide netstat -tua ou netstat -tuan ? Justifier votre réponse ?

    RépondreRépondre
    Anonyme , le 18 mars 2011 à 00:46
  •  

    @Anonymous : la façon dont tu as écris ton commentaire fait penser à un devoir auquel tu n'as pas répondu.

    Allez, je t'aide un peu quand même. La réponse est dans le man de la commande netstat.

    Voici la correspondance des options, qui te permet au passage de savoir ce que fait la commande :

    -t : on affiche les connexions TCP
    -u : on affiche les connexions UDP
    -a : on affiche à la fois les sockets en écoute et celle qui ne le sont pas

    Sinon, l'opion supplémentaire -n permet de désactiver la résolution de noms (FQDN). Ce mode est donc plus rapide, car on affiche uniquement les adresses IP et non le nom associé. Et on peut le prouver avec la commande time :

    # time netstat -tua | grep real
    real 0m0.083s

    # time netstat -tuan | grep real
    real 0m0.011s

    RépondreRépondre
    pti-seb , le 18 mars 2011 à 01:00
  •  

    je souhaite profiter de cette occasion pour écrire un ptit programme en C que voici " Un serveur qui écoute en UDP sur un port passé en paramètre. Il lit les messages qu'il reçoit et s'il
    s'agit d'un nombre il l'ajoute à un compteur interne.
    A chaque réception de message et après l'incrémentation du compteur, il affiche la valeur du
    compteur sur la sortie standard.

    Quelqu’un à une idée?

    RépondreRépondre
    Dorsen , le 24 juin 2013 à 19:50
  •  

    ya aussi

    netstat -4ant | grep ESTABLISHED

    RépondreRépondre
    payko , le 27 juillet 2015 à 17:06
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité red hat redhat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum