即使安装了 openssh-server,也无法通过 SSH 进入使用 NAT IP 地址运行的 Ubuntu VM

即使安装了 openssh-server,也无法通过 SSH 进入使用 NAT IP 地址运行的 Ubuntu VM

这是在 Kubuntu 12.10 主机上运行 VirtulBox 4.8.2 的 Ubuntu Server 12.10 的全新安装。我的 Ubuntu Server 运行的是 NAT 的 IP 地址(10.0.2.X 或类似的)。我想从我的 Kubuntu 笔记本电脑 ssh 到我的 VBox 服务器,因此在安装过程中我选择了 OpenSSL Server 或任何选项。除了该选择之外,没有进行任何自定义,系统完全是最新的。

因此,当我尝试 ssh 到该设备时,我收到超时响应并且无法连接。该服务正在我的虚拟机上运行,​​但没有任何反应。我也无法 ping 虚拟机。

我是不是漏掉了什么?我的虚拟机和主机之间有防火墙吗?不太确定

我在这里先向您的帮助表示感谢,

乔纳森

答案1

问题在于 NAT。当您使用 NAT 时,VirtualBox 基本上就像一个路由器,负责创建子网,就像使用普通路由器设置一样,您无法访问较低子网上的设备。在我看来,您有两个选择:

  1. 将虚拟机切换为“桥接适配器”模式(即使在安装了操作系统后也可以完成),然后重新启动或更新服务器的 IP。您的虚拟机应该在您的网络上显示一个正常的 IP,然后您就可以轻松访问它了。无论如何,我通常建议对服务器进行此操作,因为埋葬服务器会使服务器失去用途。

  2. 建立反向 SSH 隧道。基本上,您不是从主机到客户服务器建立隧道,而是反过来做。这是一项非常简单的任务,这里有一个不错的操作方法:http://www.howtoforge.com/reverse-ssh-tunneling,只需使用主机的正常网络 IP 即可。一位用户还在文章评论中发布了关于两台 PC 之间的 SSH 隧道的精彩内容,两台 PC 均位于 NAT 后面。

综上所述,我仍然推荐 #1,因为它对服务器设置有明显的优势,但如果你真的想保持服务器沙盒化,那么 #2 应该可以正常工作。

答案2

当然,您也可以在虚拟盒中使用端口转发:

  1. 进入虚拟机设置
  2. 选择网络
  3. 单击端口转发
  4. 填写行
    1. 给出一个有用的名字,如“SSH”
    2. 将协议保留为 TCP
    3. 将主机 IP 设置为主机 IP(例如:127.0.0.1)
    4. 将主机端口设置为 10022
    5. 将 Guest IP 设置为虚拟机的 IP
    6. 将 Guest 端口设置为 22(或 SSH 端口)
  5. 连接到主机详细信息(例如:127.0.0.1:10022)

相关内容