我以前在 Windows 中使用名为 TCPView 的工具来执行此操作:只需选择一个已建立的连接 (ESTABLISHED),然后选择“关闭连接”。我在 Mac OSX 或 Linux 上找不到此方法(我需要两者)。我知道的唯一方法是终止打开端口的进程。
我的主要用例是模拟连接中断来测试故障转移,例如拔掉电缆或丢失路由器或中间件的情况。
答案1
close()
您可以使用 gdb 和与连接对应的文件描述符将其附加到您的进程。您可以使用 找出文件描述符编号lsof -a -i4 -p $PID
。
答案2
tcpkill -i eth0 { expression }
(基本命令/选项)tcpkill -i eth0 port 21
(终止所有传出的 ftp(端口 21)连接)tcpkill host 192.168.1.2
或
tcpkill host hostname.domainname.com
(杀死所有到达或离开主机 192.168.1.2 的数据包)tcpkill ip host 192.168.1.2 and not 192.168.1.111
(杀死 192.168.1.2 与除 192.168.1.111 之外的任何主机之间的所有 IP 数据包)