GNU/Linux >> Znalost Linux >  >> Linux

Jak se zbavím soketů ve stavu FIN_WAIT1?

Řešení 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

Řešení 2:

Měli byste být schopni nastavit časový limit pomocí /proc/sys/net/ipv4/tcp_fin_timeout .

Opravdu se nezdá, že by existoval způsob, jak vymazat zásuvku ručně.

Řešení 3:

Zdá se, že nastavení tcp_orphan_retries řídí, kolik pokusů bude provedeno, než bude uvolněn port bez serveru. Tady to bylo 0, po nastavení na 1 byly porty pryč.

HTH

Řešení 4:

/proc/sys/net/ipv4/tcp_fin_timeout je časový limit stavu FIN-WAIT-2, nikoli FIN-WAIT-1. Měli byste jít cestou tcpkill nebo si můžete zkusit pohrát s časy udržování života pod /proc/sys/net/ipv4/tcp_keepalive_* vynutit zabití SO.

Řešení 5:

Spuštěním těchto kroků pod root ID a vymazáno:

Zachyťte nastavení jádra, které se má změnit, do proměnné

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

Dočasně nastavte maximální počet sirotků na 0

$ sysctl -w net.ipv4.tcp_max_orphans=0

Zkontrolujte, zda se problematický port již nepoužívá

$ netstat -np|grep 9716

Chvíli počkejte a v případě potřeby opakujte výše uvedený krok, dokud výše uvedený příkaz nevrátí žádné řádky

Resetujte parametr jádra tcp_max_orphans zpět na původní hodnotu z proměnné výše

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

Linux
  1. tcpdump:jak získat grepable výstup?

  2. Jak naplánuji restart na Linuxu?

  3. jak získat seznam připojených wifi klientů v OpenWrt 10.03?

  1. `^m` A jak se toho zbavit?

  2. Jak získat velikost adresáře v Linuxu

  3. Jak zjistit využití CPU

  1. Jak dostat ps do tiskové skupiny?

  2. Jak zruším nastavení nebo se zbavím funkce bash?

  3. Jak zálohovat soubory crontab -e?