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

Linux 網卡啟動失敗「Device not present」排查:MAC 地址綁定修復實戰

編輯:Linux 教學

CentOS/RHEL 系統執行 service network start 报錯 Bringing up interface eth0: Device does not seem to be present, delaying initialization. [FAILED],核心原因是 **網卡配置文件中的 HWADDR 與實體網卡 MAC 地址不匹配**。常見於虛擬機克隆、網卡硬體更換、遷移雲主機等場景。

故障現象


# service network restart
Bringing up loopback interface:  [  OK  ]
Bringing up interface eth0:  Device does not seem to be present, delaying initialization.  [FAILED]

根因分析

  • /etc/sysconfig/network-scripts/ifcfg-eth0 內寫死 HWADDR=XX:XX:XX:XX:XX:XX
  • 實體/虛擬網卡當前 MAC 地址已變 (如 VMware 克隆生成新 MAC、雲廠商分配新 MAC)
  • 內核驅動載入時按 MAC 匹配網卡,不匹配 → 拒絕綁定 eth0 → 啟動失敗

標準修復流程 (3 步搞定)

Step 1: 獲取當前網卡真實 MAC


# ip link show eth0
# 或
# ifconfig -a | grep eth0 -A 1
# 輸出示例:
# eth0: flags=4163  mtu 1500
#       ether 00:16:3e:f2:a0:9c  txqueuelen 1000  (Ethernet)
# ↑ 這就是真實 MAC:00:16:3e:f2:a0:9c

Step 2: 修正配置文件 HWADDR


# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
HWADDR=00:16:3E:F2:A0:9C   # ← 改為 Step 1 獲取的真實 MAC (大小寫不敏感)
# UUID=...  若存在建議同時刪除或更新

⚠️ 若為 DHCP,將 BOOTPROTO=dhcp 並刪除 IPADDR/NETMASK/GATEWAY。

Step 3: 重啟網路服務驗證


# service network restart
# 或 systemctl restart network (CentOS 7+)
# 應輸出 [  OK  ]
# ping 測試
ping -c 3 192.168.1.1

進階:永久解決虛擬機克隆 MAC 衝突

方案 A:配置文件去除 HWADDR (推薦雲/虛擬化環境)


# 刪除 ifcfg-eth0 中的 HWADDR 與 UUID 行
# 內核將按總線順序自動命名 (eth0, eth1...),避免 MAC 綁定失敗
# 配合 systemd-networkd 或 NetworkManager 更穩健

方案 B:udev 規則固化命名 (物理機/需固定名稱)


# vi /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:3e:f2:a0:9c", NAME="eth0"
# 重載規則
udevadm control --reload-rules && udevadm trigger

方案 C:虛擬機管理層面固定 MAC

  • VMware:編輯 .vmx → ethernet0.addressType = "static" + ethernet0.address = "00:16:3e:f2:a0:9c"
  • VirtualBox:網卡 → 高級 → MAC 地址 → 手動輸入固定值
  • KVM/libvirt:virsh edit vmname → <mac address='00:16:3e:f2:a0:9c'/>
  • AWS/Azure/阿里雲:控制台分配彈性網卡固定 MAC

驗證清單

檢查項命令預期結果
網卡掛載ip link show eth0狀態 UP、MAC 與配置一致
IP 配置ip addr show eth0顯示配置的靜態 IP
路由表ip route含默認網關
連通性ping -c 3 gateway0% 丟包
DNScat /etc/resolv.conf有效 nameserver

常見誤區

  • 🔴 只改 ifconfig eth0 hw ether NEW_MAC 臨時修改 → 重啟失效
  • 🔴 複製舊機 ifcfg-eth0 到新機未改 MAC → 啟動失敗
  • 🟡 忽略 UUID 衝突 → NetworkManager 可能拒絕管理

一句話總結

網卡啟動失敗 90% 是 HWADDR 與實體 MAC 不符;ifconfig -a 取真 MAC → 寫入 ifcfg-eth0 → service network restart 即愈。

掌握 MAC 綁定修復,讓網路遷移/克隆/遷雲零阻礙。

Copyright © Windows教程網 All Rights Reserved