
Linux SSH シェルで、次のように入力して/etc/init.d/network restart
ネットワークサービスを再起動します。
ネットワークサービスが中断されたため、SSH接続が中断されると予想しました。しかしそれは真実ではない。とても素敵です。しかし、Linuxはこれをどのように達成しますか?サービスの再起動後にSSH接続をどのようにアクティブに保ちますか?
答え1
これを行うために特別なことはしません。ネットワークの再起動時間は、TCP接続がタイムアウトするのに必要な時間より短いため、TCP接続は、単純なネットワークの中断と同様に「中断」にも生き残ることができます。
Windowsが同じことをしない唯一の理由は、ネットワークインターフェイスが失敗したときにWindowsが特別にTCP接続をリセットするためです。 TCPは短いネットワークの中断に耐えるように特別に設計されているので、これは非常に愚かなことです。
答え2
SSHDは接続時に子プロセスを分岐します。 SSHD またはネットワーク全体が再起動した場合、子プロセスは終了しません。これがSSHおよび/またはその構成を更新し、以前のservice sshd restart
設定を使用して以前のSSHセッションへの接続を維持できる理由です。それに加えて、sshは小規模なネットワークの中断時にも回復します。