Hyper-v虚拟机设置静态IP
记录下如何修改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虚拟交换机,将虚拟机的交换机改成新创建的这个就行了。