从外部源通过 SSH 进入 Linux 来宾虚拟机?

SSH into Linux Guest Virtual machine from External Source?

我目前有一个 Linux 服务器 运行 作为 Virtualbox 的访客,使用 Windows 8.1 作为主机。我可以毫无问题地从我的 Windows 主机通过 SSH 连接到来宾。但是我该如何设置它,以便我可以从不在本地网络内的外部机器(例如来自另一个国家)进行 SSH?我在网上看到的所有示例都是仅从主机到来宾的 SSHing。

我的 Linux 来宾正在使用桥接网络并使用动态 IP。

非常感谢!

好的,我明白了!

我在 Virtualbox 中设置了 2 个网络:NAT (eth0) 和桥接 (eth1)。 NAT 允许 Linux 来宾访问互联网,桥接允许 Windows 主机将数据发送到 Linux 来宾。两者都在 Linux 来宾中获得动态 IP。

在 Virtualbox NAT 的端口转发部分,我有 Windows 主机的内部 IP 地址和桥接连接的 IP 地址作为来宾。在我的例子中,它分别是 192.168.1.1 和 192.168.1.8。端口分别是2222和22。

对于我的路由器,我启用了端口转发到 Windows 主机 (192.168.1.1) 的端口 2222。

在Windows防火墙中,我打开了2222端口用于连接。

就是这样!我现在可以通过 (username)@192.168.1.8 从本地网络中的计算机通过 SSH 连接到 Linux 来宾,并从本地网络外部的计算机通过 (username)@Windows_host_public_IP 连接到 Linux 来宾。

我按照您提到的所有步骤进行操作,但仍然无法从外部网络连接。

下面列出了我遵循的步骤。

  1. 在 Linux 虚拟机上创建了 NAT 和桥接连接。
  2. 在虚拟盒子上创建了 NAT 和桥接连接。
  3. 在虚拟框的NAT端口转发table中,添加主机IP为windows IP和主机端口为2222以及访客IP为Linux vm桥接IP和访客端口为22.
  4. 在 windows 防火墙设置上打开了端口 2222。

如果我在这里遗漏了什么,请告诉我。