1. EinleitungNetstat ist ein Konsolenbefehl und ein sehr nützliches Tool zur Überwachung von TCP/IP-Netzwerken. Es kann Routingtabellen, aktuelle Netzwerkverbindungen und Statusinformationen jedes Netzwerkschnittstellengeräts anzeigen. Netstat wird zum Anzeigen statistischer Daten zu den Protokollen IP, TCP, UDP und ICMP verwendet und wird im Allgemeinen zum Überprüfen des Netzwerkverbindungsstatus jedes Ports auf dem lokalen Computer verwendet. 2. Beschreibung der AusgabeinformationenDie Ausgabe nach der Ausführung von netstat lautet wie folgt: [root@sy-suz-srv51 ~]# netstat Aktive Internetverbindungen (ohne Server) Proto Recv-Q Send-Q Lokale Adresse Fremde Adresse Status tcp 0 0 k8sdev.sui:sun-sr-https k8sdev.suiyi.com.:34880 SYN_RECV tcp 0 0 k8sdev.suiyi.com.c:2379 10.1.62.21:47910 ESTABILISIERT tcp 0 0 k8sdev.suiyi.com.c:2379 k8sdev.suiyi.com.:37790 HERGESTELLT tcp 0 0 sy-suz-srv:pcsync-https 10.1.62.162:49200 HERGESTELLT tcp 0 0 k8sdev.suiyi.com.:52866 k8sdev.sui:sun-sr-https HERGESTELLT tcp 0 0 k8sdev.suiyi.com.:37728 k8sdev.suiyi.com.c:2379 HERGESTELLT tcp 0 0 k8sdev.sui:sun-sr-https k8sdev.suiyi.com.:52852 ESTABILISIERT tcp 0 0 k8sdev.sui:sun-sr-https 10.1.62.162:32841 HERGESTELLT tcp 0 0 sy-suz-srv:pcsync-https sy-suz-srv51:60094 HERGESTELLT tcp 0 0 localhost:webcache localhost:40136 HERGESTELLT tcp 0 0 k8sdev.suiyi.com.:35466 10.1.62.21:sun-sr-https HERGESTELLT tcp 0 0 k8sdev.suiyi.com.:34358 10.1.62.21:sun-sr-https HERGESTELLT Aktive UNIX-Domänen-Sockets (ohne Server) Proto RefCnt Flags Typ Status I-Node Pfad unix 3 [ ] DGRAM 18442 /run/systemd/notify unix 2 [ ] DGRAM 18444 /run/systemd/cgroups-agent unix 2 [ ] DGRAM 23822 /var/run/chrony/chronyd.sock unix 8 [ ] DGRAM 18455 /run/systemd/journal/socket unix 18 [ ] DGRAM 18457 /dev/log unix 2 [ ] DGRAM 14151 /var/run/nscd/socket unix 2 [ ] DGRAM 584 /run/systemd/shutdownd unix 3 [ ] STREAM VERBUNDEN 124439388 /run/dbus/system_bus_socket unix 3 [ ] STREAM VERBUNDEN 42312 /run/systemd/journal/stdout unix 3 [ ] STREAM VERBUNDEN 39909 unix 3 [ ] STREAM VERBUNDEN 21675 unix 3 [ ] STREAM VERBUNDEN 47538 unix 3 [ ] STREAM VERBUNDEN 124585242 /var/run/docker/containerd/docker-containerd.sock unix 3 [ ] STREAM VERBUNDEN 21658 unix 2 [ ] STREAM VERBUNDEN 30160 unix 3 [ ] STREAM VERBUNDEN 33750 /run/systemd/journal/stdout unix 3 [ ] STREAM VERBUNDEN 124614293 @/containerd-shim/moby/c44e49ee0f86d8a4109afb176701795c64f44655abb1861275bbd3b2a9f76394/shim.sock unix 3 [ ] STREAM VERBUNDEN 124609611 @/containerd-shim/moby/a736ba153c07f0bbf099ae1a1069530e35bfa28ae93f8f235d6c35a6c5ed9ce7/shim.sock unix 3 [ ] STREAM VERBUNDEN 124601653 @/containerd-shim/moby/20d3fd59d03455d45b1da2636fca25d0edd79dac1947c17045a797eb8506157c/shim.sock Die Ausgabe von netstat kann in zwei Teile unterteilt werden 1. Aktive Internetverbindungen sind aktive TCP-Verbindungen, wobei sich „Recv-Q“ und „Send-Q“ auf die Empfangs- und Sendewarteschlange beziehen. Diese Zahlen sollten im Allgemeinen 0 sein. Wenn nicht, stapeln sich die Pakete in der Warteschlange. Diese Situation kann nur in sehr seltenen Fällen auftreten. 2. Aktive UNIX-Domänen-Sockets sind aktive UNIX-Domänen-Sockets (dasselbe wie Netzwerk-Sockets, können jedoch nur für die lokale Kommunikation verwendet werden und die Leistung kann verdoppelt werden). Erklärung der Spaltennamen: Proto: Zeigt das von der Verbindung verwendete Protokoll an. RefCnt: Gibt die Nummer des mit diesem Socket verbundenen Prozesses an. Typen: Zeigt den Typ der Steckdose an. Status: Zeigt den aktuellen Status der Steckdose an. Pfad: Gibt den Pfadnamen an, der von anderen Prozessen verwendet wird, die mit dem Socket verbunden sind. 3. Allgemeine Parameter von netstat-a (alle) zeigt alle Optionen an. Standardmäßig werden LISTEN-bezogene Optionen nicht angezeigt. -t (TCP) Zeigt nur TCP-bezogene Optionen an. -u (udp) Zeigt nur UDP-bezogene Optionen an. -n verweigert die Anzeige von Aliasnamen und wandelt alle angezeigten Zahlen in Zahlen um. -l listet nur die Dienste im Listen-Status auf. -p Zeigt den Namen des Programms an, das den entsprechenden Link erstellt. -r Routing-Informationen und Routing-Tabelle anzeigen -e Zeigt erweiterte Informationen an, wie etwa UID usw. -s Statistiken nach Protokoll -c Führen Sie den Netstat-Befehl in einem festen Zeitintervall aus. Die Zustände LISTEN und LISTENING können nur mit -a oder -l angezeigt werden. 4. Detaillierte Erklärung des Netstat-NetzwerkstatusEine normale TCP-Verbindung besteht aus drei Phasen: 1. TCP-Drei-Wege-Handshake; 2. Datenübertragung; 3. TCP-Vier-Wege-Handshake Wie in der Abbildung gezeigt: SYN : (Sequenznummern synchronisieren) Dieses Flag ist nur gültig, wenn eine TCP-Verbindung über einen Drei-Wege-Handshake hergestellt wird. Zeigt eine neue TCP-Verbindungsanforderung an. ACK : (Acknowledgement Number) ist ein Bestätigungszeichen für die TCP-Anfrage und zeigt dem Peer-System zusätzlich an, dass alle Daten erfolgreich empfangen wurden. FIN : (Endflag, FINish) wird verwendet, um eine TCP-Sitzung zu beenden. Der entsprechende Port ist jedoch noch geöffnet und bereit, nachfolgende Daten zu empfangen. LISTEN : Zuerst muss der Server einen Socket zum Lauschen öffnen. Der Status ist LISTEN. Der Socket lauscht auf eingehende Verbindungen. Lauscht auf Verbindungsanfragen von Remote-TCP-Ports. SYN_SENT : Der Client ruft connect über die Anwendung auf, um ein aktives Öffnen durchzuführen. Der Client-TCP sendet dann eine SYN-Anforderung zum Herstellen einer Verbindung, und der Status wird auf SYN_SENT gesetzt. Der Socket versucht aktiv, eine Verbindung herzustellen. Nach dem Senden der Verbindungsanforderung wartet er auf eine passende Verbindungsanforderung. SYN_RECV : Der Server sollte ein ACK senden, um das SYN des Clients zu bestätigen, und gleichzeitig ein SYN an den Client senden. Dann wird der Status auf SYN_RECV gesetzt. Eine Verbindungsanfrage wurde vom Netzwerk empfangen. Nach dem Empfangen und Senden einer Verbindungsanfrage wird auf die Bestätigung der Verbindungsanfrage gewartet. ESTABLISHED : Stellt eine offene Verbindung dar, beide Parteien können oder haben bereits Daten ausgetauscht. Der Socket hat eine etablierte Verbindung. Stellt eine offene Verbindung dar, Daten können an den Benutzer übertragen werden. FIN_WAIT1 : Die aktive Close-Anwendung ruft „close“ auf, sodass ihr TCP eine FIN-Anforderung zum aktiven Schließen der Verbindung sendet und dann in den Status FIN_WAIT1 wechselt. Der Socket wird geschlossen und die Verbindung wird beendet. Warten auf die Anforderung des Remote-TCP zum Herunterfahren der Verbindung oder auf die Bestätigung der vorherigen Anforderung zum Herunterfahren der Verbindung. CLOSE_WAIT : Nach dem Empfang von FIN sendet das passive TCP am geschlossenen Ende eine ACK als Antwort auf die FIN-Anforderung (der Empfang wird auch als Dateiende-Markierung an die Anwendung der oberen Ebene weitergegeben) und tritt in CLOSE_WAIT ein. Das Remote-Ende wurde heruntergefahren und wartet auf das Schließen des Sockets. Warten auf die vom lokalen Benutzer gesendete Anforderung zur Verbindungsunterbrechung. FIN_WAIT2 : Nachdem das aktive Ende zum Schließen eine ACK empfangen hat, wird FIN-WAIT-2 eingegeben, die Verbindung wird geschlossen und der Socket wartet auf eine Herunterfahranforderung vom Remote-Ende. Warten auf die Verbindungsunterbrechungsanforderung vom Remote-TCP. LAST_ACK : Nach einer gewissen Zeit beim passiven Schließen ruft die Anwendung, die das Dateiende-Zeichen empfängt, CLOSE auf, um die Verbindung zu schließen. Dies führt dazu, dass sein TCP ebenfalls ein FIN sendet und auf die ACK der anderen Partei wartet. Dann tritt LAST-ACK ein. Das Remote-Ende wurde heruntergefahren und der Socket ist geschlossen. Warten auf Bestätigung. Warten auf Bestätigung der Verbindungsunterbrechungsanforderung, die ursprünglich an das Remote-TCP gesendet wurde. TIME_WAIT : Nach dem Empfang von FIN am aktiven Abschlussende sendet TCP ein ACK-Paket und wechselt in den Zustand TIME-WAIT. Der Socket wartet nach dem Schließen darauf, Pakete zu verarbeiten, die sich noch im Netzwerk befinden. Warten Sie lange genug, um sicherzustellen, dass das Remote-TCP eine Bestätigung der Anforderung zur Verbindungsbeendigung erhält. SCHLIESSEN : Seltener. Beide Sockets sind heruntergefahren, aber wir haben noch nicht alle unsere Daten gesendet. Warten auf die Bestätigung des Remote-TCP, dass die Verbindung unterbrochen ist. GESCHLOSSEN : Nach dem Empfang des ACK-Pakets wechselt das passive Schließende in den geschlossenen Zustand. Die Verbindung ist beendet. Der Socket wird nicht verwendet. Es liegt kein Verbindungsstatus vor. Die Bildung des TIME_WAIT-Zustands erfolgt nur bei der Partei, die die Verbindung aktiv schließt. Nach dem Empfang der FIN-Anforderung von der passiven Abschlusspartei sendet die aktive Abschlusspartei erfolgreich eine ACK an die andere Partei und ändert dann ihren eigenen Status von FIN_WAIT2 in TIME_WAIT. Sie muss 2 Mal die MSL (Maximum Segment Lifetime, MSL ist die Zeit, die ein Datagramm im Internet existieren kann) warten, bevor beide Parteien Erst dann kann der Status auf GESCHLOSSEN geändert werden, um die Verbindung zu schließen. Derzeit wird der Status TIME_WAIT in RHEL 60 Sekunden lang aufrechterhalten. Verwandte Keepalive-Parameter für Linux1. tcp_keepalive_time – INTEGER Wie oft TCP Keepalive-Nachrichten sendet, wenn Keepalive aktiviert ist. (Standard: 2 Stunden) Die Zeitspanne in Sekunden, die eine Verbindung im Leerlauf sein muss, bevor TCP mit dem Senden von Keepalive-Testpaketen beginnt. 2. tcp_keepalive_probes – INTEGER Wie viele Keepalive-Tests TCP sendet, bis es entscheidet, dass die Verbindung unterbrochen ist. (Standardwert: 9) Die maximale Anzahl gesendeter TCP-Keepalive-Erkennungspakete. Der Standardwert ist 9. Wenn der Peer nach dem Senden von 9 Keepalive-Erkennungspaketen immer noch nicht antwortet, wird die Verbindung geschlossen. 3. tcp_keepalive_intvl – INTEGER Wie oft die Probes gesendet werden. Multipliziert mit tcp_keepalive_probes ist dies die Zeit, um eine nicht reagierende Verbindung zu beenden. Das Intervall zwischen dem Senden zweier TCP-Keepalive-Erkennungspakete beträgt standardmäßig 75 Sekunden. 5. Häufig verwendete netstat-bezogene Befehle1. Alle Ports auflisten #netstat -a 2. Alle TCP-Ports auflisten #netstat -at 3. Alle UDP-Ports auflisten #netstat -au 4. Nur den Abhörport anzeigen#netstat -l 5. Nur alle abhörenden TCP-Ports auflisten #netstat -lt 6. Listen Sie nur alle lauschenden UDP-Ports auf #netstat -lu 7. Alle abhörenden UNIX-Ports auflisten #netstat -lx 8. Statistiken aller Ports anzeigen #netstat -s 9. Statistiken der TCP- oder UDP-Ports anzeigen#netstat -st oder -su 10. PID und Prozessnamen in der Ausgabe anzeigen #netstat -p 11. Der Host, Port und Benutzername werden in der Netstat-Ausgabe nicht angezeigt (Host, Port oder Benutzer) Wenn Host, Port und Benutzername nicht angezeigt werden sollen, verwenden Sie netstat -n. Anstelle dieser Namen werden Zahlen verwendet. Außerdem kann die Ausgabe beschleunigt werden, da keine Vergleichsabfrage erforderlich ist. #netstat -an Wenn Sie nur nicht möchten, dass einer der drei Namen angezeigt wird, verwenden Sie den folgenden Befehl # netsat -a --numeric-ports # netsat -a --numeric-hosts # netsat -a --numeric-users 12. Kontinuierliche Ausgabe von Netstat-Informationen #netstat -c 13. Finden Sie den Port heraus, auf dem das Programm läuft #netstat -ap | grep ':80' 14. Zeigen Sie die IP-Adressen mit den meisten Verbindungen zu einem Service-Port an (Top 20) #netstat -nat | grep "10.1.62.23:443" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20 15. TCP-Liste verschiedener Status #netstat -nat |awk '{print $6}' Statistische Größe #netstat -nat |awk '{print $6}'|sort|uniq -c Sortierung #netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn #netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 16. Zählen Sie direkt die Anzahl der TCP-Listener #netstat -ant | wc -l Dies ist das Ende dieses Artikels über die detaillierte Einführung des netstat-Befehls unter Linux-Systemen. Weitere relevante Inhalte zum netstat-Befehl unter Linux-Systemen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
>>: HTML-Grundlagen-Zusammenfassungsempfehlung (Titel)
Vorbereitung Zuerst müssen Sie nodejs herunterlad...
Hyperlinks sind die am häufigsten verwendeten HTM...
Vorwort Die Verwendung von CSS zum Generieren gep...
In diesem Artikel wird der spezifische JavaScript...
Ziehen Sie zuerst das Image (oder erstellen Sie e...
Informationen zum Deinstallieren der zuvor instal...
1. Ursache Die Anforderung besteht darin, zwei Ze...
Inhaltsverzeichnis POM-Konfiguration Setting.xml-...
Im Allgemeinen wird die Maus als nach oben gericht...
Um die Version und das Tag des Bildes anzuzeigen,...
Auch wenn nicht Halloween ist, lohnt es sich, sic...
Einführung Im vorherigen Artikel wurden die einfa...
Heute hat mich bei der Arbeit ein Freund, den ich ...
Was ist Serdel userdel ist ein Low-Level-Tool zum...
Inhaltsverzeichnis 1. Titel 2. Code 3. Ergebnisse...