透過 IP 或 MAC 位址定位 VMware 虛擬機器的位置
在大型 VMware vSphere 基礎架構中,您可能只知道虛擬機器的 IP 位址,卻需要其名稱;或者反之亦然。例如,您可能透過 SSH 或遠端桌面協定 (RDP) 遠端存取客體作業系統時已知其 IP 位址,但為了進行設定、遷移或備份,需要虛擬機器的名稱才能在 ESXi 主機上找到該虛擬機器的位置。您可以透過 vSphere 完成這些操作,但無法透過客體作業系統完成。
此外,您可能需要識別虛擬機器所使用的虛擬網路介面卡的 MAC 位址。在這篇部落格文章中,我們將說明如何查找虛擬機器的 IP 或 MAC 位址,以及當您已知 IP 或 MAC 位址時,如何找出虛擬機器的名稱。
在 VMware vSphere Client 中檢查 IP 位址
在 VMware vSphere 中檢查虛擬機器 IP 位址的最簡單方法,就是使用 VMware vSphere Client。
- 在網頁瀏覽器中,於網址列輸入您的 vCenter Server IP 位址,開啟 vSphere Client,並輸入您的憑證以登入。
- 前往
Hosts and Clusters,根據名稱選取所需的虛擬機器,並勾選Summary[標籤]。虛擬機器的 VMware IP 位址顯示在IP addresses節。一台虛擬機器可以擁有多個虛擬網路介面卡和多個 IP 位址。 - 點擊
View all N IP addresses以顯示虛擬機器所使用的所有 IP 位址。 - 在下方的螢幕截圖中,您可以看到一臺 VMware 虛擬機器所使用的 1 個 IPv4 位址和 1 個 IPv6 位址。 VMware Tools 必須在客體作業系統 (OS) 上安裝此軟體,才能在 VMware vSphere Client 的網頁介面中查看 IP 位址。虛擬機器必須處於開機狀態。

在 vSphere Client 中檢查 MAC 位址
虛擬機器的 MAC 位址可用於網路診斷及其他用途。
- 若要檢查 MAC 位址,請在
NavigatorVMware vSphere Client 的視窗中,在快顯選單中,按一下Edit Settings. - 在
Virtual Hardware的""分頁Edit Settings在視窗中,按一下網路介面卡的名稱,以查看虛擬機器所使用的虛擬網路介面卡的 MAC 位址。
在 VMware Host Client 中檢查虛擬機的 IP 位址
如果您使用的是未安裝 VMware vCenter, 您無法使用 VMware vSphere Client 來管理虛擬環境。此情況發生於您使用 ESXi 免費版本 在伺服器上。在此情況下,您可以使用 VMware Host Client 透過網頁介面管理 ESXi 主機。
- 在網頁瀏覽器的網址列中輸入您的 ESXi 主機的 IP 位址,並輸入 ESXi 管理員帳戶的用戶名稱和密碼。
- 在
Navigator窗格,點擊Virtual Machines並選取需要確認 IP 位址的虛擬機器。與在 vSphere Client 中確認虛擬機器的 VMware IP 位址相同,該虛擬機器必須已啟動,且客體作業系統上必須已安裝 VMware Tools。 - 在虛擬機器資訊頁面上,找到包含位置
General information然後點擊Networking展開該窗格,以檢視虛擬機器所使用的 IP 位址。
在 VMware Host Client 中檢查虛擬機器 MAC 位址
- 要在 VMware Host Client 中查看虛擬機的 MAC 位址,請如同查看 IP 位址時那樣選取該虛擬機。
- 請向下捲動頁面至
Hardware Configuration網頁介面中的該區段。 - 點選所需的虛擬機器網路介面卡以展開選項,並找出對應虛擬網路介面卡的 MAC 位址。

