如何使用tcpkill实用程序杀死TCP连接

我试图用tcpkill杀死ESTABLISHED TCP连接。 连接是一个开放的HTTPS连接。 它出现在netstat上:

 tcp 0 0 XXXX:55601 XXXX:https ESTABLISHED 

所以,根据手册页 ,我input:

 $ tcpkill -i eth1 -9 port 443 

tcpkill实用程序输出:

 tcpkill: listening on eth1 [port 443] 

然后只是挂起 等了15分钟后,我不确定这里发生了什么事情。

我做错了什么?

为了让tcpkill工作(即,制作一个具有正确序列号和源端口的重置包),必须有stream量。 如果没有更多的印刷,那么没有交通。 validation你可以运行tcpdump -i eth1 port 443

我必须杀死没有stream量的已build立的连接(JVM上的debugging会话)。

tcpkill在@Mark Wagner答案中解释不了,但是killcx 1.0.3( 链接 )没有(Ubuntu 10.04)。

这是一个perl脚本,它依赖于一些库。

编辑

在一个不能用killcx杀死的连接上, tcpkillkillcx的组合killcx了它:

说出从LOCAL:PORTLREMOTE:PORTR

  • 在terminal启动tcpkill: tcpkill port PORTL 。 Tcpkill将开始监听stream量
  • 在第二个terminal启动killcx: killcx REMOTE:PORTR

这似乎是端口55601上的HTTPS传出连接,而不是443上的监听器。 我知道,Web浏览器使用HTTP协议在端口80上连接出来,他们从服务器获得3000-4000端口范围内的返回stream量。 你显然试图杀死一个挂起的HTTPS线程端口从您的服务器进程?

是TCPKILL只能杀死一个监听端口,如443,而不是一个“build立”的响应端口?

你们都已经超越了它,试试这个。

 #!/bin/bash # pass ip in on command line tcpkill host $1 & sleep 9 pkill tcpkill