GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso eliminare i socket nello stato FIN_WAIT1?

Soluzione 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

Soluzione 2:

Dovresti essere in grado di impostare il timeout con /proc/sys/net/ipv4/tcp_fin_timeout .

Non sembra davvero esserci alcun modo per cancellare il socket manualmente.

Soluzione 3:

Sembra che l'impostazione tcp_orphan_retries controlli quanti tentativi verranno eseguiti prima che venga rilasciata una porta senza server. Era 0 qui, dopo averlo impostato su 1 le porte erano sparite.

HTH

Soluzione 4:

/proc/sys/net/ipv4/tcp_fin_timeout è il timeout dello stato FIN-WAIT-2, non FIN-WAIT-1. Dovresti seguire il percorso tcpkill o puoi provare a giocare con i tempi keepalive sotto /proc/sys/net/ipv4/tcp_keepalive_* per forzare un'uccisione da parte dell'SO.

Soluzione 5:

Eseguendo questi passaggi con l'ID root e per me è stato cancellato:

Cattura l'impostazione del kernel da modificare in una variabile

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

Imposta temporaneamente il numero massimo di orfani su 0

$ sysctl -w net.ipv4.tcp_max_orphans=0

Controlla per assicurarti che la porta problematica non sia più in uso

$ netstat -np|grep 9716

Aspetta un po' e ripeti il ​​passaggio precedente se necessario finché il comando precedente non restituisce alcuna riga

Reimposta il parametro del kernel tcp_max_orphans al valore originale dalla variabile precedente

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

Linux
  1. Come far funzionare Uuencode?

  2. Come ottenere l'ID processo del processo in background?

  3. Come ottenere l'utilizzo della CPU

  4. Come ottenere ps per stampare il gruppo?

  5. Come posso annullare l'impostazione o eliminare una funzione bash?

Come ottenere il tuo indirizzo IP su Linux

Come ottenere un elenco di directory in una zip?

Come sbarazzarsi di questa linea verticale in Geany

Come si pianifica un riavvio su Linux?

come ottenere un elenco dei client wifi connessi in OpenWrt 10.03?

Come scappare! nella parola d'ordine?