Hyper-v为虚拟机设置固定IP
🕙2023-06-28
Hyper-V自带一个不能删除的Default Switch虚拟交换机,虚拟机使用该网络可以自动获取IP直接上网。但这个网络的网关地址每次重启后都会改变,所以你无法在虚拟机上设置固定IP用于宿主机SSH访问。
创建内部虚拟交换网络
通过Hyper-V管理器的“虚拟交换机管理”界面创建一个新的虚拟交换机(假设名字为MyPrivateNet,类型为“内部”):
设置虚拟交换机地址
然后到Windows的“网络连接”里把vEthernet(MyPrivateNet)的IP设为固定IP,比如192.168.218.1
。这样设置也决定了192.168.218.x
就是以后虚拟机的网段:(网段也可自己随便设置,只要是本地保留网段就行)
为虚拟机添加新网卡
在虚拟机上新增加一个网卡(需要在虚拟机关机的状态下添加),加上原来的网卡,虚拟机就有两块网卡。然后将第一块网络适配器的虚拟交换机选为Default Switch,第二块选择前面新建的MyPrivateNet:
虚拟机新网卡配置
以centos为例,首先需要复制eth0网卡
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
编辑新的eth1网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth1
需要改变的内容如下
BOOTPROTO
设成static
NAME
和DEVICE
改为eth1
- 删除
UUID
(不能和eth0相同) - 加上
IPADDR=192.168.218.2
和NETMASK=255.255.255.0
(注意:IP必须与MyPrivateNet一个网段,不需要设置GATEWAY)
例子如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=eth1
DEVICE=eth1
ONBOOT=yes
DNS=8.8.8.8
IPADDR=192.168.218.2
NETMASK=255.255.255.0
最后重启网络就行了
/etc/init.d/network restart