VMWare復制CentOS虛擬機後無法聯網的問題解決方案

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 地址識別不同的設備)

推薦閱讀: