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