GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie werde ich Sockets im Zustand FIN_WAIT1 los?

Lösung 1:

# record what tcp_max_orphans's current value
original_value=$(cat /proc/sys/net/ipv4/tcp_max_orphans)

#set the tcp_max_orphans to 0 temporarily
echo 0 > /proc/sys/net/ipv4/tcp_max_orphans

# watch /var/log/messages
# it will split out "kernel: TCP: too many of orphaned sockets"
# it won't take long for the connections to be killed

# restore the value of tcp_max_orphans whatever it was before. 
echo $original_value > /proc/sys/net/ipv4/tcp_max_orphans

# verify with 
netstat -an|grep FIN_WAIT1

Lösung 2:

Sie sollten das Timeout mit /proc/sys/net/ipv4/tcp_fin_timeout einstellen können .

Es scheint wirklich keine Möglichkeit zu geben, den Socket manuell zu löschen.

Lösung 3:

Es scheint, dass die Einstellung tcp_orphan_retries steuert, wie viele Versuche unternommen werden, bevor ein serverloser Port freigegeben wird. Hier war es 0, nach dem Setzen auf 1 waren die Ports weg.

HTH

Lösung 4:

/proc/sys/net/ipv4/tcp_fin_timeout ist die Zeitüberschreitung des Zustands FIN-WAIT-2, nicht FIN-WAIT-1. Sie sollten mit der tcpkill-Route gehen oder Sie können versuchen, mit den Keepalive-Zeiten unter /proc/sys/net/ipv4/tcp_keepalive_* zu spielen um einen Kill durch die SO zu erzwingen.

Lösung 5:

Führen Sie diese Schritte unter Root-ID aus und es wurde für mich gelöscht:

Erfassen Sie die zu ändernde Kerneleinstellung in einer Variablen

$ orig_orphans=$(sysctl -a|grep tcp_max_orph|cut -f3 -d' ')

Setze die max. Waisenkinder vorübergehend auf 0

$ sysctl -w net.ipv4.tcp_max_orphans=0

Stellen Sie sicher, dass der problematische Port nicht mehr verwendet wird

$ netstat -np|grep 9716

Warten Sie etwas und wiederholen Sie den obigen Schritt bei Bedarf, bis der obige Befehl keine Zeilen zurückgibt

Setzen Sie den Kernelparameter tcp_max_orphans auf den ursprünglichen Wert aus der obigen Variablen zurück

$ sysctl -w net.ipv4.tcp_max_orphans=$orig_orphans

Linux
  1. Wie bekomme ich die Prozess-ID des Hintergrundprozesses?

  2. Wie kann ich den Tastaturstatus unter Linux abrufen?

  3. Wie bekomme ich ps zur Druckgruppe?

  4. Wie kann ich eine Bash-Funktion deaktivieren oder entfernen?

  5. Wie bekomme ich eine Liste der verbundenen WLAN-Clients in OpenWrt 10.03?

So erhalten Sie Ihre IP-Adresse unter Linux

Wie man diese vertikale Linie in Geany loswird

Wie plane ich einen Neustart unter Linux?

Wie sichert man crontab -e Dateien?

Wie man entkommt! im Passwort?

Wie bekomme ich ldapsearch auf Scientific Linux?