Hyper V 內部網絡(NAT)設置 配置固定IP / DHCP


Hyper V 默認的Default Switch同時支持了NAT網絡以及DHCP,虛擬機能夠訪問外網。
但使用過程中發現這個IP網段經常變化,而且Hyper V沒有提供管理其NAT網絡與DHCP的圖形化界面功能。
如果開發者需要同時管理多個VM,且在局域網中無法為他們單獨分配固定IP時,使用可自行配置的NAT網絡顯得尤為重要。

本文提供一種自定義管理Hyper V NAT網絡的方法,虛擬機能夠通過固定IP連接至該網絡,且能夠訪問外網。

如果你能夠為虛擬機在外部網絡中分配一個固定ip,應該優先考慮使用橋接模式,即創建“外部”虛擬交換機,跳過本教程。

目標

添加一個Switch能夠支持 192.168.56.0 / 24 網段,並能夠將 Linux(CentOS 7) 虛擬機通過固定IP連接到該網段。
支持物理機與虛擬機的相互訪問,且支持虛擬機訪問外網。

配置

以管理員身份啟動PowerShell ,執行下列命令

# 創建虛擬交換機,等同於在Hyper-V管理器界面中新建虛擬網絡交換機
New-VMSwitch -SwitchName "NAT-VM" -SwitchType Internal
# 查看 NAT-VM 的 ifindex
Get-NetAdapter
# 創建ip,InterfaceIndex參數自行調整為上一步獲取到的ifindex。這一步等同於在 控制面版-網卡屬性 中設置ip
New-NetIPAddress -IPAddress 192.168.56.1 -PrefixLength 24 -InterfaceIndex 6
# 創建nat網絡,這一步是教程中的關鍵命令,24為子網掩碼位數,即:255.255.255.0
New-NetNat -Name NAT-VM -InternalIPInterfaceAddressPrefix 192.168.56.0/24

在Hyper V管理器中設置該Linux虛擬機的網絡適配器為 NAT-VM

設置Linux網絡靜態ip

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

DEVICE="eth0"
TYPE="Ethernet"
DEFROUTE="yes"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR="192.168.56.101"
PREFIX="24"
GATEWAY="192.168.56.1"
DNS1="223.5.5.5" #需使用外網DNS,通過網關IP無法獲取DNS
DNS2="119.29.29.29"

CentOS還可通過管理工具nmtui來設置ip

重啟linux網絡

service network restart

錯誤處理

操作失誤或需要修改nat網絡時,可以刪除之前的創建的nat網絡。
進行下面前你應該確認僅有一個nat網絡

Get-NetNat #確認獲取到的nat只有一個且是你想要刪除的
Get-NetNat | Remove-NetNat #刪除nat網絡

win10 1903 有時會出現NAT網絡無法訪問外網的情況,此時需要重啟物理機才能恢復正常。猜測與電腦睡眠或網絡環境變化有關。

DHCP

前面我們已經可以通過固定ip訪問網絡,但是你需要為每個虛擬機配置一個固定Ip,
比起其他vm工具,還是缺少了一個dhcp網絡。
如果你需要自動分配,可通過配置第三方的dhcp服務軟件實現,例如tftpd64 、 dhcpserver

tftpd64

http://www.tftpd64.com/

  1. 下載服務版
  2. 在windows防火牆中,添加例外配置
  3. 配置dhcp服務

dhcpserver

下載: http://www.dhcpserver.de/cms/
使用方法:https://blog.csdn.net/candy1232009/article/details/80785367

注意:發現dhcpserver會影響win10的移動熱點功能

虛擬機硬盤轉換工具 vmware <=> hyper-v

https://www.starwindsoftware.com/starwind-v2v-converter

參考:
https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network
https://anandthearchitect.com/2018/01/06/windows-10-how-to-setup-nat-network-for-hyper-v-guests/
https://github.com/docker/for-win/issues/1378#issuecomment-502380490


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM