在 Wi-Fi 和以太网之间切换时 IP 发生变化时,如何保持 SSH 会话处于活动状态?

在 Wi-Fi 和以太网之间切换时 IP 发生变化时,如何保持 SSH 会话处于活动状态?

在 Mac OS X Yosemite 中,我希望能够创建一个具有静态 IP 的虚拟接口,该接口与我的以太网和 Wi-Fi 接口绑定,这样当我断开笔记本电脑的连接时,就不会丢失我的 SSH 连接。

简单地使用 Wi-Fi 工作是不可接受的,因为网络会遇到拥塞或信号限制,而我坐在办公桌前时会遇到严重的延迟或掉线。使用 Mac OS X 的内置选项桥接适配器会创建一个网络循环,我似乎无法避免这种情况——即使使用生成树——除非我忽略了什么。

有什么建议么?

**Edit Screen 不是一个好的解决方案。由于这个问题,我已经在连接服务器端使用它了。我不希望在切换接口时丢失 ssh 连接,也就是说,我不想每次从以太网切换到 wifi 时都要重新连接和重新认证。我通常有 10 个以上的 ssh 会话,重新连接它们会很麻烦

答案1

您可以使用screen实用程序可以在您断开连接后保持会话运行,然后您可以重新连接到会话。我相信它适用于 Mac OS X。

更多信息请访问极客拉凯德教程。


编辑:

由于屏幕不是 OP 想要的,手机壳(mosh)非常适合用例。(@lnrdo 在此线程的另一个答案中也提到了这一点)。

以下是 Keith Winstein 的作者莫什,在此介绍视频

虽然,前段时间我在安装时遇到了困难,莫什当我没有 sudo 访问权限时,在 ssh 服务器上。我不知道从那时起情况是否有所改变。

答案2

我没有尝试过 - 事实上我没有 Mac,但我以前在 WAN 上遇到过这种问题,并且解决方案可能对你有用 - 在你的 Mac 和你的服务器之间设置 VPN - 这样 VPN 可以重新连接并为你提供相同的 VPN 地址 - 只要你设法通过 VPN 隧道路由你的 SSH 会话,SSH 内置的保持活动都将允许会话工作,无论你使用的是 WIFI 还是 LAN,或者在两者之间切换。

另一种可能性——同样,没有 Mac,所以我推测——是提供为您的 LAN IP 和 WIFI 地址配置的相同 IP 地址(静态),然后使用某种配置文件切换来确保每次您停靠时 WIFI 都关闭——如果在 MAC 上可以这样做的话。根据您拥有的交换网络的复杂性,这可能会或可能不会扰乱您的交换设备。

答案3

您需要像 mosh 这样的工具。它需要服务器端和客户端组件,但它适用于移动(漫游)设备。

Screen 和 tmux 可以帮助您在重新连接后继续工作,但 mosh 可以让您保持连接/重新连接。根据我的经验,当您的路由器具有动态 IP 地址时,它也很有用。

答案4

您可以修改sshd.conf文件上的某些参数。特别是ClientAliveInterval,可以将其设置为 60 或 120 和TCPKeepAlive(是或否)。

相关内容