我有一个运行 Windows 2008 服务器的设置,它托管多个具有自己 IP 地址的虚拟机。以前,我使用 nginx 将网站的 http 请求代理到正确的虚拟机,这没有问题。不幸的是,我必须通过远程桌面进入 Windows 机器并使用 putty,然后才能访问我感兴趣的 ubuntu VM。
我想找到一种方法,直接从远程计算机通过 ssh 进入我的 ubuntu VM(无需通过 RDP 进入主机)。我在 Windows Server 防火墙中创建了一条流量控制规则,允许端口 22236 上的入站流量,我想将此端口用于 ssh。此端口上请求的流量应转发到 VM 的 IP 和端口 22。
有没有办法在 Windows 2008 Server 中实现这一点?我尝试过寻找使用 nginx 实现此目的的方法,但它似乎专用于 http 流量。
答案1
解决方案: 您必须将 VirtualBox 适配器连接到 Bridged 并分配一个应位于您的 LAN 下的 IP。这些可以在相应虚拟盒的网络设置中完成。只有这样,您才能从外部机器访问 VirtualBox。
笔记:
让我们了解一些有关在网络中连接虚拟盒 NIC 的知识。这里有四种情况。
- 网络地址转换 (NAT)
- 桥接网络
- 内部网络
- 仅主机网络
网络地址转换 (NAT): 在 NAT 中,虚拟盒将从主机 (DHCP) 获取 IP 地址。此时虚拟盒似乎与主机处于不同的网络中。外界无法访问虚拟盒。默认情况下,新的虚拟盒将连接到 NAT。
桥接网络: 在这里,虚拟盒将作为 LAN 中的独立机器,充当主机。主机和虚拟机将位于同一网络中。因此,外界可以访问主机。您应该将网络适配器连接到 Bridged,以便从 LAN 中的另一个系统通过 ssh 连接到您的虚拟盒。
内部网络:
在这里,如果您在主机中有多个虚拟机,并且所有虚拟机都连接到内部,那么它们将像在与主机不同的网络中,并且它们之间的整个通信都保留在主机内,并且
通信仅对该网络上的虚拟机可见。
仅主机网络: 仅主机网络与内部网络类似,您可以指定访客所在的网络。例如,如果两个虚拟机位于名为“Network1”的网络下,它们可以像内部网络一样相互通信,此外主机也可以看到它们。但是,其他外部机器无法看到此网络上的访客,因此得名“仅主机”。
参考: https://blogs.oracle.com/fatbloke/entry/networking_in_virtualbox1
祝你好运,兄弟 :)