我有一个 SSH 代理服务器。通常,我像这样连接到服务器:
ssh proxy-server -D 7070
但是,我的网络不稳定,我经常失去与代理服务器的连接。然后我必须切换到终端并再次输入此命令...
我想知道是否可以编写一个脚本,以便在检测到与代理服务器的连接丢失时可以尝试再次建立连接。但我不知道如何定期检测连接是否丢失。有人对此有想法吗?
谢谢!
我有一个 SSH 代理服务器。通常,我像这样连接到服务器:
ssh proxy-server -D 7070
但是,我的网络不稳定,我经常失去与代理服务器的连接。然后我必须切换到终端并再次输入此命令...
我想知道是否可以编写一个脚本,以便在检测到与代理服务器的连接丢失时可以尝试再次建立连接。但我不知道如何定期检测连接是否丢失。有人对此有想法吗?
谢谢!
您可以等到 ssh 退出并将其放入循环中:
while true
do
ssh -TN $1 -D 7070
done
但是弗洛林是对的,这并不意味着您的连接正常,挂起仍然会阻止您的 ssh 命令,而您并不真正知道。
我认为您可以检测网络资源是否仍然可用的唯一方法是向其发送数据。你可以做的是让守护进程每 2-3 秒 ping 一次代理服务器。一旦它检测到失去连接,让它运行一个脚本,将终端直接启动到与代理服务器的 ssh 连接(或继续尝试,直到代理可用)。也许还有更优雅的方式,但我想不出任何方式。