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 に到着またはホスト 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 パケットを強制終了します)