UNIX / Linux: 10 Exemples de la commande Netstat
La commande Netstat affiche diverses informations relatives au réseau telles que les connexions réseau, tables de routage, statistiques des interfaces, connexions masquées (masquerade), membres du multicast, etc…
Dans l’article ici présent, je passe en revue 10 exemples pratiques de la commande Unix / Linux netstat.
1. Lister tous les ports (ports en ecoute ou non)
Utiliser netstat -a pour lister tous les ports
1 2 3 4 5 6 7 8 9 10 | # 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 |
Lister tous les ports TCP en utilisant netsat -at
1 2 3 4 5 6 7 | # 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 |
Lister tous le ports UDP en utilisant netstat -au
1 2 3 4 5 6 | # 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 qui sont en ecoute
Lister seulement les sockets en écoute avec netstat -l
1 2 3 4 5 6 | # 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 *:* |
Lister seulement les ports TCP en écoute en utilisant netstat -lt
1 2 3 4 5 6 | # 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 |
Lister seulement les ports TCP en écoute avec netstat -lu
1 2 3 4 5 | # 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 *:* |
Lister seulement les ports UNIX en écoute avec netstat -lx
1 2 3 4 5 6 7 | # 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 de chaque protocole
netstat -s permet d’afficher les statistiques d’utilisation de vos ports
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # 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. ..... |
Utilisez netstat -st ou -su pour afficher les statistiques des ports TCP ou UDP
1 2 3 | # netstat -st # netstat -su |
4. Afficher le PID et les nom des processus avec netstat -p
L’option netstat -p peut être combinée avec d’autre option de netstat. Cette option ajoute le « PID / Nom programme » à la sortie de netstat. C’est très utilie lors d’un problème de pouvoir identifier rapidement quel processus utilise quel port en particulier.
1 2 3 4 5 6 7 8 | # netstat -pt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 arch_machine:48173 par03s15-in-f1:www-http ESTABLISHED 937/firefox tcp 0 0 arch_machine:42185 www.wordrefere:www-http ESTABLISHED 937/firefox tcp 0 0 arch_machine:58063 lon2-linkap-a5.lo:https ESTABLISHED 937/firefox tcp 0 0 arch_machine:50190 r2.ycpi.vip.loa.y:https ESTABLISHED 920/python2 tcp 0 0 arch_machine:33502 par03s15-in-f2:www-http ESTABLISHED 937/firefox |
5. Demander à netstat de ne pas résoudre l’hôte, le port et le nom d’utilisateur
Quand vous ne voulez pas que le nom d’hôte, le port ou l’utilisateur soient affichées, utilisez l’option netstat -n. Netstat fournira le résultat plus rapidement, il n’aura pas de recherche à faire.
1 | # netstat -an |
Si vous souhaitez seulement ne pas résoudre l’un des trois éléments (ports, hôte, ou utilisateur), utilisez l’une des commandes ci-dessous :
1 2 3 4 5 | # netsat -a --numeric-ports # netsat -a --numeric-hosts # netsat -a --numeric-users |
6. Afficher les informations de netstat en continue
netstat -c affichera les informations en continue (rafraichissement automatique au bout de quelques secondes)
1 2 3 4 5 6 7 8 9 10 11 | # netstat -c Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 arch_machine:42772 server-5:macromedia-fcs ESTABLISHED tcp 0 0 arch_machine:40044 kundenserver.d:www-http TIME_WAIT tcp 0 0 arch_machine:40046 kundenserver.d:www-http TIME_WAIT tcp 0 0 arch_machine:58593 par03s14-in-f6:www-http ESTABLISHED tcp 0 0 arch_machine:58592 par03s14-in-f6:www-http ESTABLISHED tcp 0 7725 arch_machine:50301 r2.ycpi.vip.loa.y:https ESTABLISHED tcp 0 0 arch_machine:57886 r1.ycpi.vip.loa.y:https TIME_WAIT tcp 0 0 arch_machine:58591 par03s14-in-f6:www-http ESTABLISHED |
7.Trouver les familles d’adresse non supportées par votre système
1 | netstat --verbose |
A la fin, vous devriez avoir quelque chose comme ça.
1 2 3 4 | netstat: no support for <code>AF IPX' on this system. netstat: no support for </code>AF AX25' on this system. netstat: no support for <code>AF X25' on this system. netstat: no support for </code>AF NETROM' on this system. |
8. Afficher la table de routage avec netstat -r
1 2 3 4 5 6 | # netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default bbox.lan 0.0.0.0 UG 0 0 0 wlp2s0 192.168.1.0 * 255.255.255.0 U 0 0 0 wlp2s0 bbox.lan * 255.255.255.255 UH 0 0 0 wlp2s0 |
Note : Utilisez
netstat -rn pour afficher les routes dans un format numerique (sans resolution de nom d’hôte).
9. Decouvrir quel port est utilisé par un programme
1 2 3 4 5 | # 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 - |
Trouver quel processus utilise un port particulier:
1 | # netstat -an | grep ':80' |
10. Afficher la liste des interfaces réseau
1 2 3 4 5 6 | # 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 |
Utiliser netstat -ie pour afficher des informations concernant les interfaces réseau (similaire à ifconfig):
1 2 3 4 5 6 7 8 | # netstat -ie Kernel Interface table enp3s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 1c:6f:65:8f:c9:c0 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |