我正在与$ ssh -fN -R 19999:localhost:22 -i aws-mycert.pem ubuntu@my.dyndns.com
建立反向隧道,并且需要确保即使在服务器重置后它仍能正常运行。如何在cron脚本中检查连接,然后在需要时自动重新建立连接?
答案 0 :(得分:1)
一种简单的方法是使用Netcat。命令nc -z localhost 19999
将检查本地端口19999是否正在侦听某些内容,因此您可以使用:nc -z localhost 19999 || ssh -fN -R 19999:localhost:22 -i aws-mycert.pem ubuntu@my.dyndns.com
来根据需要重新创建隧道。
但是,这只会检查隧道是否打开,但是它可能是陈旧的。最好的解决方案是使用autossh。只需将其安装在您的计算机上并使用:
autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -fN -R 19999:localhost:22 -i aws-mycert.pem ubuntu@my.dyndns.com
然后,您只需要在服务器启动时运行此命令,这取决于您的发行版。
您可以在https://www.everythingcli.org/ssh-tunnelling-for-fun-and-profit-autossh/上找到有关使用autossh的更多详细信息。