23.5 異常ログアウト後にTCP接続が終了しない

ワークステーションのクラッシュまたは停電のために突然に停止したクライアントホストを、OES Linuxサーバが検出できないことがあります。しかし、接続はアクティブのままで、デフォルトのタイムアウト時間(12~15分間ほど)が経過してから切断されます。同時接続数を1に設定している場合は、接続を手動で終了するか、またはタイムアウトまでの時間を予測して待ってから再びログインすることをお勧めします。この状況は、ウォッチドッグプロセスが接続を正常に閉じることができなかったときに発生します。そのため、同時接続数が1に設定されていて、接続がウォッチドッグによって正常に閉じられていないと、ユーザはログインすることができません。Linuxカーネルには、keepaliveプローブのサーバ側動作を変更するための3つのパラメータが提供されています。TCPレベルで対処方法を実行するには、これらのパラメータを使用します。

これらのパラメータは/proc/sys/net/ipv4/ディレクトリにあります。

余分なネットワークトラフィックが大量に発生せずかつ問題は解決されるように、これら3つのパラメータを変更します。一例として、次のように変更できます(検出時間は3分)。

メモ:パラメータ設定値に注意し、すでに有効である接続の設定をしないようにします。

設定はファイルが変更された直後に有効になります。どのサービスも再起動する必要はありません。ただし、設定は現行のセッションにのみ有効です。サーバを再起動すると、設定はデフォルト設定に戻ります。

設定を(再起動後も)永続的なものにするには、以下の手順を行います。

次のエントリを/etc/sysctl.confに追加します。

すべてのクライアントおよびサーバはLAN経由で接続されている場合にのみ、上記の設定を推奨します。