1. 现象描述
-
原来使用一个 CentOS 虚拟机,这里叫 CentOS_1。网络配置如下:VMWare软件设置 NAT 模式,虚拟机配置 DHCP 自动获取 IP ,开机启动网络。可以正常联网
-
现在要重新配置一个虚拟机,环境同 CentOS_1。因此我直接从硬盘复制了一份 CentOS_1 的文件,并用 VMWare 打开虚拟机,将复制的虚拟机更名为 CentOS_2
-
由于是最小安装,因此使用
ifup / ifdown / ip addr
指令操作网卡,通过直接修改网卡配置文件配置网络-
网络配置文件地址
/etc/sysconfig/network-scripts
网络文件名称ifcfg-网络名称
如:网络名称为ens33
,则对应的配置文件名为ifcfg-ens33
-
相关指令
# 设对应的网络名为 ens33 # 1. 启动网络 ifup ens33 # 2. 关闭网络 ifdown ens33 # 3. 重启网络 = 先 ifdown 再 ifup # 查看网络的 ip 地址 ip addr
-
-
CentOS_2 的网络配置与 CentOS_1 的完全相同:VMWare软件设置 NAT 模式,虚拟机配置 DHCP 自动获取 IP ,开机启动网络
-
但在使用指令
ifup
启动网卡时出现了问题:等待了很久之后,提示连接超时
2. 问题解决
1. 重新配置 VMWare 软件的 NAT 配置 – 无效
检查 VMWare 虚拟机的 NAT 和 网络配置:
- NAT 配置
- CentOS 对应的 VMnet 勾选 NAT 模式(如果新建虚拟机时选择 NAT 模式,那默认值就是 NAT 模式不用修改)
- 勾选“将主机虚拟适配器连接到此网络”
- 勾选“使用本地 DHCP 将 IP 地址分配给虚拟机”,启用 VMWare 的 DHCP 功能,保证虚拟机能自动获取到 IP 地址
- NAT设置 --> 网关 = 子网 IP 中最后一位 = 2 的地址
2. 重启 VMWare 软件的 NAT 和 DHCP 服务 – 无效
打开任务管理器,找到“服务(Services)”选项卡,选中以下两个服务,右键点击“重启(Restart)”,即服务的重启
- VMnetFHCP = VMWare 的 DHCP 服务
- VMWare NAT Service = VMWare 的 NAT 服务
3. 重启虚拟机 CentOS_2 – 发现问题
点击“关机”后,再点击“开机”。
开机时提示“ens33 的 MAC 地址已经被使用”,类似以下提示
发现问题:直接复制虚拟机文件生成的虚拟机 CentOS_2 与原虚拟机 CentOS_1 之间的 mac 地址相同,导致两台虚拟机不能同时获取到 ip 地址 (DHCP 协议通过 MAC 地址区分不同设备)
4. 为 CentOS_2 虚拟机配置不同于 CetOS_1 的 MAC 地址 – 解决问题
-
关闭虚拟机电源
-
虚拟机 --> 设置 -->
-
硬件 --> 网络适配器 --> 高级 --> MAC 地址,点击“生成” --> 确定并保存
注意:只有关机状态下才能修改 MAC 地址
-
重启虚拟机
-
使用
ifdown/ifup
指令重启网卡,使用ip addr
指令查看是否获取到了 ip 地址
5. 总结
本次网络连接不上的问题是因为:直接复制虚拟机文件,会导致两个虚拟机中的网卡 MAC 地址相同,导致两个虚拟机无法同时获取到 IP 地址(DHCP 根据 MAC 地址识别不同的设备)