首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处于CLOSE_WAIT状态的孤立连接

处于CLOSE_WAIT状态的孤立连接
EN

Unix & Linux用户
提问于 2011-03-25 17:39:33
回答 1查看 139.6K关注 0票数 36

我有一台SLES机器,它将CLOSE_WAIT状态下的TCP连接积累起来,看起来是永远的。这些描述符最终占用了所有可用的内存。目前,我已经得到了3037个,但在最近匆忙重新启动之前,它要高得多。

有趣的是,它们不是来自本地端口的连接,我希望这些端口具有侦听过程。它们没有关联的PID,它们的计时器似乎已经过期。

代码语言:javascript
复制
# netstat -ton | grep CLOSE_WAIT
tcp      176      0 10.0.0.60:54882     10.0.0.12:31663      CLOSE_WAIT  off (0.00/0/0)
tcp       54      0 10.0.0.60:60957     10.0.0.12:4503       CLOSE_WAIT  off (0.00/0/0)
tcp       89      0 10.0.0.60:50959     10.0.0.12:3518       CLOSE_WAIT  off (0.00/0/0)

# netstat -tonp | grep CLOSE_WAIT
tcp       89      0 10.0.0.59:45598     10.0.0.12:1998       CLOSE_WAIT  -                   
tcp       15      0 10.0.0.59:60861     10.0.0.12:1938       CLOSE_WAIT  -                   
tcp        5      0 10.0.0.59:56173     10.0.0.12:1700       CLOSE_WAIT  -     

对于TCP堆栈或内核网络,我不是黑手,但根据手册页,TCP配置似乎是正常的,因为这些值是默认的:

代码语言:javascript
复制
# cat /proc/sys/net/ipv4/tcp_fin_timeout 
60
# cat /proc/sys/net/ipv4/tcp_keepalive_time 
7200

那是怎么回事?如果计时器过期了,堆栈不应该自动清除这些东西吗?随着这些事情的发展,我实际上是在给自己一个长期的DoS。

EN

回答 1

Unix & Linux用户

发布于 2011-03-26 02:20:43

不,CLOSE_WAIT没有超时时间。我认为这就是off在您的输出中的含义。

要退出CLOSE_WAIT,应用程序必须显式关闭套接字(或退出)。

如何打破关闭_等

如果netstat在process列中显示-

  • 您是否以适当的权限和功能(例如根用户)运行?
  • 它们可以是内核进程(例如nfsd)。
票数 20
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/10106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档