我正在使用在安装在远程位置的设备上启动时通过 autossh 启动的 SSH 隧道。到目前为止,一切都工作正常,但昨天连接部分中断,autossh 无法执行其操作。我很想弄清楚发生了什么以防止它再次发生。我必须处理 SLA 等问题。
详细信息如下:
设置
远程站点:
- 树莓派上的 Raspbian (debian wheezy) - 启动时运行的 Autossh 连接到我们的服务器并建立 3 个 ssh 隧道 隧道 1:常规隧道将树莓派上的本地端口转发到我们办公室的服务器 隧道 2:反向隧道打开一个我们服务器上的端口指向远程网络上的设备 隧道 3:反向隧道从我们服务器的环回 (127.0.0.1) 适配器打开一个端口,指向其环回适配器上树莓派的 ssh 端口。
所以基本上通过这个设置,我必须在我们的服务器中进行 ssh,然后我可以通过 ssh 进入每个远程设备。
SSH 服务器:
-Debian Wheezy - 服务器上没有防火墙/iptables,我们为此使用另一个盒子
问题
两条反向隧道(隧道 2 和 3)均停止工作。的输出
sudo netstat -atp | grep ssh
显示唯一仍打开的端口是隧道#1
当我终止服务器上隧道 #1 的 ssh 进程时,autossh 完成了它的工作,所有隧道都重新连接,但我更愿意不必这样做。
这是 autossh 的正常行为吗? autossh 在监控反向隧道时是否存在问题?
来自远程设备的系统日志
Sep 7 06:25:06 remote_hostname rsyslogd: [origin software="rsyslogd" swVersion="5.8.11" x-pid="1661" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Sep 8 06:25:05 remote_hostname rsyslogd: [origin software="rsyslogd" swVersion="5.8.11" x-pid="1661" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Sep 8 10:24:57 remote_hostname autossh[1428]: ssh exited with error status 255; restarting ssh
Sep 8 10:24:57 remote_hostname autossh[1428]: starting ssh (count 2)
Sep 8 10:24:57 remote_hostname autossh[1428]: ssh child pid is 24161
Sep 8 16:53:53 remote_hostname autossh[1428]: ssh exited with error status 255; restarting ssh
Sep 8 16:53:53 remote_hostname autossh[1428]: starting ssh (count 3)
Sep 8 16:53:53 remote_hostname autossh[1428]: ssh child pid is 30541
Sep 9 06:25:05 remote_hostname rsyslogd: [origin software="rsyslogd" swVersion="5.8.11" x-pid="1661" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
答案1
您正在使用各种方法来创建日志输出,
但不要提及最重要的方法:
该命令ssh
本身有一个“详细”选项-v
。
更有趣的是,它还有一个“非常详细”的选项-vv
。
哦,还有“非常非常详细”,-vvv
这实际上可能太详细了!
使用 -v、-vv 或 -vvv 选项运行 ssh 是否可以提供更多信息?
显示选项启用的详细程度:
$ ssh -v localhost true |& wc -l
56
$ ssh -vv localhost true |& wc -l
122
$ ssh -vvv localhost true |& wc -l
282