平时在开发或者学习时,经常会使用到虚拟机来搭建集群或者分布式环境
这里简单介绍下虚拟机的三种网络连接方式:
1、桥接模式:桥接模式可以让你的虚拟机的ip和Windows的ip在同一个网段.这样有什么好处呢,好处就是:只要A电脑和B电脑在同一个网段当中(连了同一个网络,或者插着同一家公司的不同网线,理论上就叫在同一个网段当中),这样A电脑上的虚拟机,B电脑也能访问得到,这样就可以使用几台配置不太好的Windows电脑每台都配置一个虚拟机,让这些虚拟机组成一个大数据的集群
2、NAT模式:可自动获取ip,不需要设置即可实现上网,缺点不能和主机通信.本篇文章就以NAT模式实现虚拟机访问外网,同时物理机也可以访问虚拟机但是虚拟机无法访问物理机的目的.
3、HOST模式:虚拟机之间可以通信,但是和主机不能通信
NAT模式需要注意的几个问题: NAT上网首先需要查看物理机(pc机)这个服务器已经启动.上网的原理:流量是走的物理网卡,但是它的ip,却是和物理机没有关系的.
下面以vmware安装centOS7服务器后,使用NAT模式配置网络以达到centOS7访问外网以及与物理机互相访问的目的:
1、在用VMWare装载了一个虚拟机之后,在“网络连接”那会看到多了两个虚拟网卡图标
2、查看物理机网络配置
打开CMD命令窗口,输入下面命令查看
ipconfig /all
如下图所示:
记录下IP地址、子网掩码、网关地址等,这些很重要因为,我们在后面虚拟机的设置会用到
2、打开vmware虚拟机,选中刚才创建的虚拟机,我们可以在选项栏的“编辑”菜单下的“虚拟网络编辑器”中看到VMnet1(仅主机模式)、VMnet8(NAT模式)两个虚拟网卡的状态.
选中VMNet8虚拟网上,点击更换设置,然后不勾选"使用本地DHCP服务将……",将子网IP、子网掩码分别设置为刚才物理机网络配置的IP段与网关地址,如下图所示
点击“NAT设置”,在弹出的NAT设置界面,输入虚拟网卡的网关地址,如下图所示:
该地址需跟物理机同一个网段内,但是IP地址不可与物理机重复即可
3、服务器版网络配置
1、进入centOS虚拟机操作系统,输入下面命令查看网卡配置,结果如下:
ip addr
然后输入以下命令来配置ens33网卡的网络
vi /etc/sysconfig/network-scripts/ifcfg/ens33
修改以下内容,如图所示:
编辑好以后,按ESC键,然后输入:x保存并退出
最后输入下面命令重启网络服务即可
service network restart
如重启网络服务出现下面错误:
Restarting network (via systemctl): Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
可参考如下方法尝试解决:
1、使用下面命令查看/etc/sysconfig/network-scripts下以ifcfg开头的文件,将其余无关的网卡位置文件全删掉,避免不必要的影响,留的那一个应和使用ip addr命令查看ip第二条开头的名称一致
ls /etc/sysconfig/network-scripts | grep ifcfg*
ip addr
记录下ens33网卡的mac地址,如图所示
2、使用下面命令编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件中的HWADDR项(如果没有就添加上), 改成上面这个MAC地址,然后将文件中的DEVICE一行注释掉
vi /etc/sysconfig/network-scripts/ifcfg-ens33
编辑后内容如下:
保存并退出编辑,最后输入以下命令重启网络服务
service network restart
尝试访问外网,结果如下图所示:
物理机访问虚拟机结果如下图所示: