Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关闭Linux上已建立的TCP连接_Linux_Sockets_Tcp - Fatal编程技术网

关闭Linux上已建立的TCP连接

关闭Linux上已建立的TCP连接,linux,sockets,tcp,Linux,Sockets,Tcp,我无法找到一个简单问题的答案,我将努力实现: 一旦与我的linux服务器建立了tcp连接,让我们假设ssh/tcp 22或x11/tcp 6000 display->如何在不中断进程的情况下关闭此连接(sshd/x11 display server)。 我也看到了一些使用iptables的建议,但它对我不起作用,连接在netstat-an中仍然可见。 如果有人能给我指出正确的方向就好了 到目前为止我试过什么 tcpkill: kills the process, not good for me

我无法找到一个简单问题的答案,我将努力实现: 一旦与我的linux服务器建立了tcp连接,让我们假设ssh/tcp 22或x11/tcp 6000 display->如何在不中断进程的情况下关闭此连接(sshd/x11 display server)。 我也看到了一些使用iptables的建议,但它对我不起作用,连接在netstat-an中仍然可见。 如果有人能给我指出正确的方向就好了

到目前为止我试过什么

tcpkill: kills the process, not good for me
iptables: does not close the established connection, but prevent further connections. 
谢谢你
DJ

好的,我发现至少有一个解决方案(killcx)是有效的。也许我们能找到一个更简单的解决办法。 此外,我还看到了来自“zb”的评论(谢谢),这可能也有用,但我找不到有效的语法,因为这个工具似乎非常有用,但很复杂。 下面是一个如何使用1的示例。对我有效的解决方案:

netstat -anp  | grep 22   
output: tcp  0  0 192.168.0.82:22         192.168.0.77:33597      VERBUNDEN   25258/0
iptables -A INPUT -j DROP -s 192.168.0.77 (to prevent reconnect)
perl killcx.pl 192.168.0.77:33597 (to kill the tcp connection)
killcx可在此处找到: 它“窃取”外部主机(192.168.0.77)的连接并将其关闭。所以这个解决方案可以很好地工作,但是如果你有压力的话,设置起来会很复杂。以下是所需的软件包:

apt-get install libnetpacket-perl  libnet-pcap-perl libnet-rawip-perl
wget http://killcx.sourceforge.net/killcx.txt -O killcx.pl

但是,最好有一个更简单的解决方案。

使用调试器连接到进程,然后在相应的文件描述符上调用
shutdown()
,然后调用
close()
,或者只调用
close()
。那么希望这个过程能处理好。