Saltar al contenido

¿Cómo me deshago de los sockets en el estado FIN_WAIT1?

Solución:

Solución 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

Solucion 2:

Debería poder establecer el tiempo de espera con /proc/sys/net/ipv4/tcp_fin_timeout.

Realmente no parece haber ninguna forma de borrar el socket manualmente.


Solución 3:

Parece que la configuración tcp_orphan_retries controla cuántos intentos se realizarán antes de que se libere un puerto sin servidor. Era 0 aquí, después de establecerlo en 1, los puertos desaparecieron.

HTH


Solución 4:

/proc/sys/net/ipv4/tcp_fin_timeout es el tiempo de espera del estado FIN-WAIT-2, no FIN-WAIT-1. Deberías seguir la ruta tcpkill o puedes intentar jugar con los tiempos de keepalive debajo /proc/sys/net/ipv4/tcp_keepalive_* para forzar una matanza por parte del SO.


Solución 5:

Ejecutando estos pasos bajo el ID de root y se me borró:

Capture la configuración del kernel para cambiar una variable

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

Establezca temporalmente el número máximo de huérfanos en 0

$ sysctl -w net.ipv4.tcp_max_orphans=0

Verifique para asegurarse de que el puerto problemático ya no esté en uso

$ netstat -np|grep 9716

Espere un poco y repita el paso anterior si es necesario hasta que el comando anterior no devuelva ninguna línea

Restablezca el parámetro del kernel tcp_max_orphans al valor original de la variable anterior

$ sysctl -w net.ipv4.tcp_max_orphans=$orig_orphans
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *