我想在虚拟机中为 ubuntu 18.04 VM 分配一个静态 IP。我已经为适配器 1 桥接了采用者,并尝试了以下步骤来设置静态 IP,
- 在虚拟框主机网络管理设置中,禁用 DHCP。
- 使适配器 1 附加到选项作为 HostOnly 适配器
- 启动虚拟机和内部虚拟机,打开 /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 设置更改为桥接适配器并启动 VM?
同样在桥接适配器模式下,如果安装了virtual box的主机可以被其他主机访问,那么ubuntu VM是否也可以访问?
如果您希望从彼此访问虚拟机,您只需为所有虚拟机分配相同的网络适配器即可。但是,如果您还希望访问托管所有 VM 的主机操作系统,则需要将网络适配器设置为“桥接模式”。
我将尝试解释这个概念。通过假设/创建不同的场景。
1.您有一个系统连接到您的家庭路由器
当您通过 WiFi 或以太网电缆将系统与路由器连接时。
您的路由器所做的是,它为您的系统分配一个 IP 地址,该 IP 地址被认为是私有 IP 地址。您的 ISP(互联网服务提供商)会为您提供一个公共 IP 地址。此公共 IP 地址由您的路由器使用 NAT(网络地址转换器)转换为您的私有 IP。
分配给连接到路由器的设备的私有 IP 地址由 DHCP(动态主机配置协议)决定。它会自动创建要分配的 IP 地址。因此,这可以理解为一种动态 IP 地址映射或分配。现在,您还可以通过管理路由器设置为您的设备分配静态 IP 地址。
黑白动态IP地址和静态IP地址的区别在于,如果您断开设备并稍后重新连接,它可能具有或可能不具有与之前连接时相同的IP地址(在动态IP地址的情况下但是在静态IP地址中)无论您断开连接并重新连接多少次,它都将始终具有相同的 IP 地址。
PS
所有连接到路由器的主机都可以相互交谈或通信,无论分配是静态还是动态完成,因为要进行通信,您需要知道 IP 地址。要检查这一点,您可以尝试使用 PC ping 您的移动设备或 LAN(局域网)中的任何其他设备。
2.你在你的电脑上创建一个虚拟机
现在您已经使用 Virtual Box 在您的 PC 中创建了一个虚拟机。分配给您的 VM 的 IP 地址由 Virtual Box 的网络适配器处理。从本质上讲,您可以说您的主机操作系统现在作为虚拟机的路由器工作,并且这些 IP 地址的管理由 Virtual Box 完成。现在Virtual box带有NAT网络和桥接模式的设置。
NAT网络模式
这类似于我之前解释的 PC 到路由器的意识形态。运行 Virtual Box 的主机操作系统充当虚拟机的路由器。现在在这种情况下,如果所有 VM 使用相同的网络适配器,它们就可以相互通信,但是它们不能与运行 Virtual Box 的主机操作系统通信。桥接模式
在这种情况下,Virtual Box 将所有虚拟机与您的主机操作系统平行对齐。这意味着您所有虚拟机的 IP 地址分配现在由路由器完成,您从路由器获得互联网连接到运行 Virtual Box 的主机操作系统。现在您的所有虚拟机都可以相互通信,包括您的主机操作系统。结论
现在,我相信您已经知道应该为您的问题做些什么,并且您可以对其应用正确的解决方案。要使 VM 相互通信,您无需分配静态 IP 地址。但是,如果您希望使用静态 IP 地址制作某种服务器,那么您可以从 Virtual Box 设置中为您的 Ubuntu 分配一个静态 IP 地址。你可以从这里阅读如何做到这一点