掛起後自動重新連線到 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 可能提供類似的功能。

相關內容