background:
物理机:
windows 10 professional 64bit
可连通外网的网络,ip地址随意(ipconfig时候能看到一个192.168.0.*的常规内网ip)
此机器有且只有一个无线网卡,连接着公司里的wifi。
hyper-v已开启,装有windows server 2012 和 centos 7.5 64bit两个虚拟机。
现在想要实现什么效果?
- 物理机照常可上网
- vm中的windows,centos都可上网
- 这三台机器之间是局域网关系,互相间可以通信。
- 最好在此局域网内这三台机器的ip都可以指定(选作,但已经实现)。
- 不改变外部网络环境,不增减网络硬件,全靠软件配置。
配置如下:
物理机:
- hyper-v中,配置 virtual switch manager,新增一个交换机,external的,选定此物理机的无线网卡。并勾选下方的“allow management operating system to share this network adapter”
- 两个虚拟机的配置里,都选择这个网卡。
- 然后windows10 宿主机和windows server都应该是正常的ipv4地址,如192.168.0.4这样的。但是centos 7默认是ipv6的(命令 IP addr可看),所以这里又产生一个怎样让centos 7使用ipv4地址的问题。网上一搜很多方案。
- 此时,如果都关闭防火墙(具体关闭方式很容易找到,Windows不提,centos是 systemctl stop firewalld.service 命令),或者防火墙允许相应请求通过,则此时这三台机器就是同一个局域网内的,都是 192.168.0.*的。
- 然后分别给机器指定固定ip即可。windows的配置方式需要填写gateway、dns、netmask之类,不知道怎么填的话可以先执行一下 ipconfig /all命令,把这些都显示出来,然后就知道怎么配置了。
上图是windows 10 宿主机的配置。
windows server虚拟机的配置一样,当然不要把ip写成一样的了。
- 至于centos的网络配置问题,有两个内容:
一是怎样使用ipv4地址
二是怎样使用指定的ipv4地址
第一个问题不说了,很简单。
第二个跟第一个的设置几乎一样,都是修改 /etc/sysconfig/network-secripts/ifcfg-eth0 (当然你的未必是eth0)的内容并修改,只是增加了具体ipaddr、netmask、gateway、dns的配置而已。
以下上我的当前的这个文件的配置:
以上完美实现需求,特别记录一下。
虚拟机的网络总是浪费我很多时间,简直烦死人。
这两天还特意学习了一些网络知识,主要是子网掩码相关的,希望可以不再那么稀里糊涂似是而非。