如何在 Linux 和 OSX 中关闭已建立的网络连接

如何在 Linux 和 OSX 中关闭已建立的网络连接

我以前在 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 数据包)

相关内容