2017-11-02 14 views
1

片面のみの接続をリセットする方法やツールはありますか? たとえば、tcpkillはRSTパケットを両側に送信しますが、接続が半分開いたままになっている場合をシミュレートする必要があります。クライアントは接続を閉じましたが、サーバーはそれを知りません。の片側を閉じますSocketから取得した入力ストリームまたは出力ストリームにclose()を呼び出して、Javaプログラムで--reject-with tcp-resetTCP接続の片面をリセットする

答えて

1

iptablesの設定は、いくつかの短いタイムアウトによって、それは拒否クライアントパケットを開始したとき、また役に立つことができ接続。

は、しかし、あなたが求めているように見える場合は、1つのアプリケーション

私の知る限り、他のproccessに属するTCP/IP接続できる「ハーフクローズ」、通常の使用スペースのアプリケーション(Javaやありません)別のアプリケーションのソケットを閉じたり閉じたりすることはできません。確かにUNIX/Linuxシステムではありません。特権ユーザー空間アプリケーションの場合は、

これにより、生パケットを注入することによって機能するtcpkillのようなツールが残ります。あなたのJavaアプリケーションが特権を持っていれば、「汚い作業」を行うためにネイティブライブラリ(例えばjpcap)を使って、Javaで同じ種類のことを実行することは可能です。しかし、またはそれと同等のものを実行するには、単にProcess.exec(....)を使用する方が簡単です。 --reject-with tcp-reset

私はそれをしないだろう。いくつかの短いタイムアウトによって、それがクライアントパケットの拒否を開始するとき


iptablesの設定は、また、有用である可能性があります。システムや仮想マシンをiptables構成にしておくと、問題が発生するか、悪化する危険性があります。

+0

ありがとう、おそらくjpcapは行く方法です。 –