
Autossh 是一个允许您自动重新启动 SSH 隧道的实用程序,如果它们被断开或中断。在本文中,我们将解释如何在 Linux 上安装和使用 Autossh 实用程序。
安装 Autossh
Autossh 在大多数 Linux 发行版的包存储库中都可以直接使用。比如在 Debian 中,执行如下命令:
sudo apt-get install autossh
建立 SSH 隧道
首先,我们需要建立一个它可以管理的 SSH 隧道。在本例中,我们将创建一个转发本地 8080 端口到远程服务器 80 端口的隧道。
ssh -L 8080:localhost:80 remote-user@remote-server
该命令将建立到远程服务器的 SSH 连接并创建一条隧道,从您的本地机器 8080 端口转发流量到远程服务器上的 80 端口。
SSH 隧道建立成功后,可以打开浏览器进行测试。导航到 http://localhost:8080,如果一切正确正常,您应该看到远程服务器的默认 web 页面。
使用 Autossh 管理 SSH 隧道
当隧道断开或中断时,可以使用 Autossh 来自动重启隧道。
要使用 Autossh,我们需要修改用于创建隧道的 SSH 命令。这里有一个例子:
autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N -f -L 8080:localhost:80 remote-user@remote-server
这个命令类似于我们创建SSH 隧道的命令,但它包括一些额外的选项,告诉 Autossh 如何管理隧道。
-M 0
告诉 Autossh 使用内置的监视端口来检测 SSH 隧道是否已断开连接。
-o ServerAliveInterval 30 -o ServerAliveCountMax 3
告诉 Autossh 每隔 30 秒发送 keepalive 数据包,并且如果连续三个 keepalive 包失败,尝试重新连接。
-N -f
告诉 SSH 在后台创建隧道,而不执行任何远程命令。
测试 Autossh
要测试 Autossh,可以断开互联网连接或通过按 CTRL + C 手动停止 SSH 隧道。Autossh 应该检测到隧道已断开连接,并自动重新启动隧道。
您可以通过在 web 浏览器中导航到 http://localhost:8080 来验证隧道是否已经重新启动。
