autossh で SSH SOCKS トンネルを再接続する
SSH の生存確認を備えた autossh を使い、トンネルの再接続がアプリケーションの古い接続を復元するわけではないことを理解してください。
SSH SOCKS プロキシは、その SSH 接続が終わると消えます。スーパーバイザはその接続を再起動できますが、古いストリームを使っていたすべてのウェブサイト要求を再開できるわけではありません。
すでに動作している SSH 構成では、OpenSSH が応答しないサーバーを検知するあいだ、autossh が動的転送を監督できます。
autossh -M 0 -N -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]
-M 0 は autossh の独立した監視ポート機構を無効にします。これは、スーパーバイザが反応できるように SSH が終了することに依存します。server-alive 系のオプションは SSH レベルでの生存確認を提供しますが、利用する各宛先にページを要求するものではありません。
認証と転送が機能するまでは、初期設定を目に見える状態に保ってください。autossh のバックグラウンド動作は素の SSH の -f とは異なります。無人で起動した場合は、パスワードや鍵のパスフレーズを尋ねるために停止できません。また、文書化されている起動ゲートは、即時の設定失敗と、後から壊れたセッションとを区別できます。
再接続後、ローカルのリスナーは再び利用できるようになります。それでもアプリケーション側で、失敗した自分の操作を再試行する必要があるかもしれません。応答を受け取る前に中断されたアップロードには、単に失われたトンネルを再起動するのではなく、アプリケーション層で解決すべき結果があります。
最後に、SSH トランスポートが健全であることは、ゲートウェイが特定のウェブサイトに到達できる証拠にはなりません。トンネルの監督と、それを使う処理の監視は分けてください。