我有两个虚拟机都在 Linux 主机 (Fedora 16) 上运行。我将两个适配器设置为附加到 NAT。当我启动它们时,它们的默认网关都设置为10.0.2.2
.它们还具有相同的 IP 地址(10.0.2.15)
。它们都位于同一适配器(适配器 1)上。我不知道为什么它们被分配相同的 IP 地址,并且默认网关不应该是,10.0.2.1
因为子网地址是10.0.2.0
255.255.255.0,网络掩码是 255.255.255.0。我是否缺少某些东西,以前有人发生过这种情况吗?如何让 VirtualBox DHCP 正常工作?
答え1
VirtualBox DHCP 工作正常。
让所有计算机在 NAT 配置中获得相同的地址并没有什么问题。所有虚拟机都相互隔离,因此不存在冲突风险。它们也不在同一个适配器上。每个虚拟机都有自己的虚拟化硬件,包括网卡。
默认网关也不必是 10.0.2.1。尽管通常的做法是将其设置为较低的 IP 地址,但它可以是子网范围内的任何 IP。
另外,没有“真正的”dhcp 服务,所有内容都硬编码在 VirtualBox 代码中,尽管如果您对默认 IP 地址不满意,您可以微调 NAT 引擎。
答え2
在 VirtualBox 控制面板中,转到文件 -> 首选项 -> 网络
选择 NAT 网络选项卡,通过单击侧面的 + 按钮创建一个新的“NatNetwork”,然后按确定。
现在选择每个虚拟机,转到“设置”->“网络”
在附加到:选项中选择 NAT 网络并选择“NatNetwork”,然后按确定。
重新启动所有虚拟机。
现在虚拟机有不同的网络地址。
答え3
只要虚拟机具有相同的以太网 MAC 地址(硬件地址,像指纹一样唯一,由网络设备的硬件制造商设置),它们就会从任何 DHCP 服务获得相同的 IP 地址。
가상 머신을 실행 중이므로 가상 하드웨어가 있으므로 MAC 주소를 "가짜"로 만듭니다. 두 시스템이 동일한 이더넷 하드웨어 주소를 갖지 않도록 해야 합니다.
VirtualBox의 하드웨어 네트워킹 섹션에서 가상 머신의 이더넷 MAC 주소를 설정할 수 있습니다(예: 3c:08:51:05:24:8a).
실행 중인 가상 머신에서 확인할 수 있습니다.
sudo ifconfig
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=2b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4>
ether 3c:08:51:05:24:8a
media: autoselect (none)
status: inactive
答え4
KVM에서도 동일한 문제가 발생했습니다. 두 가상 머신의 IP 주소는 동일하지만 그 중 하나는 외부 네트워크에 액세스할 수 없습니다.
문제는 DHCP 서비스에 있습니다. 기본적으로 두 가지 솔루션이 있습니다.
dhcp를 사용하여 가상 머신에서 실행될 IP 주소를 명시적으로 구성합니다
dhclient enp1s0
(enp1s0은 인터페이스임). 그러면 IP 주소가 올바르게 변경되고 구성되었음을 알 수 있습니다.두 번째 해결 방법은 다음과 같이 가상 머신에 고정 IP 주소를 할당하는 것입니다.
- /etc/netplan으로 이동합니다(Ubuntu의 경우).
- 디렉터리에서 .yaml 파일을 편집합니다(디렉터리에는 파일이 하나만 있어야 하며 먼저 백업하는 것이 좋습니다).
- 고정 IP 주소를 제공합니다(이 경우에는 192.168.122.3으로 설정했습니다). 전체 파일은 다음과 같습니다
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
dhcp4: no
addresses: [192.168.122.3/24]
gateway4: 192.168.122.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
netplan apply
이 설정을 활성화하세요.- 그러면
ifconfig
IP의 변화를 확인할 수 있습니다.
이것이 귀하의 문제를 해결하기를 바랍니다.