回答:
終了する接続をタイムアウトさせるには、を使用できます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本当に小さな数に変更しました