在网上看到很多篇文章,自己也去试验过,结果实现的效果都不是很理想,并不是自己所需要的,下面是我自己研究,最后成功的经验,希望能够帮到大家。少走一些弯路。


需求

1.无论物理机的网络环境怎么变化,都需要保持虚拟机的IP地址不变,保证我本机使用xshell等终端访问始终用同一个IP地址,或者在安装了其他软件后,访问虚拟机的IP地址保持不变。

2.物理机可访问虚拟机,虚拟机是否可访问网络都行。重点保证本机可访问虚拟机,以及虚拟机之间能互相访问。

3.无论物理机的网络环境怎么变化,虚拟机可以连接到外网。


hyper-v会自动生成一个default switch,根据微软的描述,default switch是为了无论物理机的网络环境怎么变化,虚拟机可以连接到外网。 一句话,物理机可以上网,虚拟机就可以。

这里以centos7为例

固定IP

  1. 新建虚拟机

虚拟机centos配置ip地址_IP

  1. 应用虚拟机

虚拟机centos配置ip地址_虚拟机centos配置ip地址_02

  1. 设置虚拟交换机的IP

打开控制面板,进入网络与共享中心,更改适配器的设置。找到刚才创建的虚拟机交换机。右键属性,修改IP地址。IP地址随你喜好,我这里用的IP:192.168.137.1,子网:255.255.255.0

虚拟机centos配置ip地址_外网_03

  1. 修改虚拟机IP

打开虚拟机进入到network-scripts目录

cd /etc/sysconfig/network-scripts
vi ifcfg-eth0

PS: 不是所有的都是ifcfg-eth0文件,这个需要自己去查看。
主要修改一下键值:

BOOTPROTO=static # 将dhcp设置为static
DEVICE=eth0 #名称
ONBOOT=yes # 开机启动 IPADDR=192.168.137.200 # 这个需要和你前面设置的IP网段一样 GATEWAY=192.168.137.1 # 网关 DNS1=192.168.137.1 # 第一个DNS NETMASK=255.255.255.0 #子网掩码

设置完成效果:

虚拟机centos配置ip地址_运维_04

重启网络

systemctl restart network

查看IP

ip addr

虚拟机centos配置ip地址_IP_05


现在就可以用xshell连接到虚拟机了!!!不要告诉我你不会xshell。。。

记得把虚拟机关机,因为后面我们还有操作需要在虚拟机关机状态下完成。

连接外网

现在xshell可以连接了,但是你如果ping百度的话,可能是ping不通的,现在就是要把网络添加到虚拟机上,前面说过,hyper-v会自动生成一个default switch,它可以让你的虚拟机无论物理机在什么网络下,都可以自动分配网络给虚拟机。现在我们就要用到这个default switch。

给虚拟机添加一个硬件配置。为什么我的是灰色的?这就是因为没有关掉虚拟机。

虚拟机centos配置ip地址_虚拟机centos配置ip地址_06


添加完成之后你就可以看到右边的硬件中多了一项 网络适配器,这个网络适配器就选择 default switch。

虚拟机centos配置ip地址_DNS_07

这个时候最好重启一下虚拟机,当然这个虚拟交换机IP最好是自动获取,DNS,也自动获取。系统会自动分配。
打开xshell 查看一下 IP

ip addr

虚拟机centos配置ip地址_IP_08

这个是时候,在ping 百度。

ping www.baidu.com

虚拟机centos配置ip地址_DNS_09

到这里就大功告成了!!!

PS:前面的配置虚拟机的网络配置顺序不要错,如果你先选择的是default switch,是不能用xshell 连接的。具体的道理,就不说了。自己体会。