Maison >Opération et maintenance >exploitation et maintenance Linux >Une discussion détaillée sur la commande netstat sous Linux
L'éditeur ci-dessous vous apportera une discussion détaillée de la commande Linux netstat (essentielle pour les entretiens avec les seniors). L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Venez jeter un oeil avec l'éditeur
La commande Netstat permet d'afficher divers réseaux Informations associées, telles que la connexion réseau, la table de routage, l'interfacestatut (Statistiques d'interface), la connexion de mascarade, les adhésions de multidiffusion (Adhésions de multidiffusion), etc.
Signification des informations de sortie
Après l'exécution de netstat, le résultat de sortie est
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED tcp 296 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 1 [ ] STREAM CONNECTED 16178 @000000dd unix 1 [ ] STREAM CONNECTED 16176 @000000dc unix 9 [ ] DGRAM 5292 /dev/log unix 1 [ ] STREAM CONNECTED 16182 @000000df
Dans l'ensemble, les résultats de sortie de netstat peuvent être divisés en deux parties :
L'une concerne les connexions Internet actives, appelées connexions TCP actives, parmi lesquelles "Recv-Q" et "Envoyer-Q" fait référence à la file d'attente de réception et à la file d'attente d'envoi de %0A. Ces nombres doivent généralement être 0. Sinon, cela signifie que les colis s'accumulent dans la file d'attente. Cette situation ne peut être constatée que dans des cas très rares.
L'autre est les sockets de domaine UNIX actifs, appelés sockets de domaine Unix actifs (les mêmes que les sockets réseau, mais ne peuvent être utilisés que pour la communication locale et les performances peuvent être doublées).
Proto affiche le protocole utilisé pour la connexion, RefCnt représente le numéro de processus connecté à ce socket, Types affiche le type de socket, State affiche l'état actuel du socket et Path représente le numéro de processus connecté à le socket Pathname utilisé par d'autres processus.
Paramètres communs
-a (tous) affiche toutes les options, non affichées par défaut LISTEEN associé
-t (tcp) Afficher uniquement les options liées à TCP
-u (udp) Afficher uniquement les options liées à UDP
-n Refuser d'afficher les alias et convertir tous les nombres pouvant être affichés en nombres.
-l répertorie uniquement l'état du service en écoute (écoute)
-p affiche le nom du programme qui a établi le lien concerné
-r affiche les informations de routage, la table de routage
- e affiche les informations d'extension, telles que l'uid, etc.
-s Statistiques selon chaque protocole
-c Exécutez la commande netstat à intervalles réguliers.
Astuce : L'état de LISTEN et LISTENING ne peut être vu qu'avec -a ou -l
Exemples de commandes pratiques
1. Liste tous les ports (y compris ceux en écoute et non-écoute)
Liste tous les ports 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
Liste tous les ports TCP 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
Liste tous les ports udp 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. Liste toutes les sockets en état d'écoute
Afficher uniquement le ports d'écoute 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 *:*
Liste uniquement tous les ports TCP d'écoute 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
Liste uniquement tous les ports UDP d'écoute 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 *:*
Liste uniquement tous les ports UNIX en écoute 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 pour tous les ports Informations 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 netstat -st ou -su# netstat -st
# netstat -su
4. Afficher le PID et le nom du processus dans la sortie netstat netstat -p
netstat -p peut être utilisé avec d'autres commutateurs pour ajouter "PID/nom du processus" à netstat Dans la sortie, vous pouvez facilement trouver le programme en cours d'exécution sur un port spécifique pendant le débogage.# 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. N'affichez pas l'hôte, le port et le nom d'utilisateur (hôte, port ou utilisateur) dans la sortie netstat
Lorsque vous ne voulez pas l'hôte, port et pour afficher le nom d'utilisateur, utilisez netstat -n. Des chiffres seront utilisés à la place de ces noms. peut également accélérer la sortie, car il n'est pas nécessaire de comparer lesrequêtes.
# netstat -anSi vous ne souhaitez pas qu'un seul de ces trois noms soit affiché, utilisez la commande suivante
# netsat -a --numeric-ports # netsat -a --numeric-hosts # netsat -a --numeric-users
Affichez en continu les informations netstat .
netstat affichera des informations sur le réseau toutes les 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. Afficher les familles d'adresses qui ne sont pas prises en charge par le système
netstat --verboseA la fin de la sortie, il y aura les informations suivantes
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 principales 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 le format numérique et ne pas interroger. le nom d'hôte.
9. Recherchez le port sur lequel le programme s'exécute
Tous les processus ne peuvent pas être trouvés, et ceux sans autorisation ne seront pas affichés. autorisations pour afficher toutes les informations.# netstat -ap | grep ssh 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 le processus en cours d'exécution sur le port spécifié
# 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
显示详细信息,像是 ifconfig 使用 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
11. IP和TCP分析
查看连接某服务端口最多的的IP地址
wss8848@ubuntu:~$ netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20 18 221.136.168.36 3 154.74.45.242 2 78.173.31.236 2 62.183.207.98 2 192.168.1.14 2 182.48.111.215 2 124.193.219.34 2 119.145.41.2 2 114.255.41.30 1 75.102.11.99
TCP各种状态列表
wss8848@ubuntu:~$ netstat -nat |awk '{print $6}' established) Foreign LISTEN TIME_WAIT ESTABLISHED TIME_WAIT SYN_SENT
先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。
wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'|sort|uniq -c 143 ESTABLISHED 1 FIN_WAIT1 1 Foreign 1 LAST_ACK 36 LISTEN 6 SYN_SENT 113 TIME_WAIT 1 established)
最后的命令如下:
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
分析access.log获得访问前10位的ip地址
awk '{print $1}' access.log |sort|uniq -c|sort -nr|head -10
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!