web-dev-qa-db-ja.com

autosshが時々スタックするのを防ぐ方法は?

autosshを使用してリバースsshトンネルを構築していますが、時々トンネルが機能しなくなり、autosshを強制終了してから再起動する必要があります。

/etc/cron.d/autossh
@reboot autossh -f -nNT -R 3269:intranet.example.com:3269 public.example.com &

autosshは奇妙な状態のままであるようです。この場合、転送されたポートは開いたままですが、反対側から応答がありません。 autosshを再起動することにより、これは解決されます。

この問題の発生を防ぐにはどうすればよいですか?

12
sorin

ServerAliveInterval(値は秒単位)を使用して、sshclientを作成し、暗号化されたパケットでnull(キープアライブ)パケットを送信します。切断された接続を検出するために、頻繁にチャネルを作成します。

/etc/cron.d/autossh
@reboot autossh -f -nNT -R 3269:intranet.example.com:3269 -o ServerAliveInterval=30 public.example.com &

server/etc/ssh/sshd_configに対応するClientAliveInterval設定もおそらく設定して、サーバーがデッドクライアント接続もドロップするようにする必要があります。

# Drop dead client connections after 10 minutes of inactivity
ClientAliveInterval 600
5
Tyson