Saltar al contenido

¿Cómo elimino una conexión de socket CLOSE_WAIT?

Solución:

CLOSE_WAIT significa que su programa aún se está ejecutando y no ha cerrado el socket (y el kernel está esperando que lo haga). Agregar -p para netstat para obtener el pid, y luego matarlo con más fuerza (con SIGKILL si es necesario). Eso debería deshacerse de tu CLOSE_WAIT enchufes. También puedes usar ps para encontrar el pid.

SO_REUSEADDR es para servidores y TIME_WAIT sockets, por lo que no se aplica aquí.

Como lo describe Crist Clark.

CLOSE_WAIT significa que el extremo local de la conexión ha recibido un FIN del otro extremo, pero el sistema operativo está esperando que el programa en el extremo local cierre realmente su conexión.

El problema es que su programa que se ejecuta en la máquina local no cierra el socket. No es un problema de ajuste de TCP. Una conexión puede (y correctamente) permanecer en CLOSE_WAIT para siempre mientras el programa mantiene abierta la conexión.

Una vez que el programa local cierra el socket, el sistema operativo puede enviar el FIN al extremo remoto que lo cambia a LAST_ACK mientras espera el ACK del FIN. Una vez que se recibe, la conexión finaliza y se desconecta de la tabla de conexiones (si su extremo está en CLOSE_WAIT, lo hace no terminan en el estado TIME_WAIT).

También tengo el mismo problema con un servidor Tomcat más reciente (7.0.40). No responde una vez durante un par de días.

Para ver las conexiones abiertas, puede usar:

sudo netstat -tonp | grep jsvc | grep --regexp="127.0.0.1:443" --regexp="127.0.0.1:80" | grep CLOSE_WAIT

Como se menciona en esta publicación, puede usar /proc/sys/net/ipv4/tcp_keepalive_time para ver los valores. El valor parece estar en segundos y el valor predeterminado es 7200 (es decir, 2 horas).

Para cambiarlos, debes editar /etc/sysctl.conf.

Open/create `/etc/sysctl.conf`
Add `net.ipv4.tcp_keepalive_time = 120` and save the file
Invoke `sysctl -p /etc/sysctl.conf`
Verify using `cat /proc/sys/net/ipv4/tcp_keepalive_time`
¡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 *