好一陣子我的筆電都沒辦法正常的使用 Hyper-V 來架設虛擬機,並不是 VM 無法使用,而是無法使用 Hyper-V 的「內部網路」( Internal network ) 並且讓 VM 動態取得 IP,每次都要用「外部網路」( External network ) 並且在區網內取得一個實體 IP 才能上網,而且有很多網路環境無法實驗,實在非常不便。最近由於在玩 Vagrant 的時候又再次遇到了這個問題,這才發現解決之道,因此特別撰文分享解決辦法。
首先,你要先在 Hyper-V 建立好一張虛擬交換器 (Virtual Switch),這裡我命名為 InternalSwitch (建議用英文命名),並將該虛擬交換器的連線類型設定為「內部網路」,如下圖示:

接下來這個步驟很重要,就是調整你的網路介面卡的設定,請執行 ncpa.cpl 啟動控制台中的「網路連線」視窗,找到你的 Wi-Fi 網卡介面,並開啟「內容」對話框。

接著則是要勾選「網際網路連線共用」,並且選擇一個要共用的網路介面,這裡請選擇你在步驟一設定的那一個網路卡介面,這個網路卡介面的名稱一定是 vEthernet 開頭,所以應該很好找。我之前就是沒有做好這一步,導致我的 Hyper-V 一直處於異常狀態。

設定完網際網路連線共用之後,由於 vEthernet (InternalSwitch) 被設定與 Wi-Fi 網路介面共享,所以以這個 vEthernet (InternalSwitch) 網路介面將會自動取得一個內部 IP 地址,並透過 NAT 自動連線到外部網路。這個步驟不用做任何設定。


接下來這個步驟則是跟 Vagrant 比較有關,你最好把 vEthernet (InternalSwitch) 的 網際網路通訊協定第 6 版 (TCP/IPv6) 這個項目給關閉 (取消勾選),以免遇到許多奇奇怪怪無法啟動 VM 的問題。

我的電腦終於可以正常使用 Hyper-V 啦!
如果你還有遇到其他的連線問題,底下的相關連結都可以查看看。
相關連結