Maison  >  Article  >  Opération et maintenance  >  Une discussion détaillée sur la commande netstat sous Linux

Une discussion détaillée sur la commande netstat sous Linux

黄舟
黄舟original
2017-05-27 10:22:182109parcourir

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

Introduction

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 les

requêtes.

# netstat -an
Si 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 --verbose
A 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn