我使用 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 可能提供類似的功能。