GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Warum zeigt die „netstat“-Ausgabe viele Verbindungen im CLOSE_WAIT-Status?

Dieser Beitrag enthält Details zu TCP-Verbindungen, die den Zustand „CLOSE_WAIT“ melden. Die möglichen Zustandswerte für TCP-Sockets sind wie folgt:

BOUND         Gebunden, bereit zum Verbinden oder Zuhören.
GESCHLOSSEN        Geschlossen. Der Socket wird nicht verwendet.
SCHLUSS       Geschlossen, dann Fernabschaltung; wartet auf Bestätigung.
CLOSE_WAIT    Fernabschaltung; warten, bis der Socket geschlossen wird.
GERICHTET   Verbindung wurde hergestellt.
FIN_WAIT_1    Socket geschlossen; Verbindung beenden.
FIN_WAIT_2    Socket geschlossen; Warten auf Herunterfahren von der Fernbedienung.
LEERLAUF          Idle, geöffnet, aber nicht gebunden.
LAST_ACK      Fernabschaltung, dann geschlossen; wartet auf Bestätigung.
HÖREN        Auf eingehende Verbindungen warten.
SYN_RECEIVED  Aktive/initiierte Synchronisierung empfangen und Verbindung im Gange
SYN_SENT      Aktiver Versuch, eine Verbindung herzustellen.
TIME_WAIT     Warten Sie nach dem Schließen auf die erneute Übertragung der Fernabschaltung.

CLOSE_WAIT ‘Zustand bedeutet, dass das andere Ende der Verbindung geschlossen wurde, während das lokale Ende noch darauf wartet, dass die Anwendung geschlossen wird.

Einzelheiten

Der Zustand „CLOSE_WAIT“ bei TCP-Verbindungen tritt auf, wenn das System keinen Aufruf zum Schließen des Systems von der Anwendung erhalten hat, nachdem es vom anderen System eine Benachrichtigung („FIN“-Paket) erhalten hat, dass es seinen Endpunkt geschlossen hat. Mit anderen Worten bedeutet dies, dass das lokale Ende der Verbindung „FIN“ vom anderen Ende erhalten hat, das Betriebssystem jedoch darauf wartet, dass das Programm am lokalen Ende seine Verbindung tatsächlich schließt.

Das Problem besteht darin, dass ein Programm, das auf dem lokalen Computer ausgeführt wird, den Socket nicht schließt. Es handelt sich nicht um ein TCP-Tuning-Problem. Eine Verbindung kann für immer in „CLOSE_WAIT“ bleiben, während das Programm die Verbindung offen hält. Meistens tritt dieses Problem also aufgrund eines Anwendungsfehlers auf. Wenn die TCP/IP-Parameter jedoch nicht richtig eingestellt sind, bleiben geschlossene TCP/IP-Verbindungen sehr lange in verschiedenen „CLOSE“-Zuständen, die Dateideskriptoren aus dem Prozess nehmen. Um dieses Problem zu lösen, ist es manchmal notwendig, TCP/IP-Parameter in /etc/sysctl.conf einzustellen (wie etwa die net.ipv4.tcp_xxx-Parameter), damit TCP/IP-Verbindungen in kurzer Zeit geschlossen werden .


Cent OS
  1. Warum zeigt /etc/issue mir Ubuntu und nicht Lubuntu?

  2. Warum wird diese Shell-Pipeline beendet?

  3. Warum schlägt Git beim Push/Fetch mit zu vielen geöffneten Dateien fehl?

  4. Beim Ausführen von lsof -i werden viele Verbindungen in CLOSE_WAIT angezeigt? Sollte ich mir Sorgen machen

  5. Warum gibt slabtop -o nur die ersten 23 Zeilen zurück, wenn der Befehl weitergeleitet wird?

Warum zeigt „weniger“ keine fette Ausgabe?

Warum zeigt das Htop-Meter> 90 % an, während die Tabelle 0,0 % anzeigt?

Wie überprüfe ich, wie viele HTTP-Verbindungen derzeit geöffnet sind?

Warum zeigt mein System nur 3,2 GiB RAM an, wenn ich definitiv 4,0 GiB habe

Warum ist netstat veraltet?

Warum zeigt top eine andere Anzahl von Kernen an als cpuinfo?