场景:
我试过了:首先连接到WiFi然后断开以太网; 并先断开以太网,然后连接到WiFi。 这两种方法都不行。 当使用Ubuntu和OS X服务器以及两个操作系统选项以及客户端时也尝试过。 没有运气。
好像我需要某种方式告诉我的SSH连接,它应该开始使用新连接的networking接口,而不是旧的断开连接的接口。 有任何想法吗?
我意识到,我可以整天待在WiFi上,但我不想这样做。 我也意识到,我可以在远程服务器的屏幕会话内工作,然后在更改接口后重新连接到该屏幕会话,但是我也不想这样做。 例如,我可能会通过SSH传输一些大的命令,如数据库转储,或者我可能通过SSHFS打开文件,或者我可能只是想避免重新连接的麻烦
我怀疑这种解决scheme不适用于SSHFS等,但你可以看看Mosh ,它至less为shell本身提供了漫游支持。
这不能轻易完成。
我可以指出一些非常昂贵的应用程序,它们允许您在IP或AP之间移动时保持telnet或SSH会话,或者甚至在长时间的networking断开期间保持telnet或SSH会话,但基本上通过创build始终打开的服务器客户机的端会话,所以服务器不知道连接的不同或丢弃。
我想你可以编码这样的事情,但我想如果这很容易做到,我的客户不会因为使用无线手持扫描器打开terminal连接而花费5位数的代价来强奸。
虽然,我在屏幕上绊倒了,声称创build持久的SSH会话 ,实际上可能工作…给它一个镜头。
按照定义,恐怕你不能这样做。 一个SSH会话通过由四元组(源地址,源端口,目标地址,目标端口)定义的TCP连接运行。 您不能将现有连接转移到客户端上的其他地址(除了在接口closures时操作系统将断开连接)。
NAT可能会使这个图片变得复杂,但不会以任何方式帮助你。
我知道,老线程,但为了完整性,因为我正在寻找同样的事情…
在Windows 7或更新版本中,您应该只需select您的WiFi适配器和以太网适配器,然后select“桥接连接”即可。 这将给你一个单一的IP地址,你现在可以断开和重新连接以太网(连续的无线networking覆盖范围)。
我通过两种方式来pipe理这个:
从数据中心的terminal服务器(RDP / Windows / etc)启动会话
要么
安装GNU 屏幕或tmux并在login后启动它们。
我更喜欢tmux
因为screen
相当老派,但是如果只允许安装受支持的软件包,则screen
位于RHEL回购站中。
要么
做两个。
尝试仅在第一次启动ssh会话时在WiFi上。 然后插入以太网。这应该允许新的连接通过以太网,但build立的连接将保持在无线上。 至less我已经看到它与OSX一样工作,所以OS /硬件可能会有所不同。
我敢肯定你可以用虚拟机和隧道进行一些愚蠢的攻击。
这是未经testing的,但让我知道,如果它确实工作。
ssh -L 10022:remote.server.example.com:22
内创buildssh连接w /到远程端口的隧道22 ssh -L 10022:remote.server.example.com:22
ssh 192.168.56.3 -p 10022
让我知道如果它的作品。
问题可能是当您在有线和无线之间切换时,您的源IP地址会发生变化。 这将防止ssh会话回来。
我在linux下通过连接一个vpn来处理这个问题,并确保vpn连接总是给你的帐户提供相同的ip(不难执行,但是如果是的话,你将会收到相同的ip over vpn可用,但更好地执行它是肯定的)。 我主要使用vtun,但openvpn也没关系。 确保你的连接通过VPN(正确的路由,推送前缀,…)
我已经能够从电缆离线,甚至长达5分钟,然后连接到WiFi,仍然能够保持连接到我所有的SSH会话。 正在进行的ping,mtr,htop,…只是在vpn恢复的时候继续,就好像什么也没发生一样。