当 SSH 连接结束时,SSH SOCKS 代理就会消失。监管进程可以重启该连接,但无法继续那些正在使用旧数据流的网站请求。

对于已经可用的 SSH 配置,autossh 可以在 OpenSSH 检测到服务器无响应时监管一个动态转发:

autossh -M 0 -N -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]

-M 0 会关闭 autossh 单独的监控端口机制。它依赖 SSH 退出,好让监管进程作出反应。server-alive 系列选项提供 SSH 层面的存活检查;它们并不会向你使用的每个目标请求页面。

在认证与转发正常工作之前,请让初始配置保持可见。autossh 的后台行为与普通 SSH 的 -f 不同:无人值守启动时,它无法停下来询问密码或密钥口令。它文档中记载的启动闸门还能区分当即的配置失败与稍后才中断的会话。

重连之后,本地监听器可能会重新可用。应用仍可能需要重试自己失败的操作。一次在收到响应之前被中断的上传,有一个应用层面的结果需要解决,而不只是重启一条缺失的隧道。

最后,健康的 SSH 传输并不证明网关能够访问某个特定网站。请把隧道的监管与使用它的任务的监控分开。

相关文章