挂起后自动重新连接到 ssh

挂起后自动重新连接到 ssh

我使用 ssh 作为 SOCKS5 代理,连接到我的个人服务器。当我的系统挂起或失去互联网连接时,ssh 最终会超时,迫使我手动重新连接。如何将我的系统配置为在建立互联网连接后立即自动重新连接?

答案1

我曾经有一个“反向 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 可能提供类似的功能。

相关内容