web-dev-qa-db-ja.com

2時間ごとにピアによってソケットがリセットされました

クライアントは、tcpソケットを介してssl(openssl)を使用してサーバーに接続します。

進行中の通信がない場合、2時間後(および数分)、クライアントは「ソケットエラー。ピアによって接続がリセットされました」というメッセージを表示します。

この警告が表示されたらクライアントに新しい接続を開かせることで、これを数日間テストしました。パターンは2時間ごとに繰り返されます。クライアントとサーバーの両方でcronジョブを確認しましたが、これを実行している可能性のあるジョブは見つかりません。

ソケットサーバー(reactphp)は、ソケットが閉じられたことを認識していないことに注意してください。

2時間ごとに接続がリセットされる原因は何ですか?そうしている可能性のあるカーネル構成設定はありますか?

4
user1032531

TCPキープアライブ。未使用の場合は、2時間後に接続を切断します。簡単に変更できます。 http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html を参照してください。

簡単に言うと、/proc/sys/net/ipv4/tcp_keepalive_timeを介して公開されるカーネル調整可能な「tcp_keepalive_time」は、必要に応じてデフォルトの7200から変更できます。

5
steve