我无法找到我将尝试实现的简单事情的答案:
一旦与我的 linux 服务器建立了 tcp 连接,假设 ssh/tcp 22 或 x11/tcp 6000 显示 -> 如何在不 终止进程(sshd/x11 显示服务器)的情况下关闭此连接 。
我也看到了一些使用 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 可以在这里找到:http://killcx.sourceforge.net/
它“窃取”来自外部主机(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
但是,最好有一个更简单的解决方案。
关于linux - 在 Linux 上关闭已建立的 TCP 连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33198881/