web-dev-qa-db-ja.com

tcpkillユーティリティを使用してTCP接続を強制終了する方法

ESTABLISHED TCP tcpkillを使用した接続を強制終了しようとしています。接続はオープンHTTPS接続です。netstatに次のように表示されます:

tcp        0      0 X.X.X.X:55601         X.X.X.X:https    ESTABLISHED

したがって、 man page のように、次のように入力します。

$ tcpkill -i eth1 -9 port 443

Tcpkillユーティリティの出力:

tcpkill: listening on eth1 [port 443]

...そしてハングアップします。約15分待った後、何が起こっているのかわかりません。

私は何か間違ったことをしていますか?

11
Charles Salvia

Tcpkillが機能する(つまり、正しいシーケンス番号と送信元ポートを持つリセットパケットを作成する)には、トラフィックが必要です。何も印刷されない場合、トラフィックはありません。確認するには、tcpdump -i eth1 port 443

10
Mark Wagner

トラフィックのない確立された接続(JVMのデバッグセッション)を強制終了する必要がありました。

@Mark Wagnerの回答で説明されているtcpkillはそれを実行できませんでしたが、killcx 1.0.3( link )は実行しました(Ubuntu 10.04)。

いくつかのライブラリに依存するPerlスクリプトです。

編集

killcxで強制終了できなかった接続で、tcpkillkillcxの両方を組み合わせて実行しました:

LOCAL:PORTLからREMOTE:PORTRの場合に接続を発声します

  • 端末でtcpkillを開始します:tcpkill port PORTL。 Tcpkillはトラフィックのリッスンを開始します
  • 2番目のターミナルでkillcxを起動します:killcx REMOTE:PORTR
3
Bruno Grieder