Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

VMware 虛擬機 Linux 無法自動獲取 IP 解決方案:修正網卡啟動檢查邏輯

編輯:Linux 教學

問題現象

VMware Workstation/ESXi 下安裝 RedHat/CentOS,配置 DHCP 後網卡啟動失敗,主控台顯示:

Determining IP information for eth0... failed; no link present. Check cable?

導致無法上網,ifconfig 顯示無 IP 位址。

根本原因

RedHat 系啟動腳本 /etc/sysconfig/network-scripts/ifup-eth 內建 check_link_down() 函式,透過 ethtool 檢測實體連結狀態。VMware 虛擬網卡有時回報「link down」導致啟動腳本直接中止,不再發送 DHCP 請求。

解決方案:覆蓋檢查函式

方法一:修改 ifcfg-eth0(推薦,持久化)

# 編輯 /etc/sysconfig/network-scripts/ifcfg-eth0
# 於檔案末尾新增:
check_link_down() {
    return 1
}

原理: Shell 函式回傳非 0 表示「檢查通過/忽略」,啟動腳本將繼續執行 DHCP 流程。

方法二:手動啟動網卡驗證

ifconfig eth0 up
dhclient eth0

若手動可獲取 IP,確認為啟動腳本邏輯問題而非驅動/網路故障。

方法三:永久停用 NetworkManager(RHEL 6/7+)

service NetworkManager stop
chkconfig NetworkManager off
# 改用傳統 network 服務
service network restart

驗證步驟

  1. 修改 ifcfg-eth0 存檔
  2. service network restart 或 systemctl restart network
  3. ifconfig eth0 確認取得 IP
  4. ping www.baidu.com 測試連通性

延伸:靜態 IP 配置範本

DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=114.114.114.114
# 關鍵:忽略 link 檢查
check_link_down() {
    return 1
}

適用版本

  • RHEL 5/6/7、CentOS 5/6/7、Fedora 早期版本
  • VMware Workstation 9+、ESXi 5.0+、Player、Fusion
Copyright © Windows教程網 All Rights Reserved