为虚拟盒 VM 设置静态 IP 不起作用

为虚拟盒 VM 设置静态 IP 不起作用

我想在虚拟机中为 ubuntu 18.04 VM 分配一个静态 IP。我已为适配器 1 桥接了适配器,并尝试了以下步骤来设置静态 IP,

  1. 在虚拟盒主机网络管理设置中,禁用 DHCP。
  2. 将适配器 1 附加到选项作为 HostOnly 适配器
  3. 启动虚拟机并在虚拟机内部打开 /etc/netplan/01-netcfg.yaml 并进行以下修改
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses: [10.110.249.15/24]
      gateway4: 10.110.249.1
      nameservers:
        addresses: [10.110.249.1, 8.8.8.8]
      dhcp4: no

我的要求是访问 10.110.249 网络中的所有主机,但通过上述步骤我无法做到这一点。

如何修复此问题?我是否应该将适配器 1 设置更改为桥接适配器并启动虚拟机?

同样在桥接适配器模式下,如果安装了虚拟盒的主机可以被其他主机访问,那么 ubuntu VM 也可以访问吗?

答案1

如果您希望相互访问虚拟机,只需为所有虚拟机分配相同的网络适配器即可。但是,如果您还希望访问托管所有虚拟机的主机操作系统,则需要以“桥接模式”设置网络适配器。

我将尝试通过假设/创建不同的场景来解释这个概念。

1. 您的系统已连接到家用路由器

当您通过 WiFi 或以太网电缆将系统与路由器连接时。
路由器的作用是为您的系统分配一个 IP 地址,该 IP 地址被视为私有 IP 地址。您的 ISP(Internet 服务提供商)会为您提供一个公共 IP 地址。路由器会使用 NAT(网络地址转换器)将此公共 IP 地址转换为您的私有 IP。

而分配给连接到路由器的设备的私有 IP 地址则由 DHCP(动态主机配置协议)决定。它会自动创建要分配的 IP 地址。因此,这可以理解为一种动态 IP 地址映射或分配。现在,您还可以通过管理路由器设置为您的设备分配静态 IP 地址。

动态和静态 IP 地址之间的区别在于,如果您断开设备连接并在稍后重新连接,则在动态 IP 地址的情况下,它可能具有或不具有与之前连接时相同的 IP 地址,但是在静态 IP 地址中,无论您断开连接并重新连接多少次,它都将始终具有相同的 IP 地址。

PS
所有连接到路由器的主机都可以相互交谈或通信,无论分配是静态的还是动态的,因为要进行通信,您需要知道 IP 地址。要检查这一点,您可以尝试使用 PC ping 您的移动设备或 LAN(局域网)中的任何其他设备。

2. 在 PC 上创建虚拟机

现在您已使用 Virtual Box 在 PC 中创建了虚拟机。分配给虚拟机的 IP 地址由 Virtual Box 的网络适配器处理。实际上,可以说您的主机操作系统现在充当虚拟机的路由器,而这些 IP 地址的管理由 Virtual Box 完成。
现在 Virtual Box 带有 NAT 网络和桥接模式的设置。

NAT-网络模式

这有点像我之前解释过的 PC 到路由器的理念。运行 Virtual Box 的主机操作系统充当虚拟机的路由器。现在在这种情况下,如果所有虚拟机使用相同的网络适配器,它们可以相互通信,但它们无法与运行 Virtual Box 的主机操作系统通信。

桥接模式

在这种情况下,Virtual Box 将所有虚拟机与您的主机操作系统并行对齐。这意味着,现在所有虚拟机的 IP 地址分配都由路由器完成,您从该路由器获得与运行 Virtual Box 的主机操作系统的互联网连接。现在,您的所有虚拟机都可以相互通信,包括您的主机操作系统。


结论

现在我相信你已经知道该如何解决你的问题,并且可以应用正确的解决方案。要使虚拟机相互通信,你不需要分配静态 IP 地址。但是,如果你想要创建某种具有静态 IP 地址的服务器,那么你可以从 Virtual Box 设置中为你的 Ubuntu 分配一个静态 IP 地址。你可以从这里了解如何操作

相关内容