Hyper-V 中的埠鏡像:設定指南
故障排除是網路系統管理員的常見任務。專業的網路設備通常具有監控與故障排除的特點,例如埠鏡像。埠鏡像對於分析虛擬環境中的網路流量亦相當有用,包括 Microsoft Hyper-V 主機上的虛擬網路,以及虛擬機器之間的網路通訊。這篇部落格文章將說明如何設定 Microsoft Hyper-V 埠鏡像,以分析虛擬環境中的網路通訊。
埠鏡像的關鍵概念
在說明如何設定埠鏡像之前,讓我們先來了解相關的關鍵概念、運作原理以及現有的 Hyper-V 特點。
什麼是埠鏡像?
埠鏡像是一項功能性,可將來源主機網路埠的網路流量複製到次級主機的網路埠(網卡)上,以便進一步分析該流量。 主機可以是實體機器、虛擬機器、具備網路介面的網路設備等。在此情境中,來源主機是指其網路流量受到監控的主機。來源埠亦稱為"鏡像埠",而目標埠則稱為"監控埠"。埠鏡像功能亦稱為"交換埠分析器"(SPAN)。
類型與好處
端口鏡像可分為本地和遠端兩種,具體取決於端口之間的連接模式。對於本地端口鏡像,來源和目標網路端口連接至同一台交換機。 當來源與目標埠連接至不同交換機時,則採用遠端埠鏡像。遠端埠鏡像可使用 VLAN 標記與 GRE 封裝技術,將網路流量傳輸至受監控的埠與裝置。
埠鏡像的優勢在於能夠在不影響正常運作的網路裝置處理流程下,分析與除錯網路通訊。管理員可透過分析流量來識別網路上的潛在攻擊、偵測攻擊來源,並提升網路安全性。 使用埠鏡像時,無需直接在運作中的機器(例如生產環境虛擬機器)的客體作業系統中擷取網路流量。
請注意,埠鏡像會消耗額外的網路頻寬來傳輸鏡像流量,因此您可能需要根據需求,在需要執行網路分析時才啟用此特點。
埠鏡像與埠轉發的比較
埠鏡像與埠轉發有所不同,因為在埠鏡像中,網路流量(例如 TCP 封包或 UDP 資料包)無法被重新導向。流量可以被鏡像(複製),但原始流量方向的來源與目的地並不會改變。 原始流量的副本會被傳送至目的地進行分析。
在端口轉發中,流量(例如 TCP 封包或 UDP 數據報)的目的地可以被更改,且特定的封包(或其他協定資料單元)能夠抵達 IP 網路中的另一個 IP 位址和端口。端口轉發通常與網路位址轉換(NAT)配合使用,以實現網路間的通訊。此過程中不會建立原始流量的副本。
Hyper-V 中的埠鏡像
您可以使用 Hyper-V 中的埠鏡像功能性,來分析虛擬機器透過虛擬交換器連線至的虛擬網路中的流量。您需要指定目標虛擬機器,並安裝流量擷取軟體,例如 Wireshark 用於流量分析。您也可以使用其他可用的入侵偵測系統 (IDS) 來達成此目的。
Hyper-V 埠鏡像特點類似於硬體埠鏡像,但是在 Hyper-V 虛擬交換機層級實現的。Hyper-V 虛擬交換機會利用交換機擴充功能和埠存取控制清單 (ACL) 來設定轉發與流量嗅探的規則。
埠鏡像僅在單一 Hyper-V 主機的範圍內有效。若虛擬機器位於不同的 Hyper-V 主機上(例如在故障移轉叢集中,或虛擬機器從一個主機遷移至另一個主機後),則無法使用 Hyper-V 埠鏡像。在此情況下,您需要在來源虛擬機器遷移至的第二台 Hyper-V 主機上,額外配置一台目標虛擬機器以進行網路分析。
準備進行埠鏡像設定
您應先熟悉設定 Hyper-V 埠鏡像的需求。
先決條件與設定要求
以下是在 Hyper-V 環境中設定埠鏡像的功能需求:
- Windows Server 2012 R2(或更新版本),需具備 Hyper-V 功能及管理員權限。客戶端作業系統可使用 Windows 10 或更高版本。
- Hyper-V 主機上的虛擬交換器。
- 至少需要兩台虛擬機器,用以將來源虛擬機器的流量鏡像(複製)至目標虛擬機器。
硬體與軟體檢查清單
必須在目標虛擬機器上安裝流量嗅探器(流量分析器)或入侵偵測系統。此類工具的範例包括 Wireshark, Microsoft Network Monitor, Ettercap,以及 SmartSniff.
設定步驟
我們在 Hyper-V 主機上有兩台 Windows 虛擬機器:
Wind0ws-VM– 來源虛擬機器 (192.168.101.215)Win-VM-Dest– 目標虛擬機器 (192.168.101.212)
已在 Windows Server 2019 上設定 Hyper-V 主機。其他受支援的 Windows 版本之設定方式完全相同。
設定虛擬交換器
您可以使用現有的虛擬交換機,或建立新的虛擬交換機。如果 Hyper-V 主機上沒有虛擬交換機,請建立一個新的 虛擬交換器. 若要建立虛擬交換器,請執行以下步驟:
- 開啟 Hyper-V 管理員,右鍵點擊 Hyper-V 主機,然後按下
Virtual Switch Manager在右鍵選單中。
- 選擇虛擬交換機類型,然後按下
Create Virtual Switch. 為此,我們使用vSwitch0,一個外部交換器(橋接網路)。按下OK以儲存設定並關閉視窗。
設定來源虛擬機器
虛擬交換器準備就緒後,即可設定您要監控其流量的來源虛擬機器。
- 要在 Hyper-V 管理員中開啟虛擬機器設定,請右鍵點擊虛擬機器名稱,然後按下
Settings在右鍵選單中。
- 在虛擬機器設定視窗中,請導航至
Network Adapter > Advanced features. - 在
Port Mirroring區段,請選擇Source在下拉式選單中選擇"鏡像模式"。此操作將為虛擬機器當前連接的虛擬交換機埠啟用 Hyper-V 埠鏡像功能。按下OK以儲存設定。
- 請記下來源虛擬機器(VM)的虛擬網路介面所連接的虛擬交換機名稱。其優點在於,您可以設定多台來源虛擬機器,以分析目標虛擬機器上所有虛擬機器的流量。
下一步是設定目標虛擬機器,網路流量將被鏡像(複製)至該虛擬機器。
設定目標虛擬機器
建議的做法是在目標虛擬機器上建立一個額外的網路介面卡,並停用該網路介面卡的所有網路服務,以便進行更精確的分析。透過此方法,您可以在停用不必要的網路服務與協定後,取得完整的網路流量擷取檔。
- 如果目標虛擬機器正在執行,請將其關閉。
- 要開啟目標虛擬機器的設定,請在 Hyper-V 管理員中右鍵點擊虛擬機器名稱,然後按下
Settings. - 點擊
Add hardware在虛擬機器設定視窗的左側窗格中,選取Network adapter,然後按下Add.
- 請選擇將第二個虛擬網路介面卡連接至的虛擬交換機。此虛擬交換機必須與第一個(來源)虛擬機器所連接的虛擬交換機相同。在本例中,這是
vSwitch0. 點擊OK以儲存設定並關閉視窗。
- 再次開啟目標虛擬機器的設定。
- 選取為埠鏡像和流量診斷所建立的第二個虛擬網路介面卡(位於左側窗格的虛擬機器硬體清單中),然後前往
Network adapter > Advanced features. - 在
Port mirroring區段,選擇Destination作為鏡像模式,用以接收鏡像網路流量。按下OK.
- 開啟虛擬機器。
- 連線至已建立用於接收和分析流量的目的地虛擬機器(使用 Hyper-V VMConnect 或 RDP)。

