服务器访问互联网时出现“无法执行套接字上的操作,因为系统缺乏足够的...”

服务器访问互联网时出现“无法执行套接字上的操作,因为系统缺乏足够的...”

我在 Rackspace 服务器上托管的 Windows Server 2008 R2 上运行 ASP.NET 应用程序。突然出现问题。除了调用第三方 Web 服务(即访问互联网)的页面外,我的所有应用程序都运行正常。我得到了An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full。当我通过远程桌面登录服务器并访问互联网时,它显示“连接错误”。

统计 2015 年 12 月 22 日,

CLOSE_WAIT  5   
ESTABLISHED 146
TIME_WAIT   646750
LAST_ACK    1
LISTENING   30

答案1

你刚刚用完了 TCB(即TCP 句柄

原因可能有很多,例如:

端口泄漏您正在运行的任何商业软件 --> 解决方案:检查您正在运行的软件并应用任何可用的修补程序。端口耗尽攻击 --> 解决方案:询问您的托管提供商您的流量水平是否异常。部署的任何自定义软件上的端口泄漏 --> 解决方案:让您的开发人员检查他们是否在关闭 TCP 连接后释放 TCB。

TCP 连接关闭后,将进入 time_wait 状态。计算机将保持端口处于半关闭(原文如此)状态,以防出现任何延迟的数据包。它应保持此状态一段时间,定义为 2xMSL(最大段长度的两倍),默认值为 400ms(2x200ms)。在您的情况下,您要么以比完全关闭(和释放)连接更快的速度获得太多连接,要么由于某种原因根本没有释放这些连接。

由于 Rackspace 是一家托管主机,如果您只是想开始操作,我建议您让他们通过 ILO/DRAC 端口登录并重新启动计算机。

答案2

使用此命令查找罪魁祸首可执行文件

netstat -nbt

杀死该 exe 或停止服务,你就可以开始了

相关内容