web-dev-qa-db-ja.com

SSH接続はネットワークの再起動にどのように耐えますか?

Linux SSHシェルから/etc/init.d/network restartと入力して、ネットワークサービスを再起動します。

ネットワークサービスがダウンしたため、SSH接続が停止することを期待しています。しかし、そうではありません。とてもかっこいい。しかし、Linuxはこれをどのように実現するのでしょうか。サービスの再起動後もSSH接続を維持するにはどうすればよいですか?

64
Serge Wautier

特別なことは何もしません。 TCP接続がタイムアウトするのにかかる時間よりも短い時間でネットワークが再起動するため、TCP接続は、一時的なネットワークの停止に耐えるのと同じ方法で「停止」に耐えます。

Windowsが同じことをしない唯一の理由は、ネットワークインターフェイスがダウンしたときにWindowsがTCP接続を明確にリセットするためです。 TCPは、一時的なネットワークの停止に耐えるために特別に設計されたため、これは、少なくとも間違いなく、かなり骨の折れることです。

70
David Schwartz

SSHDは、接続時に子プロセスをフォークします。 SSHDまたはネットワーク全体が再起動された場合、この子プロセスは停止しません。これが、sshやその設定を更新できる理由です。service sshd restartでも、古い設定で古いsshセッションに接続したままにします。それを除けば、sshは小規模なネットワーク障害からうまく回復します。

12
Nils