- 開啟
Network and sharing center在目標 Windows 虛擬機器中。按一下Change adapter settings. - 請選取為流量分析所建立的第二個網路介面卡(您可以將此介面卡重新命名為
LAN2-SPAN(以便更方便)。 - 右鍵點擊網路介面卡,然後按下
Properties.
現在,您可以安裝並設定用於網路流量分析的軟體,例如 WireShark,在目標虛擬機器上。
安裝流量分析器
- 下載 並安裝
Wireshark在目標虛擬機器上。透過圖形化介面精靈進行安裝的過程相當簡單——您可以直接使用預設設定。 - 執行
Wireshark在目標虛擬機器上。 - 請雙擊專門用於埠鏡像和網路流量分析的網路介面卡(
LAN2-SPAN) 在Wireshark視窗。
- 現在,您可以查看來源虛擬機的網路活動(來源虛擬機的 IP 位址為 192.168.101.215)。讓我們在來源虛擬機上對 google.com 執行 ping 指令。
- 我們可以看到發送至 142.251.208.110 以及來自該位址的 ICMP 請求與回應,該 IP 位址正是 google.com 主機當前的位址。

- 為了更方便起見,您可以啟用篩選器,例如選擇 ICMP。

這是一個基本範例。您可以使用其他通訊協定來監控和分析其他網路活動。
PowerShell
Windows Server 作業系統也允許您在 PowerShell 中設定和管理 Hyper-V 埠鏡像功能。
若要在來源和目標虛擬機器上啟用埠鏡像功能,請依情況執行以下指令:
Set-VMNetworkAdapter -VMName Wind0ws-VM -PortMirroring Source
Set-VMNetworkAdapter -VMName Win-VM-Dest -PortMirroring Destination
若要停用虛擬機器的埠鏡像功能:
Set-VMNetworkAdapter -VMName Wind0ws-VM -PortMirroring None
要檢查虛擬機的埠鏡像設定:
(Get-VMNetworkAdapter -VMName Wind0ws-VM).PortMirroringMode
(Get-VMNetworkAdapter -VMName Win-VM-Dest).PortMirroringMode
您可以使用以下指令來顯示說明資訊:
Get-Help Set-VMNetworkAdapter
Get-Help Set-VMNetworkAdapter -full
Get-Help Set-VMNetworkAdapter -detailed
Get-Help Set-VMNetworkAdapter -examples
以下指令對於設定埠鏡像功能可能有所幫助:
Add-VMNetworkAdapter – 為虛擬機器新增一個虛擬網路介面卡
Get-NetAdapter – 顯示虛擬機器的網路介面卡清單
Rename-Netadapter – 變更虛擬機器虛擬網路介面的名稱
結論
您可以透過 Hyper-V 管理員的圖形使用者介面或 PowerShell 輕鬆設定 Hyper-V 埠鏡像。請遵循相關需求,並留意各項限制,例如來源與目標虛擬機器在單一 Hyper-V 主機上的位置。若您在故障移轉叢集中,可能需要於 Hyper-V 主機上配置額外的目標虛擬機器,並在這些虛擬機器上安裝流量分析工具。 Wireshark 這是一款方便且廣受歡迎的流量分析工具,但如有需要,您也可以使用其他工具。