终止 Tcp 连接

终止 Tcp 连接

问候,

我正在 Linux 上测试应用程序,我们有一个与数据库连接相关的错误,由于数据库连接无法重新启动并且它位于远程机器上,我想终止 tcp 连接以中断连接并查看行为。

拔掉网线也不行!我无法物理访问这两台机器。

我考虑过使用 iptables,但我的系统上没有 iptables,所以我的项目经理告诉我使用 tcpkill 来完成此操作。

有人能告诉我在哪里可以获得 tcpkill rpm 并给我一些关于如何使用它的提示吗?

答案1

添加空路由ip 路由黑洞,假设你有root:

[root@centos6 ~]# nc -zv 192.168.15.100 80
Connection to 192.168.15.100 80 port [tcp/http] succeeded!
[root@centos6 ~]# ip route add blackhole 192.168.15.100
[root@centos6 ~]# nc -zv 192.168.15.100 80
nc: connect to 192.168.15.100 port 80 (tcp) failed: Network is unreachable
[root@centos6 ~]# ip route delete blackhole 192.168.15.100
[root@centos6 ~]# nc -zv 192.168.15.100 80
Connection to 192.168.15.100 80 port [tcp/http] succeeded!

编辑:如果您的机器上有并且应用程序通过 FQDN 连接到数据库,请添加 FQDN 并将 FQDN 指向虚拟地址。不过,TCP 连接可能需要一段时间才能断开。

再次编辑:好的,我错过了有关 tcpkill 的部分。:)

它在 EPEL 中可用,如果您运行的是 CentOS 或 Scientific Linux,您可以启用 EPEL 存储库以便找到它:

[root@kerberos rsync-dist]# yum whatprovides "*/tcpkill" --enablerepo=epel
Loaded plugins: refresh-packagekit
epel/metalink                                                                                                                                                              | 9.0 kB     00:00     
epel                                                                                                                                                                       | 4.3 kB     00:00     
epel/primary_db                                                                                                                                                            | 4.3 MB     00:05     
epel/filelists_db                                                                                                                                                          | 5.5 MB     00:07     
dsniff-2.4-0.9.b1.el6.x86_64 : Tools for network auditing and penetration testing
Repo        : epel
Matched from:
Filename    : /usr/sbin/tcpkill

确保使用 --enablerepo 以便您可以从那里安装,如下所示:

yum -y install dsniff --enablerepo=epel

您可以在此处阅读说明:

http://www.cyberciti.biz/howto/question/linux/kill-tcp-connection-using-linux-netstat.php

例子:

tcpkill ip host 192.168.1.2 and not 192.168.1.111

相关内容