从远程计算机连接虚拟机时 SSH 经常失败

从远程计算机连接虚拟机时 SSH 经常失败

我有一台 Windows 8.1 主机,我在虚拟机中安装了 ubuntu 服务器 15.05。我在客户机(ubuntu)中设置了一个 SSH 服务器,然后创建了从主机端口 2222 到客户机端口 22 的转发规则。

如果我尝试使用从主机 ssh,ssh -p 2222 username@localhost我可以毫无问题地连接到虚拟机。

如果我尝试从同一本地网络中的远程计算机(OS X 计算机)进行连接,大多数情况下都会收到超时错误。当我实际成功建立连接时,一段时间后它会冻结,直到我收到错误ssh -p 2222 [email protected]写入失败:管道损坏

我已经禁用了我的防病毒软件(Bitdefender)的防火墙,并在 Windows 防火墙中创建了规则以允许来自端口 22 和 2222 的流量。即使禁用两个防火墙后,问题仍然存在(实际上,bitdefender 的防火墙始终处于停用状态)。

我也在UseDNS no客户机的sshd_config文件中进行了设置。客户机(ubuntu)中没有安装防火墙。

我发现该问题同时发生在 vmware Workstation 11 和 VirtuaBox 上。

答案1

问题似乎是无法从 Windows 8.1 计算机外部访问 VM 网络。您可以看到,当您通过 ssh 连接到 localhost:2222 时,它可以正常工作,这可能是由于网络配置(可能配置为 NAT,这是默认配置)导致的

使用 VirtualBox 时,您应该将虚拟机的网络配置为桥接,这样就可以了。您可以从https://superuser.com/questions/810097/vmware-player-bridged-networking-no-longer-works-host-win8-1-guest-mint-17-l

答案2

我在装有 WMware Workstation 12.5.9 的 Windows 7 主机上遇到了类似的问题。唯一真正对我有帮助的解决方案是: https://communities.vmware.com/thread/590825

设置备用 QoS 标志似乎可以解决这个问题,例如ssh -o IPQoS=throughput ...

相关内容