La commande Netstat affiche diverses informations liées au réseau telles que les connexions réseau, les tables de routage, les statistiques d'interface, les connexions masquées, les adhésions multidiffusion, etc.,
Dans cet article, passons en revue 10 commandes Unix netstat pratiques exemples.
1. Répertorier tous les ports (ports à l'écoute et non à l'écoute)
Répertorier tous les ports à l'aide de netstat -a
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:30037 *:* LISTEN udp 0 0 *:bootpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6135 /tmp/.X11-unix/X0 unix 2 [ ACC ] STREAM LISTENING 5140 /var/run/acpid.socket
Répertorier tous les ports tcp à l'aide de netstat -at
# netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:30037 *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 *:smtp *:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN
Répertorier tous les ports udp à l'aide de netstat -au
# netstat -au Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:bootpc *:* udp 0 0 *:49119 *:* udp 0 0 *:mdns *:*
2. Lister les sockets en état d'écoute
Répertorier uniquement les ports d'écoute à l'aide de netstat -l
# netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:ipp *:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN udp 0 0 *:49119 *:*
Répertorier uniquement les ports TCP en écoute à l'aide de netstat -lt
# netstat -lt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:30037 *:* LISTEN tcp 0 0 *:smtp *:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN
Répertorier uniquement les ports UDP en écoute à l'aide de netstat -lu
# netstat -lu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:49119 *:* udp 0 0 *:mdns *:*
Répertorier uniquement les ports UNIX en écoute à l'aide de netstat -lx
# netstat -lx Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6294 private/maildrop unix 2 [ ACC ] STREAM LISTENING 6203 public/cleanup unix 2 [ ACC ] STREAM LISTENING 6302 private/ifmail unix 2 [ ACC ] STREAM LISTENING 6306 private/bsmtp
3. Afficher les statistiques pour chaque protocole
Afficher les statistiques de tous les ports à l'aide de netstat -s
# netstat -s Ip: 11150 total packets received 1 with invalid addresses 0 forwarded 0 incoming packets discarded 11149 incoming packets delivered 11635 requests sent out Icmp: 0 ICMP messages received 0 input ICMP message failed. Tcp: 582 active connections openings 2 failed connection attempts 25 connection resets received Udp: 1183 packets received 4 packets to unknown port received. .....
Afficher les statistiques des ports TCP (ou) UDP à l'aide de netstat -st (ou) -su
# netstat -st # netstat -su
4. Afficher le PID et les noms de programme dans la sortie netstat à l'aide de netstat -p
L'option netstat -p peut être combinée avec n'importe quelle autre option netstat. Cela ajoutera le "PID/nom du programme" à la sortie netstat. Ceci est très utile lors du débogage pour identifier quel programme s'exécute sur un port particulier.
# netstat -pt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 1 0 ramesh-laptop.loc:47212 192.168.185.75:www CLOSE_WAIT 2109/firefox tcp 0 0 ramesh-laptop.loc:52750 lax:www ESTABLISHED 2109/firefox
5. Ne résolvez pas l'hôte, le port et le nom d'utilisateur dans la sortie netstat
Lorsque vous ne souhaitez pas que le nom de l'hôte, du port ou de l'utilisateur soit affiché, utilisez l'option netstat -n. Cela s'affichera en chiffres, au lieu de résoudre le nom d'hôte, le nom de port, le nom d'utilisateur.
Cela accélère également la sortie, car netstat n'effectue aucune recherche.
# netstat -an
Si vous ne souhaitez pas qu'un seul de ces trois éléments (ports, hôtes ou utilisateurs) soit résolu, utilisez les commandes suivantes.
# netsat -a --numeric-ports # netsat -a --numeric-hosts # netsat -a --numeric-users
6. Imprimer les informations netstat en continu
netstat imprimera des informations en continu toutes les quelques secondes.
# netstat -c Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 ramesh-laptop.loc:36130 101-101-181-225.ama:www ESTABLISHED tcp 1 1 ramesh-laptop.loc:52564 101.11.169.230:www CLOSING tcp 0 0 ramesh-laptop.loc:43758 server-101-101-43-2:www ESTABLISHED tcp 1 1 ramesh-laptop.loc:42367 101.101.34.101:www CLOSING ^C
7. Trouvez les familles d'adresses non compatibles dans votre système
netstat --verbose
À la fin, vous aurez quelque chose comme ça.
netstat: no support for `AF IPX' on this system. netstat: no support for `AF AX25' on this system. netstat: no support for `AF X25' on this system. netstat: no support for `AF NETROM' on this system.
8. Afficher les informations de routage du noyau à l'aide de netstat -r
# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth2 link-local * 255.255.0.0 U 0 0 0 eth2 default 192.168.1.1 0.0.0.0 UG 0 0 0 eth2
Remarque : Utilisez netstat -rn pour afficher les itinéraires au format numérique sans résoudre les noms d'hôte.
9. Découvrez sur quel port un programme est en cours d'exécution
# netstat -ap | grep ssh (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 1 0 dev-db:ssh 101.174.100.22:39213 CLOSE_WAIT - tcp 1 0 dev-db:ssh 101.174.100.22:57643 CLOSE_WAIT -
Découvrez quel processus utilise un port particulier :
# netstat -an | grep ':80'
10. Afficher la liste des interfaces réseau
# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 0 0 0 0 0 0 0 0 BMU eth2 1500 0 26196 0 0 0 26883 6 0 0 BMRU lo 16436 0 4 0 0 0 4 0 0 0 LRU
Afficher des informations étendues sur les interfaces (similaire à ifconfig) en utilisant netstat -ie :
# netstat -ie Kernel Interface table eth0 Link encap:Ethernet HWaddr 00:10:40:11:11:11 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Memory:f6ae0000-f6b00000