在 Ubuntu 中,当我打开与服务器的 ssh 连接并进入休眠模式时,恢复时,ssh 连接仍然存在。我可以立即在我的服务器上工作。
在 Windows 中,当我打开 ssh 连接并进入休眠和恢复状态时,ssh 连接就断开了。
每次休眠时(经常发生)都必须连接并登录,这很烦人
答案1
简短回答:不可能。详细回答:当您将计算机置于休眠状态时,Windows 会将内存中的所有内容保存到硬盘驱动器,然后完全关闭。这意味着所有连接(包括 SSH)都将被切断,并且必须在计算机重新开机时重新启动。您可能可以将其设置为在再次打开计算机时自动连接,但您仍然必须登录等等。
答案2
如果你使用屏幕在您的服务器上,至少您可以在再次登录时恢复会话。
如果您使用密钥而不是密码登录,那么您就可以自动登录。
或许甚至屏幕-r在您的登录脚本中,屏幕会自动恢复。
答案3
Windows 似乎确实会在休眠时关闭所有 TCP 连接,因此您需要通过无连接协议(例如 UDP)来隧道化会话,以克服其愚蠢之处。只需选择可以做到这一点的无数 VPN 之一即可。
编辑:还有另一种解决方案:在 VMware 中安装 Linux,然后从 Linux SSH 连接到您的服务器。但它仅在 VMware 网络适配器选项设置为“桥接”时才有效。如果您使用“NAT”,Windows 主机将断开连接。
我已合并上述解决方案,并在我的 Windows XP 主机和 Linux 客户机之间设置了 OpenVPN 隧道。现在我可以使用 PuTTY 连接到我的 Linux 主机,并从那里通过 ssh 连接到任何地方 - 并且当我休眠机器时不会断开连接。使用 OpenVPN 时要记住的一件重要事情是更改 TAP-Win32 适配器的“媒体状态”选项 - 默认为“应用程序控制”,并且需要“始终连接”。整个设置有点棘手,但我花了几个小时来找出如何做到这一点应该是值得的 - 不再有“网络错误:软件导致连接中止”,耶。
编辑 2:上面的内容可以稍微简化一下,不需要设置 VPN,我们只需要一个具有两个接口的 VMware:一个设置为“桥接”,一个设置为“仅主机”。使用仅主机接口连接到 Linux 客户机,然后使用桥接接口 ssh 到外部。按预期工作。