检查并自动重新建立反向ssh隧道

问题描述 投票:0回答:1

我正在与$ ssh -fN -R 19999:localhost:22 -i aws-mycert.pem [email protected]建立一个反向隧道,并且需要确保它在服务器重置时保持运行。如何在cron脚本中检查连接,然后在需要时以自动方式重新建立连接?

amazon-s3 cron ssh-tunnel dyndns
1个回答
1
投票

一种简单的方法是使用Netcat。命令nc -z localhost 19999将检查本地端口19999中是否有内容正在侦听,因此您可以使用:nc -z localhost 19999 || ssh -fN -R 19999:localhost:22 -i aws-mycert.pem [email protected]在需要时重新创建隧道。

但是,这只会检查隧道是否已启动,但可能是陈旧的。最好的解决方案是使用autossh。只需将其安装在您的机器中并使用:

autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -fN -R 19999:localhost:22 -i aws-mycert.pem [email protected]

然后,您只需在服务器启动时运行此命令,这取决于您的分发。

您可以在https://www.everythingcli.org/ssh-tunnelling-for-fun-and-profit-autossh/找到有关使用autossh的更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.