Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Eine ausführliche Diskussion über den Befehl netstat unter Linux
Der Redakteur unten wird Ihnen eine ausführliche Diskussion des Linux netstat-Befehls liefern (unverzichtbar für Interviews mit Führungskräften). Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Kommen Sie und schauen Sie sich den Editor an
Der Netstat-Befehl wird verwendet, um verschiedene anzuzeigen Netzwerke Verwandte Informationen, wie Netzwerkverbindung, Routing-Tabelle, SchnittstelleStatus (Schnittstellenstatistik), Maskierungsverbindung, Multicast-Mitgliedschaften (Multicast-Mitgliedschaften) usw.
Bedeutung der Ausgabeinformationen
Nach der Ausführung von netstat lautet das Ausgabeergebnis
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
Im Großen und Ganzen können die Ausgabeergebnisse von netstat in zwei Teile unterteilt werden:
Einer sind aktive Internetverbindungen, sogenannte aktive TCP-Verbindungen, darunter „Recv-Q“ Und „Send-Q“ bezieht sich auf die Empfangs--Warteschlange und die Sendewarteschlange von %0A. Diese Zahlen sollten im Allgemeinen 0 sein. Wenn nicht, bedeutet das, dass sich die Pakete in der Warteschlange stapeln. Diese Situation kommt nur in sehr seltenen Fällen vor.
Das andere sind aktive UNIX-Domänen-Sockets, sogenannte aktive Unix-Domänen-Sockets (identisch mit Netzwerk-Sockets, können aber nur für die lokale Kommunikation verwendet werden und die Leistung kann verdoppelt werden).
Proto zeigt das für die Verbindung verwendete Protokoll an, RefCnt stellt die mit diesem Socket verbundene Prozessnummer dar, Types zeigt den Typ des Sockets an, State zeigt den aktuellen Status des Sockets an und Path stellt die mit diesem Socket verbundene Prozessnummer dar der Socket Pfadname, der von anderen Prozessen verwendet wird.
Gemeinsame Parameter
-a (alle) zeigt alle Optionen an, nicht standardmäßig angezeigt LISTEEN bezogen
-t (tcp) Zeigt nur TCP-bezogene Optionen an
-u (udp) Zeigt nur UDP-bezogene Optionen an
-n Verweigert die Anzeige von Aliasen und konvertiert alle Zahlen, die angezeigt werden können, in Zahlen.
-l listet nur den Dienststatus in Listen (Listening) auf
-p zeigt den Namen des Programms an, das die entsprechende Verbindung hergestellt hat
-r zeigt die Routing-Informationen und die Routing-Tabelle an
- e zeigt die Erweiterungsinformationen wie UID usw. an.
-s Statistiken gemäß jedem Protokoll
-c Führen Sie den Befehl „netstat“ in regelmäßigen Abständen aus.
Tipp: Der Status von LISTEN und LISTENING kann nur mit -a oder -l eingesehen werden
Praktische Befehlsbeispiele
1. Alle Ports auflisten (einschließlich hörender und nicht hörender)
Alle Ports auflisten 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
Alle TCP-Ports auflisten 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
Alle UDP-Ports netstat -au auflisten
# 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. Alle Sockets im Überwachungsstatus auflisten
Nur anzeigen Listening-Ports 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 *:*
Nur alle hörenden TCP-Ports auflisten 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
Nur alle hörenden UDP-Ports auflisten 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 *:*
Nur alle hörenden UNIX-Ports auflisten 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. Statistiken für jedes Protokoll anzeigen
Statistiken für alle Ports anzeigen 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. .....
TCP- oder UDP-Portstatistik anzeigen netstat -st oder -su
# netstat -st
# netstat -su
4. PID und Prozessnamen in der Netstat-Ausgabe anzeigen netstat -p
netstat -p kann mit anderen Schaltern verwendet werden, um „PID/Prozessname“ zu Netstat hinzuzufügen. In der Ausgabe können Sie das laufende Programm leicht finden auf einem bestimmten Port während des Debuggens.
# 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. Host, Port und Benutzername (Host, Port oder Benutzer) nicht in der Netstat-Ausgabe anzeigen
Wenn Sie den Host nicht möchten, port und Um den Benutzernamen anzuzeigen, verwenden Sie netstat -n. Anstelle dieser Namen werden Zahlen verwendet.
kann auch die Ausgabe beschleunigen, da keine Notwendigkeit besteht, Abfragen zu vergleichen.
# netstat -an
Wenn Sie nicht möchten, dass nur einer dieser drei Namen angezeigt wird, verwenden Sie den folgenden Befehl
# netsat -a --numeric-ports # netsat -a --numeric-hosts # netsat -a --numeric-users
6. Netstat-Informationen kontinuierlich ausgeben
netstat gibt jede Sekunde Netzwerkinformationen aus.
# 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. Adressfamilien anzeigen, die das System nicht unterstützt (Adressfamilien)
netstat --verbose
Am Ende der Ausgabe erscheint die Folgende Informationen
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. Kernrouting-Informationen anzeigen 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
Hinweis: Verwenden Sie netstat -rn, um das numerische Format anzuzeigen und Fragen Sie nicht den Hostnamen ab.
9. Finden Sie den Port, auf dem das Programm ausgeführt wird.
Es können nicht alle Prozesse gefunden werden und diejenigen ohne Berechtigung werden nicht angezeigt. Verwenden Sie root Berechtigungen zum Anzeigen aller Informationen.
# 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 -
Ermitteln Sie den Prozess, der auf dem angegebenen Port ausgeführt wird
# netstat -an | grep ':80'
10. Zeigen Sie die Netzwerkschnittstellenliste an
# 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
Das obige ist der detaillierte Inhalt vonEine ausführliche Diskussion über den Befehl netstat unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!