註: 在此範例中,我們使用由 vCenter Server 管理的 ESXi 主機,但目前已登入 VMware Host Client。這些虛擬機器是在 vCenter 中建立的。
VMware vSphere 中的虛擬機器搜尋功能允許您透過名稱查找虛擬機器,但無法透過 IP 位址或 MAC 位址進行搜尋。
根據 IP 位址識別虛擬機器名稱
如果您知道 IP 位址,可以使用以下方式識別虛擬機器名稱: vSphere PowerCLI.
- 連線至 ESXi 主機或 vCenter,並輸入管理帳戶的使用者名稱和密碼:
Connect-VIServer ESXi_or_vCenter_IP -User root - 在我們的情況下,我們使用以下指令連線至由 vCenter Server 管理的 ESXi 主機:
Connect-VIServer 10.10.10.74 -User root - 顯示具有指定 IP 位址之虛擬機器的最簡單指令是:
在哪裡 192.168.17.137 是待識別虛擬機器的 IP 位址。Get-VM * |where-object{$_.Guest.IPAddress -match "192.168.17.137"}
如果您知道 PowerCLI 中某台虛擬機的 IP 位址,還有另一種方法可以識別該虛擬機的名稱。在這種情況下,您需要執行兩條指令。
- 請指定要識別的虛擬機器之 IP 位址:
$vmIP="192.168.17.137" - 取得虛擬機器相關資訊:
Get-VM * |where-object{$_.Guest.IPAddress -eq $vmIP}|select Name, VMHost, PowerState,GuestId,@{N="IP Address";E={@($_.guest.IPAddress[0])}}|ft
- 如果您知道 IP 位址的一部分,即可顯示所有 IP 位址符合搜尋模式的虛擬機器。
$vmIP="192.168."
Get-VM * |where-object{$_.Guest.IPAddress -match $vmIP}|select Name, VMHost, PowerState,@{N="IP Address";E={@($_.guest.IPAddress[0])}} ,@{N="OS";E={$_.Guest.OSFullName}},@{N="Hostname";E={$_.Guest.HostName}}|ft
- 以下是一條用於取得主機或叢集中所有虛擬機器清單,並在可能的情況下顯示 IP 位址的指令:
Get-VM | Select Name, @{N="IP Address";E={@($_.guest.IPAddress[0])}}
此方法的缺點在於,有時 IP 位址只會顯示部分內容。
- 此外,還有一個命令可用於檢視叢集中的所有虛擬機器(叢集名稱包含
“cluster”字串)並在可能的情況下顯示 IP 位址:
Get-Cluster "*cluster*" | Get-VM | Select Name, Host, @{N="IP Address";E={@($_.guest.IPAddress[0])}}變更[0]至[1]如果您想顯示第二個 IP 位址,可以從指令中刪除這些字元,以查看顯示結果的差異。
透過 MAC 位址識別虛擬機器名稱
如果您知道虛擬機的 MAC 位址,也可以使用 VMware PowerCLI 來識別虛擬機名稱。
- 在 VMware PowerCLI 中連線至 ESXi 主機或 vCenter。在此範例中,我將連線至前一個範例中提到的 ESXi 主機:
Connect-VIServer 10.10.10.74 -User root - 請指定虛擬機器的 MAC 位址,並找出此虛擬機器的名稱:
$vmMAC="00:50:56:84:C4:5F"
Get-VM | Get-NetworkAdapter | Where-Object {$_.MacAddress -eq $vmMAC } | Select-Object Parent,Name,MacAddress
- 您可以透過 SSH 連線至 ESXi 主機,並使用 ESXi 命令列 介面)以透過虛擬機器的 MAC 位址來識別虛擬機器的名稱。
find /vmfs/volumes | grep .vmx$ | while read i; do grep -i "00:50:56:84:C4:5F" "$i" && echo "$i"; done
VMware 環境中的虛擬機器 MAC 位址
MAC 位址並非隨機分配。MAC 位址的前半部通常與相應的硬體或軟體製造商相關聯。
以 00:50:56 這些是屬於 VMware 虛擬機器的 MAC 位址,正如我在先前範例中識別 VMware 虛擬機器 MAC 位址時所示。
VMware MAC 位址有四種分配方式: 00:50:56, 00:0C:29, 00:05:69, 00:1C:14. 讓我們來看看 VMware MAC 位址區間的一些常見類別:
00:50:56– VMware 工作站、VMware vSphere、VMware ESXi 伺服器00:50:56:80:00:00 - 00:50:56:BF:FF:FF– vCenter、由 vCenter 管理的 VMware vSphere 虛擬機器00:0C:29– 獨立 ESXi 主機、VMware Horizon、VMware 工作站00:05:69– VMware ESXi、VMware GSX00:1C:14– VMware
根據 VMware OUI 分配方案,組織唯一識別碼 (OUI) 會用作 VMware MAC 位址的前綴。VMware vCenter 與 ESXi 主機會使用不同的 MAC 位址前綴,以避免在主機尚未連線至 vCenter Server、但日後可能連線至 vCenter 的情況下,發生 MAC 位址衝突。 若 ESXi 主機由 vCenter 管理,則 vCenter 會為 VMware 虛擬機器生成 VMware vSphere MAC 位址。
當虛擬機器的 MAC 位址是手動設定(在虛擬機器設定中)時,前綴(前三個八位元組)會自動保留。MAC 位址的後半部則可自訂。
若要手動為 VMware 虛擬機器設定 MAC 位址,請使用此範本:
00:50:56:XX:YY:ZZ
- 建議的十六進位數值,取代
XX是一個介於00以及3F. - 有效的數字為
YY以及ZZ數值範圍在00以及FF(全系列)。
遵循這些建議,可協助您避免手動設定的 MAC 位址與 VMware vCenter 自動產生的 VMware MAC 位址,以及指派給 VMkernel 介面卡的 MAC 位址之間發生衝突。請注意,手動設定的 VMware MAC 位址的最大值為 00:50:56:3F:FF:FF 如果 00:50:56 使用前綴 (OUI)。此方法亦有助於識別手動及自動指派的 VMware MAC 位址。請注意,網路中的所有 MAC 位址都必須是唯一的。
vCenter 唯一識別碼的計算方式
讓我們進一步探討識別 VMware vCenter MAC 位址的其他面向。
如前所述,vCenter 的 MAC 位址是從以下範圍中分配的 (00:50:56:80:00:00 - 00:50:56:BF:FF:FF) 在 00:50:56:XX:YY:ZZ 格式。
在這種情況下,該 XX 該值是根據 vCenter 唯一識別碼計算得出的。
XX=80+vCenterID
如果您知道 vCenter 的 MAC 位址,即可計算出 vCenter Server 的唯一識別碼(範圍為 0 至 63)。
讓我們以一個實例來說明:當 vCenter Server 部署為虛擬機器,且其網路介面具有 VMware MAC 位址時:
00:50:56:9B:48:55
減去 80 來自 9B (十六進位)。您可以使用 HEX 計算機。
0x9B - 0x80 = 0x1B
將 HEX 將數值轉換為十進制數值:
0x1B = 27
vCenter 唯一識別碼是 27 在此情況下。
獨立主機上虛擬機器(VM)的 VMware MAC 位址
現在,讓我們透過一個獨立 ESXi 主機上虛擬機器 (VM) 的 MAC 位址生成範例,來了解獨立 ESXi 主機是如何生成虛擬機器的 MAC 位址,並掌握其生成原理。虛擬機器的通用唯一識別碼 (UUID) 的最後六個字元,將用於填入該虛擬機器 VMware MAC 位址的最後三個八位元組。在獨立 ESXi 主機上建立的虛擬機器,其 VMware MAC 位址的前三個八位元組為 00:0C:29.
在下方的螢幕截圖中,您可以看到一臺具有以下參數的虛擬機器:
MAC 位址: 00:0C:29:B0:3E:1D
虛擬機器名稱: Windows-VM
讓我們檢查虛擬機的 UUID,並比較 UUID 的最後幾個字元與虛擬機的 MAC 位址。
您可以在 PowerCLI 中使用以下指令檢查虛擬機的 UUID:
Get-VM Windows-VM | %{(Get-View $_.Id).config.uuid}
在我們的情況下,UUID 是 564df9a2-261e-869e-5a1d-d118abb03e1d
而 MAC 位址是 <em>00:0C:29:B0:3E:1D
如您所見,這條規則確實有效。
結論
您可以在 VMware vSphere Client 和 VMware Host Client 的圖形使用者介面中查看虛擬機器 (VM) 的 MAC 位址和 IP 位址。此外,如果您知道虛擬機器的名稱,也可以使用 ESXi 命令列或 PowerCLI 來偵測該虛擬機器的 MAC 位址。 若您已知虛擬機器的 IP 或 MAC 位址,亦可使用 VMware PowerCLI 來識別虛擬機器的名稱。了解 VMware 虛擬基礎架構中為虛擬機器及其他裝置分配 MAC 位址的原則,有助於您在檢查連線裝置的 MAC 位址時,從網路中的其他裝置中識別出與 VMware 相關的裝置。
請勿忘記備份在 VMware vSphere 上運行的虛擬機器。請使用可靠的 VMware ESXi 備份軟體,例如 NAKIVO Backup & Replication 以實現強大的資料保護。此解決方案支援虛擬機器備份、實體伺服器備份、資料庫備份以及 Microsoft 365 備份。

