一時停止後にSSHに自動的に再接続

一時停止後にSSHに自動的に再接続

プライベートサーバーに接続するには、SSHをSOCKS5プロキシとして使用します。システムがハングしたり、インターネットが切断された場合は、最終的にsshがタイムアウトし、手動で再接続する必要があります。インターネットに接続するとすぐに自動的に再接続するようにシステムを設定するにはどうすればよいですか?

答え1

私はかつて次のような "reverse ssh"スクリプトを持っていました。

laddr=*:0
[email protected]
port=some_port

while :; do
    t0=$(date +%s)

    ssh -R "$laddr:localhost:22" \
       -o BatchMode=yes \
       -o CheckHostIP=no \
       -o ExitOnForwardFailure=yes \
       -o ServerAliveInterval=15 \
       -o ConnectTimeout=15 \
       -p "$port" "$host"

    t1=$(date +%s)
    sleep "$((60 / (t1 - t0 + 1)))"
done

接続が切断されるとすぐに接続を試みる必要がありますが、sshがすぐに終了する場合は、サーバーが破壊されたり、狂ったループが実行されないようにしばらく待ってください。

しかし、私はずっと前に、より良いもの、つまり「サービス」や他のものと交換しました。

Systemdとcoは同様の機能を提供できます。

関連情報