反向 AutoSSH 工作,但代理的 LISTEN 端口随机失败

反向 AutoSSH 工作,但代理的 LISTEN 端口随机失败

我很难描述这个错误,抱歉冗长的解释:

我有一个成功、有效、稳定的反向 AutoSSH 解决方案,固定在客户端 Beagle 板和服务器之间。 beagle 板位于 GCN NATed 3G 连接上,服务器具有真实的可路由 IPv4 地址。我通过在服务器的 sshd_config 文件上设置“GatewayPorts Yes”来允许直接连接到我的服务(即直接通过充当代理的服务器)。

该解决方案工作得非常好,并且对于各种断开连接都非常耐用......除了这一点:即使在错误期间,反向 AutoSSH 会话仍然处于活动状态,但服务器上的网关端口保持沉默。我认为错误完全包含在服务器中。 AutoSSH 客户端永远不会看到该错误,也不会尝试更正它。

这是输出netstat-anp在服务器上。我在端口 64、65、66 上固定了三个反向 autoSSH 会话。请注意服务器侦听端如何丢失端口 64,它当前遇到错误。我对输出进行了简化和匿名化。事实上,反向端口数高达 30000。

AutoSSH服务器IP:1.1.1.1

AutoSSH 客户端 BeagleBoard 的 ISP IP(记住该设备实际上无可救药地位于 GNC 和 NAT 后面):2.2.2.2

我使用 AutoSSH 代理服务之一:3.3.3.3

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address         Foreign Address         State       PID/Program name

tcp        0      0 1.1.1.1:22            2.2.2.2:46154           ESTABLISHED -
tcp        0      0 1.1.1.1:22            2.2.2.2:54006           ESTABLISHED -
tcp        0      0 1.1.1.1:22            2.2.2.2:39334           ESTABLISHED -
tcp        0      0 1.1.1.1:65            3.3.3.3:29860           ESTABLISHED -
tcp6       0      0 :::65                 :::*                    LISTEN      -
tcp6       0      0 :::66                 :::*                    LISTEN      -
tcp6       0      0 :::22                 :::*                    LISTEN      -

*注意端口 64 丢失,但 AutoSSH 客户端固定了三个反向SSH 会话。在手动重置 ReverseSSH 会话之前,我无法访问端口 64 服务。

我能够从中恢复的唯一方法是通过我选择的任何方法终止现有的 SSH 隧道(等待 3G 提供商终止已建立的 SSH 会话、终止客户端上的 ssh 进程、弹跳网络端口、重新启动服务器上的 SSHD、重新启动客户端或服务器等...)。 AutoSSH 自动恢复,ReverseSSHed 服务重新出现在 LISTENING 端:

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address         Foreign Address         State       PID/Program name

tcp        0      0 1.1.1.1:22            2.2.2.2:46154           ESTABLISHED -
tcp        0      0 1.1.1.1:22            2.2.2.2:54006           ESTABLISHED -
tcp        0      0 1.1.1.1:22            2.2.2.2:39334           ESTABLISHED -
tcp        0      0 1.1.1.1:65            3.3.3.3:29860           ESTABLISHED -
tcp6       0      0 :::64                 :::*                    LISTEN      -
tcp6       0      0 :::65                 :::*                    LISTEN      -
tcp6       0      0 :::66                 :::*                    LISTEN      -
tcp6       0      0 :::22                 :::*                    LISTEN      -

*注意端口 64 在退回所有连接后已返回。

所有 ReverseSSHed 服务都会随机发生这种情况。这三种服务中的任何一种平均每天大约一次。

知道什么可能导致此问题或从哪里开始查看日志? SSH 日志并不表明失败。

感谢您的见解。

相关内容