如何杀死Windows僵尸TCP连接?


11

我正在xp上运行超越电视链接,连接到超越电视的Vista主机。Link程序在大约20分钟后挂起,对此我没有任何解决方法。发生这种情况时,使用tcpview,我看到主机从Link连接中剩余了大约200个僵尸tcp连接。我无法清除它们,它们来自同一不存在的过程。连接一直徘徊,直到我重新启动主机。重新启动是我发现重新连接beyondtv Link的唯一方法。我认为beyondtv中有一个错误会导致这种情况,但是我无法在他们的论坛上得到任何答案。但是无论如何,我想知道是否有办法杀死所有这些连接。

编辑:大约40分钟后,实际上累积了约3000个WAIT_CLOSE连接,然后客户端死亡。如果我关闭服务器应用程序,则所有这些套接字现在都显示为tcpview中的-non-existent-进程所拥有。可以理解的 但是,有没有办法在不重新启动的情况下关闭它们?


这里没有办法开始悬赏吗?我没有看到相应的按钮。
P锥子

问题解决2天后,您可以提供赏金:superuser.com/faq
quack quixote 09年

3
火。火或a弹枪。
Phoshi

1
@phoshi:或者从轨道上核弹。这是唯一可以确定的方法。
嘎吉吉x德09年

1
我更愿意以一种毁灭性的方式杀死自己:superuser.com/questions/54937/3d-windows-managers/55130#55130
DaveParillo

Answers:



7

CLOSE_WAIT表示该连接在另一端已关闭。

显然,beforetv不会检测到这种情况,而是继续将数据发送到另一端的应用程序。另一端无法通过此连接发送任何内容,因为它已经关闭了连接的一端。

解决方案是在以下位置设置TcpTimedWaitDelay条目

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters

此项确定TCP释放封闭的连接并重用其资源之前必须经过的时间。关闭和释放之间的时间间隔称为TIME_WAIT状态或2MSL状态。在这段时间内,与建立新连接相比,可以以更少的成本为客户端和服务器重新打开连接。

在我的机器上,默认情况下,它包含值-1,这意味着关闭的连接永远不会释放,这正是您所观察的行为。

我建议您将此条目的值设置为允许的30-300秒范围内。我认为300秒= 5分钟完全可以满足您的情况,而冻结计算机需要40分钟。


搜索TIME_WAIT将我带到这里。感谢您的解释和链接。
Technext

嗨,谢谢你的解释。它仍然没有关闭TCP连接。CLOSE_WAIT增加。我已将超时设置为30秒
aadi1295

1

通过1)禁用,然后2)重新启用网络接口,您可以强制Windows强制关闭所有TCP连接。如果可行,您可以对需要执行的步骤进行批处理脚本。

我已经从netsh实用程序(或类似工具)中通过命令行探索了一些方法来执行此操作,但是到目前为止,我还没有运气。

当然,解决此问题的最佳方法是修复损坏的应用程序。确保您正在尝试该应用程序的最新版本;不断烦扰开发人员;如果您已经是最新版本,请尝试查找该程序的旧版本。


我已将应用程序更新为最新版本,但没有帮助,并且附带了支持票。我尝试禁用网络属性,也尝试在设备管理器中将其卸载,并且WAIT_CLOSE连接的列表不受影响。这似乎是我无法触摸的操作系统中的某个列表。
P锥子

1

由于程序挂起,您可能正在获得这些CLOSE_WAIT会话-我无法确定您是否怀疑它们是原因,所以只想澄清一下。

我的猜测是他们不会永远流连;大概只有2小时5秒。我知道,似乎永远。您可以尝试将网络连接的KeepAliveTime(可能需要进行最后一次重新启动)调整为较小的时间,例如5分钟。您的程序挂起之后,这可能会帮助他们更快地消失。

或者,如果您知道一次可以可靠运行该程序10分钟,则可以定期重新启动它。不知道这些解决方案是否对您的特定情况有用;我同意〜quack的观点,您应该尽快放弃有问题的应用程序版本。


我认为该程序允许覆盖KeepAliveTime参数上的系统设置,因此它可能无济于事,但我同意可能值得尝试。进行调整可能会导致其他应用程序出现问题。
奎克吉x德09年

0

查看beyondtv是否正在产生另一个使连接保持打开状态的进程。如果发生这种情况,Process Explorer将向您显示。


我找不到任何其他流程。关闭beyondtv及其所有相关过程均无效。这些连接在进程中显示为<不存在>。该过程已退出,但连接不会关闭。
P锥子

我正在使用答案评级上/下按钮,无法返回到0,它是-1或1,所以我将其保留为1。这时最好在这个问题上回答0这个答案没有帮助-在发布此问题之前,我使用了进程浏览器和tcpview一段时间。
P锥子

0

是否有防火墙问题?可能是尝试和重试的连接不完整。

我将禁用两台计算机上的所有防火墙,如果有路由器,也将禁用其内部防火墙。


我之前也这样做过。重新运行该方案,没有效果,问题仍然存在。我正在看linksys路由器,但是,我将进行调查。
P锥子

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.