反向SSH隧道失败 – 寻找debuggingbuild议

我有一台Mac OS X服务器(称为防火墙后面的内部服务器 ,通过ssh -gnN -R *:remoteport:localhost:localport [email protected]进行反向端口转发,其中remote.server是域名/ IP一个公共服务器,我将其称为远程服务器 ,然后通过连接到remote.server:remoteport来连接到内部服务器。

定期地,隧道将失败,为此,我有一个内部服务器上的脚本,试图重新连接到远程服务器,直到成功。 这已经有好几次了。

但是最近,我遇到了一个内部服务器失去与远程服务器的连接的错误,而我在内部服务器上没有任何事情可以恢复连接。 必须重新启动远程服务器,然后通过脚本立即重新build立隧道。

远程服务器是运行CentOS 6基本安装的VPS。在过去的几个月里,没有任何configuration发生变化。 远程服务器在超过4个月的时间内无误地运行了隧道,然后在过去的12个小时内以这种方式失败了两次,需要两个小时才能重新启动。

什么样的事情会导致这种行为,我应该从哪里开始寻找问题?

客户端连接丢失的可能性很大,但远程服务器尚未closures连接。 这会导致端口冲突,因为旧的会话仍将在您试图绑定的端口上进行侦听。

login到远程服务器,确定过时的sshd进程,并发送HUP信号( kill -HUP )来终止会话及其关联的侦听器。

也就是说,在生产环境中,你不应该依赖这种“持久性”隧道。 (特别是如果您使用它来避开一个由于某种原因而存在的防火墙策略)