問題截圖:
根據提供的截圖信息,可以明確看到ens33
網卡處于**物理連接斷開(NO-CARRIER)且接口關閉(DOWN)**的狀態,這是導致無法獲取IP地址的直接原因。以下是針對VMware虛擬機的具體解決方案:
一、核心問題定位(來自截圖關鍵信息)
-
ens33
接口異常狀態2: ens33: <NO-CARRIER,BROADCAST,UP> ... state DOWN
?
NO-CARRIER
:物理層無連接(虛擬機網卡未連通)
?state DOWN
:網絡接口未激活 -
Docker網絡干擾
docker0
網橋已創建(IP為172.17.0.1
),但Docker服務可能修改了宿主機網絡規則(如防火墻或路由表)。
二、分步解決方案
第一步:修復VMware虛擬機網絡連接
-
檢查虛擬機網卡設置
? 在VMware中打開虛擬機設置 → 網絡適配器 → 確認勾選已連接和啟動時連接。
? 推薦使用NAT模式(默認)而非橋接模式,避免物理網絡環境影響。 -
重啟VMware虛擬網絡服務
? 在宿主機(Windows/Linux)中:
? Windows:任務管理器 → 服務 → 重啟VMware NAT Service
和VMware DHCP Service
? Linux:sudo systemctl restart vmware-networks
第二步:激活Ubuntu網卡并強制獲取IP
# 1. 手動激活ens33接口(需root權限)
sudo ip link set ens33 up# 2. 強制觸發DHCP請求(安裝dhclient工具)
sudo apt install -y isc-dhcp-client
sudo dhclient -v ens33# 3. 驗證IP獲取(觀察inet字段)
ip addr show ens33
第三步:修復Docker網絡沖突
# 1. 臨時禁用Docker服務
sudo systemctl stop docker# 2. 清理Docker生成的網絡規則
sudo iptables -F && sudo iptables -t nat -F# 3. 重啟網絡服務
sudo systemctl restart systemd-networkd# 4. 重新獲取IP(重復第二步的dhclient命令)
第四步:持久化網絡配置(防止重啟失效)
# 編輯Netplan配置文件(Ubuntu 18.04+)
sudo nano /etc/netplan/01-netcfg.yaml# 添加以下內容(確保啟用DHCP)
network:version: 2ethernets:ens33:dhcp4: trueoptional: true# 應用配置
sudo netplan apply
三、驗證與恢復
-
成功標志
? 執行ip addr show ens33
后應顯示state UP
和inet
字段的IP(如192.168.x.x
)。
? 可訪問外網測試:ping 8.8.8.8
-
若仍無效
? 徹底重置虛擬機網絡:sudo rm /etc/machine-id /var/lib/dbus/machine-id sudo systemctl restart systemd-networkd sudo reboot
-
恢復Docker服務
? 確認宿主機IP恢復后,重啟Docker并檢查容器網絡:sudo systemctl start docker docker network ls # 確認docker0網橋正常
四、關鍵注意事項
-
VMware Tools必須安裝
sudo apt install open-vm-tools
未安裝會導致網絡適配器無法被Ubuntu正確識別。
-
避免使用Docker的默認網絡驅動
若頻繁出現沖突,建議為Docker指定獨立子網:# 創建自定義網絡 docker network create --driver=bridge --subnet=172.28.0.0/16 mynet
通過以上步驟,您應能恢復Ubuntu宿主機的IP地址。若問題持續,請檢查虛擬機是否被VMware掛起而非關機(掛起狀態可能導致網絡設備異常)。