我的两台计算机之间的网络连接不可靠:有时活动的TCP连接由于我无法控制的原因而掉线。我想在两台机器之间建立可靠的TCP连接。
如果网络可靠,我将运行ssh -L 1234:localhost:1234 remotehost
,服务器侦听端口1234 remotehost
,并将客户端指向localhost:1234
。但是,如果ssh连接断开,则转发连接也将断开。如何安排自动恢复客户端和服务器之间的连接?
非解决方案:
- 这不适用于交互式应用程序,因此屏幕不适用。
- 这不只是自动地重新连接一个SSH隧道,拉autossh。我想继续使用相同的隧道式TCP连接,而不是开始新的连接。
- 原则上,VPN可以解决问题。但是,当我只想要一个TCP连接时,这似乎有些矫kill过正,而且我希望即使我在任一端都没有root权限,该解决方案也能起作用。
我对一个叫做rocks
那样的程序记忆犹新,但这似乎已经从网络上消失了。我对双方都对Linux最感兴趣(尽管我希望这个级别的程序可以移植到其他unices上),但是如果您知道一个在QNX和VMS之间工作的程序,那就更好了。
scp
。我根据您的端口转发示例响应ssh keepalive。回复:不稳定的下游跃点,除了创建一个具有更宽容的keepalive的ssh会话(即使用ServerAliveInterval > 0
和允许更多丢弃的keepalive ServerAliveCountMax > 3
)之外,您无能为力。NAT需要较低的Keepalive间隔。关键问题是确定问题所在并进行相应调整。放置选项,.ssh/config
使它们随时为您服务
rocks
执行......尽管这显然是一个真正的杂牌