De acuerdo, esto me está asustando: veo alrededor de 1500-2500 de estos:
root@wherever:# netstat
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:60930 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60934 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60941 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60947 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60962 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60969 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60998 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60802 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60823 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60876 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60886 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60898 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60897 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60905 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60918 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60921 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60673 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60680 localhost:sunrpc TIME_WAIT
[etc...]
root@wherever:# netstat | grep 'TIME_WAIT' |wc -l
1942
Ese número está cambiando rápidamente.
Tengo una configuración de iptables bastante ajustada, así que no tengo idea de qué puede causar esto. ¿algunas ideas?
Gracias,
Tamas
Editar: Salida de 'netstat -anp':
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:60968 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60972 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60976 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60981 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60980 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60983 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60999 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60809 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60834 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60872 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60896 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60919 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60710 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60745 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60765 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60772 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60558 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60564 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60600 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60624 127.0.0.1:111 TIME_WAIT -
Respuestas:
EDITAR: tcp_fin_timeout NO controla la duración de TIME_WAIT, está codificado a 60 segundos
Como han mencionado otros, tener algunas conexiones
TIME_WAIT
es una parte normal de la conexión TCP. Puede ver el intervalo examinando/proc/sys/net/ipv4/tcp_fin_timeout
:Y cámbielo modificando ese valor:
O permanentemente agregándolo a /etc/sysctl.conf
Además, si no utiliza el servicio RPC o NFS, puede desactivarlo:
Y apágalo completamente
fuente
ss --numeric -o state time-wait dst 10.0.0.100
TIME_WAIT es normal. Es un estado después de que se cierra un socket, utilizado por el kernel para realizar un seguimiento de los paquetes que pueden haberse perdido y haber llegado tarde a la fiesta. Una gran cantidad de conexiones TIME_WAIT es un síntoma de obtener muchas conexiones de corta duración, no hay nada de qué preocuparse.
fuente
No es importante Todo lo que significa es que está abriendo y cerrando muchas conexiones TCP Sun RCP (1500-2500 de ellas cada 2-4 minutos). El
TIME_WAIT
estado es en lo que entra un socket cuando se cierra, para evitar que lleguen mensajes para las aplicaciones incorrectas como lo harían si el socket se reutilizara demasiado rápido, y para un par de otros propósitos útiles. No te preocupes por eso.(A menos que, por supuesto, en realidad no esté ejecutando nada que deba procesar tantas operaciones RCP. Entonces, se preocupe).
fuente
Algo en su sistema está haciendo muchas RPC (Llamadas de procedimiento remoto) dentro de su sistema (observe que tanto el origen como el destino son localhost). Eso se ve a menudo para lockd para montajes NFS, pero también puede verlo para otras llamadas RPC como rpc.statd o rpc.spray.
Puede intentar usar "lsof -i" para ver quién tiene esos sockets abiertos y ver qué lo está haciendo. Probablemente sea inofensivo.
fuente
tcp_fin_timeout
NO controla elTIME_WAIT
retraso. Puede ver esto usando ss o netstat con -o para ver los temporizadores de cuenta regresiva:incluso con tcp_fin_timeout configurado en 3, la cuenta regresiva para TIME_WAIT aún comienza en 60. Sin embargo, si tiene net.ipv4.tcp_tw_reuse configurado en 1 (
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
), el núcleo puede reutilizar sockets en TIME_WAIT si determina que no habrá posibles conflictos en TCP Numeración de segmentos.fuente
Yo también tuve el mismo problema. Me costó varias horas averiguar qué está pasando. En mi caso, la razón de esto fue que netstat intenta buscar el nombre de host correspondiente a la IP (supongo que está usando la API gethostbyaddr). Estaba usando una instalación de Linux incorporada que no tenía /etc/nsswitch.conf. Para mi sorpresa, el problema solo existe cuando realmente estás haciendo un netstat -a (lo descubriste ejecutando portmap en modo detallado y de depuración).
Ahora, lo que sucedió fue lo siguiente: Por defecto, las funciones de búsqueda también intentan contactar al demonio ypbind (Sun Yellow Pages, también conocido como NIS) para consultar un nombre de host. Para consultar este servicio, se debe contactar al portmapper portmap para obtener el puerto para este servicio. Ahora el portmapper en mi caso fue contactado a través de TCP. Portmapper le dice a la función libc que no existe tal servicio y que la conexión TCP se cierra. Como sabemos, las conexiones TCP cerradas entran en un estado TIME_WAIT por algún tiempo. Entonces, netstat detecta esta conexión cuando se enumera y esta nueva línea con una nueva IP emite una nueva solicitud que genera una nueva conexión en el estado TIME_WAIT y así sucesivamente ...
Para resolver este problema, cree un /etc/nsswitch.conf que no utilice los servicios rpc NIS, es decir, con los siguientes contenidos:
fuente