1、Default Switch(Hyper-v默认虚拟网卡)无法设置固定ip
Hyper-V自带一个不能删除的Default Switch虚拟交换机,虚拟机使用该网络可以自动获取IP直接上网。但这个网络的网关地址每次重启后都会改变,所以你无法在虚拟机上设置固定IP用于宿主机SSH访问。
微软官方说明:每次主机重启后Hyper-V会自动找一个未使用的网络然后修改Default Switch的网络地址
解决方法
用双网卡方案解决该问题。大概思路是用虚拟机第一块网卡连接Default Switch自动获得IP和DNS上外网,用第二块网卡设置内部固定IP地址用于宿主机或其它虚拟机SSH连接。具体操作步骤如下:
1、创建内部虚拟交换网络
通过Hyper-V管理器的“虚拟交换机管理器”界面创建一个新的虚拟交换机(假设名字为privateNet,类型为“内部”):
2、设置内部使用的虚拟交换机的地址
然后到Windows的“网络连接”里把vEthernet(privateNet)的IP设为固定IP,比如172.16.xxx.xxx。这样设置也决定了172.16.xxx.xxx就是以后虚拟机的网段:(网段根据自己网络环境设置)
3、为虚拟机添加新网卡
在虚拟机上新增加一个网卡,加上原来的网卡,虚拟机就有两块网卡。然后将第一块网络适配器的虚拟交换机选为Default Switch,第二块选择前面新建的privateNet:
4、虚拟机内设置两块网卡的网络配置
配置eth0
虚拟机启动后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,把BOOTPROTO改为dhcp,ONBOOT改为yes,
BOOTPROTO=dhcp #保持不变
NAME=eth0
DEVICE=eth0
ONBOOT=yes #从no变为yes
配置eth1
注意,如果你是创建虚拟机时就加了一个新网卡,则安装Centos后里面应该已经有/etc/sysconfig/network-scripts/ifcfg-eth1配置文件,如果是安装操作系统之后才新增网卡的,则可以通过以下命令从/etc/sysconfig/network-scripts/ifcfg-eth0拷贝一份修改:
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
修改重点是把BOOTPROTO设成static;把NAME和DEVICE改为eth1;ONBOOT还是yes;记得删除UUID那行(不能和eth0相同)。最后就是加上IPADDR=172.16.xxx.xxx和NETMASK=255.255.xxx.0(注意:IP必须与privateNet一个网段,不需要设置GATEWAY)。
BOOTPROTO=static
#删除UUID那行
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=172.16.xxx.xxx
NETMASK=255.255.xxx.0
重启网络:(如果报错就重启虚拟机)
/etc/init.d/network restart
或者 reboot
重启后后就可以从宿主机ssh到该虚拟机了,也可以与其它同网段的虚拟机通讯。
文章来源:https://www.toymoban.com/news/detail-498695.html
总结
可能还有其它解决方案,但目前是我用过最有效的方法了。
如有其它更好的解决办法,请评论区留言一起探讨!文章来源地址https://www.toymoban.com/news/detail-498695.html
到了这里,关于【Hyper-v 管理器虚拟机配置内网外网固定ip】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!