linux虚拟机网络服务问题
这里说一下我遇到的一个网络问题,前天修改了虚拟机的主机名,重启虚拟机之后,使用新的主机名和IP都可以访问虚拟机,但昨天开启虚拟机之后,宿主机使用主机名和IP都不能访问虚拟机,于是,我通过ifconfig命令去查看网卡的运行情况,发现eth0没有显示IP地址。然后我修改interfaces文件使用静态IP、网关、将主机名改回原来的名字等等,ip倒是显示出来了,但网络并没有ping通。今天我重新启动虚拟机,竟然网络可以ping了,之后查询了网络连接的三种模式及看到以下文章时,才恍然大悟,应该是以下服务没有正常启动,导致DHCP服务器没有给eth0正常分配动态IP或net服务关闭。解决这个问题,走了很多弯路,同时,我也学到很多东西。也切身明白了一个道理“解决问题的过程才是你学习和成长的过程”,通过这个过程,你会直接的了解和熟悉整个网络的一个架构。
下文转自万能的网友野火:https://www.cnblogs.com/hell8088/p/vmware.html
当我们安装VMware Workstation后,在宿主机(物理电脑)上会多出两个网卡,VMNet1、VMNet8,在虚拟机设置里会多出一个配置 VMNet0。
如下图:
接下来我们分别说明下:
- VMNet1
使用的是host-only的链接模式,即虚拟机只能与主机构成内部通信,无法对外网进行访问。
- VMNet0
模式:
使用桥接模式,安装VM后,在VM里建立虚拟机 默认 就是该模式。
场景:
如果你只是需要一台虚拟机可以和宿主互通,并可以访问外网,此模式即可。
描述:
安装虚拟机系统后不需要调整网络,物理网络中的 “路由” 所包含的DHCP服务器会自动识别该虚拟机并为其分配IP地址;
如果没有路由,可以自己手动在系统分配,原则是和宿主机在同一网段并指向相同的网关即可通信。
- VMNet8
模式:
NAT网络模式
场景:
在宿主机安装多台虚拟机,和宿主组成一个小局域网,宿主机,虚拟机之间都可以互相通信,虚拟机也可访问外网,例如 搭建 hadoop 集群,分布式服务
设置步骤:
step1
查看VMNet 8 的IP 网段,见Step1的第二张图
网段 192.168.204.0
子网掩码 255.255.255.0
网关 192.168.204.2
第三张图是宿主机上的 VMNet 8 网卡的地址
IP地址 192.168.204.1
Step2
记住上面的网络信息,开始配置虚拟机,首先调整虚拟机的网络模式为NAT模式
Step3
配置后启动虚拟机,我使用的是Cent OS 6.4系统(Linux),使用配置文件配置网络,下面两张图是静态IP和网关的配法。(windows请自行配置网络)
如果不需要锁定静态IP(比如hadoop不锁定IP很麻烦),那跳过Step3。
因为NAT模式下,VM Net8 虚拟交换机 所带的虚拟DHCP服务器会自动分配网络地址,如果需要查看或设置可在Step1查看网络信息时进行设置。
Step4
配置网络后,检测下虚拟机的网络状况
到此,我们的虚拟网络环境就配置好了 。
接下来我们简单介绍下VM Net 8原理,VMWare安装后,会给宿主机安装VM Net8网卡,同时虚拟出一套VM Net 8 使用的虚拟路由(包含交换机 和 虚拟DHCP服务器)
主机和虚拟机实际上都是通过虚拟路由通信,虚拟路由通过宿主使得其他虚拟机也可以访问外网
如下图:
注:
1. 如果是真的使用虚拟机做服务器,用VM Server搭建系统,那就要是用VM Net0,直接连在物理网络,并配置静态IP锁定虚拟机服务器的IP地址
2. VM Net 8 适合在本机或者服务器上搭建多台虚拟机,组件局域网使用。
3. 设置VMNet 8 后,虚拟机和主机、外网以及其他虚拟机可以互相通信了,但主机无法ping通网关,没有在进一步研究 VM 通信原理,到此已经完全可以满足使用。