回答:
終了する接続をタイムアウトさせるには、を使用できますiptables
。ただ、有効DROP
無効にしたいポートにルールを。したがって、アクティブな接続がアップしている間にSamabaサーバーのタイムアウトをシミュレートするには、サーバーで次のコマンドを実行します。
sudo iptables -A INPUT -p tcp --dport 445 -j DROP
DROP
ターゲットがで返答しませんRST
パケットまたはICMP
パケットの送信者にエラーが発生しました。クライアントはサーバーからのパケットの受信を停止し、最終的にタイムアウトします。
iptables
設定したかどうか/方法に応じて、INPUT
ルールセットの上位にルールを挿入できます。
ncat -v
て、正確に何ncat
が行われているかを確認します。それは私がタイムアウトにインストールバニラのUbuntu 12.04に2m7.291sました
最初の答えは正しいですが、これらのタイムアウトがどのように機能するかを発見したので、それらを観察してテストできます(ポートをブロックすることを忘れないでください!)。
TCPタイムアウトを処理する4つの最も興味深いカーネルパラメーターがあります。
/proc/sys/net/ipv4/tcp_keepalive_time
/proc/sys/net/ipv4/tcp_keepalive_intvl
/proc/sys/net/ipv4/tcp_keepalive_probes
/proc/sys/net/ipv4/tcp_retries2
現在、2つのシナリオがあります。
ソケットが開かれ、送信が試行されます-その後(反対側から応答がない場合)、システムは再試行しtcp_retries2
ます。デフォルト値のリタイアでは、2分以上かかり、ソケットがタイムアウトします。
ソケットが開かれてアイドル状態になっている-キープアライブの制限は興味深いものです。アイドル状態のソケットシステムではtcp_keepalive_time
、数秒間待機し、その後tcp_keepalive_probes
、tcp_keepalive_intvl
秒単位の間隔でTCP KEEPALIVEを送信しようとします。そして、その後すべてが失敗すると、ソケットはタイムアウトします。
netstat -o
/proc/sys/net/ipv4/tcp_keepalive_time
本当に小さな数に変更しました