GNU/Linux >> Znalost Linux >  >> Linux

Obrovské množství TIME_WAIT připojení říká netstat

Řešení 1:

UPRAVIT: tcp_fin_timeout NEPLATÍ ovládání TIME_WAIT trvání, je pevně zakódováno na 60s

Jak zmínili jiní, mít některá spojení v TIME_WAIT je normální součástí TCP spojení. Interval můžete vidět prozkoumáním /proc/sys/net/ipv4/tcp_fin_timeout :

[[email protected] ~]# cat /proc/sys/net/ipv4/tcp_fin_timeout
60

A změňte ji úpravou této hodnoty:

[[email protected] admin]# echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

Nebo trvale přidáním do /etc/sysctl.conf

net.ipv4.tcp_fin_timeout=30

Také pokud nepoužíváte službu RPC nebo NFS, můžete je jednoduše vypnout:

/etc/init.d/nfsd stop

A úplně jej vypněte

chkconfig nfsd off

Řešení 2:

TIME_WAIT je normální. Je to stav po uzavření soketu, který používá jádro ke sledování paketů, které se mohly ztratit a mohly se objevit pozdě na straně. Vysoký počet TIME_WAIT připojení je příznakem získání mnoha krátkodobých připojení, není se čeho bát.

Řešení 3:

To není důležité. Znamená to pouze to, že otevíráte a zavíráte mnoho spojení Sun RCP TCP (1500–2500 každé 2–4 minuty). TIME_WAIT stav je to, do čeho soket přejde, když se zavře, aby se zabránilo příchodu zpráv pro nesprávné aplikace, jako by tomu bylo, kdyby byl soket znovu použit příliš rychle, a pro několik dalších užitečných účelů. Nedělejte si s tím starosti.

(Pokud ovšem ve skutečnosti nespouštíte nic, co by mělo zpracovávat tolik operací RCP. Pak si nedělejte starosti.)

Řešení 4:

Něco ve vašem systému provádí mnoho RPC (Remote Procedure Calls) ve vašem systému (všimněte si, že zdrojem i cílem je localhost). To je často vidět u lockd pro připojení NFS, ale můžete to vidět také u jiných volání RPC, jako je rpc.statd nebo rpc.spray.

Můžete zkusit použít "lsof -i", abyste viděli, kdo má tyto zásuvky otevřené, a uvidíte, co to dělá. Pravděpodobně je to neškodné.

Řešení 5:

tcp_fin_timeout neovládá TIME_WAIT zpoždění. Můžete to vidět pomocí ss nebo netstat s -o, abyste viděli odpočítávací časovače:

cat /proc/sys/net/ipv4/tcp_fin_timeout
3

# See countdown timer for all TIME_WAIT sockets in 192.168.0.0-255
ss --numeric -o state time-wait dst 192.168.0.0/24

NetidRecv-Q  Send-Q    Local Address:Port    Peer Address:Port                             
tcp  0       0         192.168.100.1:57516   192.168.0.10:80    timer:(timewait,55sec,0)   
tcp  0       0         192.168.100.1:57356   192.168.0.10:80    timer:(timewait,25sec,0)   
tcp  0       0         192.168.100.1:57334   192.168.0.10:80    timer:(timewait,22sec,0)   
tcp  0       0         192.168.100.1:57282   192.168.0.10:80    timer:(timewait,12sec,0)   
tcp  0       0         192.168.100.1:57418   192.168.0.10:80    timer:(timewait,38sec,0)   
tcp  0       0         192.168.100.1:57458   192.168.0.10:80    timer:(timewait,46sec,0)   
tcp  0       0         192.168.100.1:57252   192.168.0.10:80    timer:(timewait,7.436ms,0) 
tcp  0       0         192.168.100.1:57244   192.168.0.10:80    timer:(timewait,6.536ms,0)

i když je tcp_fin_timeout nastaveno na 3, odpočítávání pro TIME_WAIT stále začíná na 60. Pokud však máte net.ipv4.tcp_tw_reuse nastaveno na 1 (echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse ), pak jádro může znovu použít sockety v TIME_WAIT, pokud zjistí, že nedojde k žádným možným konfliktům v číslování segmentů TCP.


Linux
  1. Jak zjistím, kolik připojení HTTP je aktuálně otevřeno?

  2. Jak zjistím celkový počet TCP spojení pro daný port a časové období podle IP?

  3. TCP wrapper kromě volby

  1. Použijte makra Vim k automatizaci častých úkolů

  2. Je možné mít více výchozích bran pro odchozí připojení?

  3. Jak získáte dnsmasq, aby specifikoval alternativní servery DNS?

  1. Jak používat nástroj příkazového řádku sipcalc Linux

  2. Zabezpečení rpcbind (dříve portmap, port 111).

  3. Objevte živé hostitele v síti pod Linuxem