記錄下如何修改Hyper-v虛擬機為靜態IP。
Hyper-v會自帶一個Default Switch
交換機,這個交換機使用NAT網絡,並不允許修改。
-
首先使用這個交換機啟動虛擬機
-
使用
ifconfig
或ip addr show
查看虛擬機IP,並記錄下來 -
使用
ip route show
查看虛擬機的網關地址。也可以直接在windows中找到Hyper-v創建的虛擬網卡vEthernet (Default Switch)
,這個虛擬網卡的IP地址就是虛擬機的網關地址。default via 172.24.112.1 dev eth0 #這里的ip地址就是網卡eth0的網關地址。 default via 172.24.112.1 dev eth0 proto static metric 100 169.254.0.0/16 dev eth0 scope link metric 1002 172.24.112.0/20 dev eth0 proto kernel scope link src 172.24.112.71 metric 100
-
修改虛擬機網卡配置文件(做好備份),在
/etc/sysconfig/network-scripts
中,修改或添加以下加注釋的內容TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no #指定ip為靜態的,默認為dhcp,動態分配 BOOTPROTO=static #ip地址 IPADDR=172.24.112.71 #網關地址 GATEWAY=172.24.112.1 #子網掩碼 NETMASK=255.255.240.0 #dns1 DNS1=114.114.114.114 #dns2 DNS2=8.8.8.8 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=86b208e4-6fe7-45b4-b88d-9f02bac9bd1c #網卡設備名 DEVICE=eth0 #開機自動啟動 ONBOOT=yes
-
systemctl restart network
重新啟動network服務。 -
ping www.baidu.com
測試網絡連通性
一般這時就成功了,可以重啟虛擬機試試。
但是,Hyper-v的Default Switch
交換機的IP每次重啟都會變化,而且不能設成不變的。這樣每次windows重啟后都需要將Default Switch
交換機的IP改成我們配置的網關的地址,虛擬機才能正常訪問網路。
解決辦法:按照Hyper-v官方文檔(setup-nat-network(設置NAT網絡))設置新的NAT虛擬交換機。
-
在Hyper-v管理器中使用右邊的虛擬交換機管理器,創建一個內部的虛擬交換機。
-
在windows中找到新創建的虛擬網卡(設置=>網絡和Internet=>狀態=>更改適配器選項)
-
將其IP修改為虛擬機網關地址,子網掩碼和DNS(選做)改成和虛擬機一樣。
-
上面都做完后只需要做官方文檔的第5步(使用New-NetNat配置 NAT 網絡。)就行了:
這里說下,New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24
這個命令最后的24是指子網掩碼的位數。一個ip是32位二進制數,IP最大為255.255.255.255。他這里用24,是因為前面他設置的子網掩碼是255.255.255.0,這種情況下子網前綴就可以是IP的前24位+0,即將IP點分4段中的最后一段改成0即可。
這樣NAT網絡就設置好了。管理員權限下PowerShell中執行Get-NetNat
查看設置的NAT網絡。
注意:官方文檔提示,機器上只能有一個NAT網絡,在創建自己的NAT網絡前先執行
Get-NetNat | Remove-NetNat
移除現有的NAT(謹慎移除)。
以上都完成之后,我們就有了一個IP固定的NAT虛擬交換機,將虛擬機的交換機改成新創建的這個就行了。