D'accord, cela me fait flipper - j'en vois environ 1500-2500:
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
Ce nombre évolue rapidement.
J'ai une configuration iptables assez serrée, donc je n'ai aucune idée de ce qui peut provoquer cela. des idées?
Merci,
Tamas
Edit: Sortie 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 -
Réponses:
EDIT: tcp_fin_timeout NE CONTRÔLE PAS la durée TIME_WAIT, il est codé en dur à 60 s
Comme mentionné par d'autres, avoir des connexions
TIME_WAIT
est une partie normale de la connexion TCP. Vous pouvez voir l'intervalle en examinant/proc/sys/net/ipv4/tcp_fin_timeout
:Et changez-le en modifiant cette valeur:
Ou de façon permanente en l'ajoutant à /etc/sysctl.conf
De plus, si vous n'utilisez pas le service RPC ou NFS, vous pouvez simplement le désactiver:
Et éteignez-le complètement
la source
ss --numeric -o state time-wait dst 10.0.0.100
TIME_WAIT est normal. C'est un état après la fermeture d'un socket, utilisé par le noyau pour garder une trace des paquets qui peuvent avoir été perdus et arrivés en retard à la fête. Un nombre élevé de connexions TIME_WAIT est un symptôme d'avoir beaucoup de connexions de courte durée, pas de quoi s'inquiéter.
la source
Ce n'est pas important. Tout ce que cela signifie, c'est que vous ouvrez et fermez un grand nombre de connexions TCP Sun RCP (1 500 à 2 500 d'entre elles toutes les 2 à 4 minutes). L'
TIME_WAIT
état est ce dans quoi un socket entre lorsqu'il se ferme, pour empêcher les messages d'arriver pour les mauvaises applications comme ils le feraient si le socket était réutilisé trop rapidement, et pour quelques autres fins utiles. Ne t'en fais pas.(À moins, bien sûr, que vous n'exécutiez rien qui devrait traiter autant d'opérations RCP. Alors, inquiétez-vous.)
la source
Quelque chose sur votre système fait beaucoup de RPC (appels de procédure à distance) dans votre système (notez que la source et la destination sont localhost). Cela est souvent vu pour lockd pour les montages NFS, mais vous pouvez également le voir pour d'autres appels RPC comme rpc.statd ou rpc.spray.
Vous pouvez essayer d'utiliser "lsof -i" pour voir qui a ces sockets ouverts et voir ce qui le fait. C'est probablement inoffensif.
la source
tcp_fin_timeout
ne contrôle PAS leTIME_WAIT
retard. Vous pouvez le voir en utilisant ss ou netstat avec -o pour voir les minuteries de compte à rebours:même avec tcp_fin_timeout défini sur 3, le compte à rebours pour TIME_WAIT commence toujours à 60. Cependant, si net.ipv4.tcp_tw_reuse est défini sur 1 (
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
), le noyau peut réutiliser les sockets dans TIME_WAIT s'il détermine qu'il n'y aura aucun conflit possible dans TCP numérotation des segments.la source
J'ai aussi eu le même problème. J'ai mis plusieurs heures à découvrir ce qui se passe. Dans mon cas, la raison en est que netstat essaie de rechercher le nom d'hôte correspondant à l'IP (je suppose qu'il utilise l'API gethostbyaddr). J'utilisais une installation Linux intégrée qui n'avait pas /etc/nsswitch.conf. À ma grande surprise, le problème n'existe que lorsque vous effectuez réellement un netstat -a (découvert cela en exécutant portmap en mode verbeux et débogage).
Maintenant, ce qui s'est passé est le suivant: Par défaut, les fonctions de recherche essaient également de contacter le démon ypbind (Sun Yellow Pages, également connu sous le nom de NIS) pour demander un nom d'hôte. Pour interroger ce service, le portmapper portmap doit être contacté pour obtenir le port de ce service. Maintenant, le portmapper dans mon cas a été contacté via TCP. Le portmapper indique ensuite à la fonction libc qu'aucun service de ce type n'existe et que la connexion TCP est fermée. Comme nous le savons, les connexions TCP fermées entrent dans un état TIME_WAIT pendant un certain temps. Donc netstat intercepte cette connexion lors de l'inscription et cette nouvelle ligne avec une nouvelle IP émet une nouvelle requête qui génère une nouvelle connexion dans l'état TIME_WAIT et ainsi de suite ...
Afin de résoudre ce problème, créez un /etc/nsswitch.conf qui n'utilise pas les services rpc NIS, c'est-à-dire avec le contenu suivant:
la source