OpenSSH:TCPKeepAliveオプションの間隔はどのくらいですか?

OpenSSH:TCPKeepAliveオプションの間隔はどのくらいですか?

sshd設定でオプションを指定できますTCPKeepAlive yes。これらのパケットは暗号化されていないため、偽装される可能性があります。オプションあり

ClientAliveInterval
ClientAliveCountMax
ServerAliveInterval
ServerAliveCountMax

接続が失われる前のコネクション保持パケットとタイムアウト(* CountMax)の間の間隔を指定できます。ここも参照してくださいsshd_configの `ServerAliveInterval`と `ClientAliveInterval`オプションは正確に何をしますか?

これでのみTCPKeepAlive有効にできます。それでは、TCPパケット転送間の時間間隔はどのくらいですか?失敗したパケットが数回経過すると、接続が切断され、閉じられたと見なされますか?デフォルト値は次のとおりです。

#TCPKeepAlive yes
#ClientAliveInterval 0
#ClientAliveCountMax 3

私が理解している限り:切断/非アクティブ接続の検出とクローズは、デフォルト設定のTCPKeepAliveオプションにのみ依存します。したがって、この価値を理解することは非常に重要です。

ベストアンサー1

OpenSSHがオペレーティングシステムによって実装された調整機能を提供しないのは、TCPKeepAliveおそらくパラメータをオンまたはオフにする唯一の便利な方法がないからですsetsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &on_off)

Linuxでは、マンページで説明されている/procように、ファイルシステムを介してデフォルト値を表示および変更できます。tcp(7)

grep -T . /proc/sys/net/ipv4/tcp_keepalive*
/proc/sys/net/ipv4/tcp_keepalive_intvl: 75
/proc/sys/net/ipv4/tcp_keepalive_probes:        9
/proc/sys/net/ipv4/tcp_keepalive_time:  7200

したがって、接続がアイドル状態と見なされるまで2時間待ってから、75秒間隔で9つのプローブを送信します。

Linux、FreeBSD、およびNetBSD(OpenBSDではない)では、ソケットごとにこれらのオプションを変更することもできますが、 setsockopt(fd, IPPROTO_TCP, TCP_KEEP{CNT,IDLE,INTVL}, &val) 前述のようにOpenSSHはこれを行いません。

おすすめ記事