如何将虚拟机的IP地址与主机操作系统相同

6

我使用Windows7作为我的基本操作系统。在其上安装了Virtual Box和Ubuntu。我想让Ubuntu获得与我基本操作系统Win7相同的IP地址。我该如何实现这一点?有任何想法吗?

谢谢, Saurabh。

2个回答

4

当然可以!就像你在路由器/防火墙后面设置服务器一样。paxdiablo说得有点对。如果主机和客户端共享同一个端口,TCP/IP协议栈不知道该把数据包发送到哪里。但是,如果只让客户处理特定的端口,那么问题就变得简单了——只需将主机的端口转发到客户的端口(就像在配置路由器时需要做的那样)。

在我的情况下,我在Win7上运行VirtualBox,并运行一个Linux发行版的客户机。只有Linux客户机运行WebGUI,所以我使用的网络设置是NAT。然后来了有趣的部分,在NAT选项下,选择“端口转发”。从那里,您可以添加主机的IP地址(例如192.168.1.123)和客户端的IP地址(在我的情况下为10.0.2.15),但要将主机的80端口转发到客户端的80端口。它就像魔术一样!您需要为客户端监听的每个端口执行此操作。

如果有多于一个访客在同一端口上侦听(例如80),那么您需要从主机指定另一个端口并将其转发到访客。(例如:从主机的8080转发到访客#2的IP的80端口)。连接到访客2的任何外部设备都将位于 http://192.168.1.123:8080。现在,您可以拥有(几乎)任意数量的共享相同IP的访客。希望这可以帮助您。

Jim Chan


3

如果您拥有相同的IP地址并期望能够进行通信,则是不可能的。数据包应该如何知道去哪里呢?

如果您说的是主机和客户机在外部看起来具有相同的IP地址,那么您只需将网络连接设置为NAT而非桥接即可。

这将在主机上执行网络地址转换,基本上使用主机来路由数据包并更改其中的源和目标细节。


谢谢!我尝试使用NAT。实际上,我正在尝试在不同的机器上使用Ubuntu虚拟盒子进行2节点集群,这些机器的基本操作系统为Win7。由于每个VB都在不同的机器上,因此它显示的IP相同为192.168.56.101。由于它必须是一个集群,VB应该具有不同的IP地址,以便它们可以相互ping通。 - Saurabh
@Saurabh,如果你想要将两个Ubuntu虚拟机进行集群,它们可能需要相同的IP地址,这与实际主机无关。而且你的集群软件应该根据任何时刻谁是活动节点和备份节点来处理数据包的路由(如果它们都是活动节点,它们将具有不同的IP地址,我保证)。 - paxdiablo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接