netstat, pour « network statistics », est une ligne de commande affichant des informations sur les connexions réseau, les tables de routage et un certain nombre de statistiques dont ceux des interfaces, sans oublier les connexions masquées, les membres multicast, et enfin, les messages netlink. La commande est disponible sous Unix (et ses dérivés dont Linux) et sous Windows NT compatibles (wikipedia).

Voici quelques petits exemples.

Pour 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