我曾經在 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 封包)