一、序言

首先,默认已经装好系统(相关文档很多,此处没太大难点),此时,可以看到宿主机多了两个网络分别是VMnet1和VMnet8

实际上,VMware帮我们新建了3个网络。这3个网络也是这篇日志需要总结的对象。这3个网路对应3种连接方式。

在分析这3种连接方式前,需要明确一个知识点。即虚拟机并非一个实体计算机,在这个问题里,即虚拟机没有真实的物理网卡。那么它的一切对外通信,都一定建立在宿主机的物理网卡上。

二、3种模式含义及设置

1、桥接模式-VMnet0

桥接模式下,宿主机物理网卡和虚拟网卡在拓扑图上处于同等地位,物理网卡和虚拟网卡相当于处于同一个网段(可以理解为新接入了一台设备,宿主机和虚拟机是完全平等的)。因此,两个网卡的IP地址也要设置为同一网段。这种模式下,需要手动配置ip等信息。在正式配置前,确认以下操作

(1)宿主机网络属性中相关选项已勾选 

            

                                              

(2)如果宿主机有多个网口,这里一定要手动选择实际上网的网口(VMware->编辑)

(3)配置虚拟机网络配置文件

    ①先获取宿主机网络连接的详细信息

       

 ②然后将上述信息配置到网络配置文件

vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"  # dhcp是自动分配
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="ens33" # 这个是网络的名字,随便叫啥
UUID="ea3b61ed-9232-4b69-b6c0-2f863969e750"
DEVICE="ens33"
ONBOOT="yes"

# 以下是新增,其实和windows里设置固定ip实质是一样的,只是这里没有图形界面
IPADDR="X.X.X.218" # 自定义虚拟机的ip地址,必须与主机在同一网段,不能和已有Ip冲突
NETMASK="255.255.255.0" # 设置子网掩码,跟宿主机一样
GETWAY="X.X.X.254" # 默认网关,跟宿主机一样
DNS1="X.X.X.25" # DNS,跟宿主一样

最后将网关信息和DNS服务器地址分别添加到对应文件(个人感觉上述文件已经包含完整信息,不需要再补充什么。但实测如果不进行下面操作,无法上网)

③补充网关信息

vi /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=zhangsan # 名字随便写
GATEWAY=X.X.X.254 # 默认网关和宿主机相同

④补充DNS服务器(关于DNS可查看我的另一篇日志 )通过一个网络错误简述DNS_Jiangugu的博客-CSDN博客

vi /etc/resolv.conf
# Generated by NetworkManager
nameserver X.X.X.25 # DNS,跟宿主一样

完成以上操作,虚拟机即可正常访问外网,局域网内主机也可和虚拟机相互访问。

2、NAT(Network Address Translation)模式-VMnet8

虚拟机借助宿主机的网络地址转换功能上网,我们可以先看下此模式下几个网络ip地址

NAT模式下虚拟机和宿主机地址的关系
名称地址
宿主机真实地址10.X.X.217
宿主机虚拟地址VMnet8192.168.217.1
虚拟机地址192.168.217.129

由以上易知,虚拟机地址和宿主机不在一个网段。因此,局域网内其他主机不能和虚拟机建立连接。然而宿主机却可以,关键点就在于宿主机还有一个虚拟网络和虚拟机网络在一个网段。反过来,虚拟机也正是借助了这个虚拟网络(VMware 192.168.217.1)来和宿主机进行通信,进而访问外网。相当于宿主机虚拟了一个路由器。桥接模式下,虚拟机和宿主机是同一个层次的;NAT模式下,虚拟机在更低一个层次。

                                                    NAT 模式网络结构示意图 

NAT模式下,如果设置自动分配地址。那就只需要①将/etc/sysconfig/network-scripts/ifcfg-ens33文件中BOOTPROTO="static"  改成"dhcp"。②VMware网络设置里更改相应选项

 当然,NAT模式相当于虚拟了一个路由器,那接入路由器的虚拟机自然也可以设置固定ip。只是注意,此时网络基本信息将不再是宿主机真实网络,而是下面的“路由器”信息

 这里没有DNS服务器地址,可以设置一些公共的服务器地址,如8.8.8.8

3、Host-Only-VMnet1

这种模式下,仅建立虚拟机和宿主机之间的连接。隔绝了外部网络,使得内网中的这台虚拟机更安全。此时,宿主机也会有一个虚拟的路由器,用于虚拟机和宿主机进行通信。只是,虚拟机不能通过宿主机访问外部网络

补充:

(1)桥接模式时,有一个可选项-复制物理网络连接状态。这个主要针对移动设备,如笔记本电脑。宿主机在有线网络和无线网络之间切换,对应的网络信息大概率会发生变化。如果没有勾选该选项,自动地址分配服务会重新分配,这时虚拟机的地址可能会改变。

               

(2)虚拟机可以访问外网,宿主机可以ping通虚拟机,但虚拟机不能ping通宿主机。主要是防火墙的问题,在防火墙设置里启用一条规则即可

 (3)Ubuntu系统的设置原理也基本一致,只是相关的文件名称和位置不太一样。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