VMnet0:桥接模式

VMnet1:主机模式

VMnet8:NAT模式

VMware Network Adepter VMnet1:宿主Host用于与 主机模式 虚拟网络进行通信的虚拟网卡

VMware Network Adepter VMnet8:宿主Host用于与 NAT模式 虚拟网络进行通信的虚拟网卡

1.桥接模式:这种模式下,虚拟机和物理机连的是同一个网络,虚拟机和物理机是并列关系,地位是相当的。比如,你家有路由器,那么你的电脑和你的手机同时连接这个路由器提供的Wi-Fi,那么它们的关系就是这种模式

2.NAT模式:这种模式下,物理机会充当一个“路由器”的角色,虚拟机要想上网,必须经过物理机,那物理机如果不能上网,虚拟机也就不能上网了。之所以说这种模式兼容性最好,是因为物理机的网络环境变化时,虚拟机的网络并不会有影响,比如,上班时你把物理机连接在公司的网络环境中,下班后又把物理机连接在你家的路由器上。你公司的网段有可能和你家的网段是不同的。桥接模式下,虚拟机和物理机一样,都要自动获取IP才可以上网,而做实验的时候,是需要把虚拟机设置为静态IP的,这样就导致虚拟机网络不稳定。而设置为NAT模式,虚拟机的网络并不需要依赖你公司的网络环境或者你家的网络环境。

3.仅主机模式:这种模式下,相当于拿一根网线直连了物理机和虚拟机。

一、桥接模式

桥接模式就是将主机网卡与虚拟网卡利用虚拟网桥进行通信。类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机IP地址需要与主机在同一网段,如果需要联网,则网关与DNS需要与主机网卡一致。

所以,桥接模式下的所有虚拟机都是和主机是在同一网段的,可以把它们看成是"平等"的关系,这就会带来一些麻烦,比如192.168.1段下只有254个主机地址,所以桥接模式下虚拟机和物理的总数不能超过这个数字!

配置方法

1、在系统的虚拟机设置中将网络连接模式选择为桥接模式:

2、因为桥接模式虚拟机与宿主机在同一网段下,我们先查看下宿主机的网络信息:

3、接下来在虚拟机中配置网卡(/etc/sysconfig/network-scripts/ifcfg-etho0文件):

注意,网关与DNS需要与主机相同,因为他们在同一网段下~

4、重启网络服务,测试:

二、NAT模式

上面说过,桥接模式可能会导致一定的ip资源紧缺,这时候NAT模式时最佳选择。

在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。VMware Network Adapter VMnet8网卡是为了实现主机与虚拟机之间的通信。

可见NAT模式下主机更像是虚拟机们的"路由器",通过VMnet8虚拟网卡为虚拟机分发地址。所以虚拟机和主机不再同一网段下,可以理解为主机是虚拟机的"上级",这也就是为什么桥接模式没有VMnet0这个虚拟网卡,因为桥接模式下的虚拟机和主机是"平等"的,共用同一个路由器呀。

配置方法

1、同上

2、因为主机是虚拟机的"路由器",所以我们需要去查看"路由器"给VMnet8这个交换机分配了哪一网段:(即虚拟网卡的ip)

3、同上,修改网卡配置:

4、重启网络服务,测试:

测试主机能否ping通虚拟机:

也就是说,VMnet8网卡的作用仅仅是主机与虚拟机之间的通信,访问外网是不通过VMnet8网卡的!

我们可以来做个测试

先把Windows系统中的VMnet8网卡禁用了

再来测试一下

主机(192.168.1.107)ping不通虚拟机(192.168.80.100)

虚拟机可以ping通外网,不过也可以ping通192.168.1.107(主机ip)!

而肯定ping不通192.168.80.1

我的理解是这样的,这时候主机和虚拟机就像一个路由器下的两个"主机",但虚拟机的ip是由与主机相连的VMnet8网卡决定的;虚拟机ping主机时,通过共同的路由器可以找到主机;而主机ping虚拟机时,如果有两个物理机,他们给虚拟机分发的网段是相同的,所以对应的虚拟机的ip是可能相同,而此时禁用了VMnet8,一个主机就无法找到对应的虚拟机了(可能与另一台主机下的虚拟机ip相同,此时虚拟机的ip无法再整个网络结构中唯一标识了)。

所以啊,NAT模式下的虚拟机时通过真实主机的ip访问外网。

三、仅主机模式

仅主机模式可有看成是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。

如果你懂了NAT模式,那理解仅主机模式起来就很简单了~

网络结构图:

配置方法

类似前面两种模式

查看VMnet1

所以肯定ping不同外网

有趣的是

主机能ping通虚拟机,而虚拟机不能ping通192.168.1.107

所以我们可以推测,虚拟机ping主机很可能是通过NAT模式下的NAT虚拟设备,而仅主机模式没有这个设备;而主机ping虚拟机是通过VMnet1网卡。而禁用NAT虚拟设备有些困难,我们也不太好验证。

虚拟机自然可以ping通192.168.224.1

原文地址:https://blog.csdn.net/qq_39192827/article/details/85872025#%E4%BA%8C%E3%80%81NAT%E6%A8%A1%E5%BC%8F

网络结构图来自于:https://www.linuxidc.com/Linux/2016-09/135521p3.htm

Centos7.0 三种网络适配器的更多相关文章

  1. Linux之VMWare下Centos7的三种网络配置过程

    Linux之VMWare下Centos7的三种网络配置过程 环境: 虚拟软件:VMWare 14.0 客户机:windows 10 虚拟机:centos 7 VMware三种网络连接方式 Bridge ...

  2. Linux的VMWare下Centos7的三种网络配置过程(网络二)

    Linux之VMWare下Centos7的三种网络配置过程 环境:虚拟软件:VMWare 14.0客户机:windows 10虚拟机:centos 7 VMware三种网络连接方式 Bridge(桥接 ...

  3. Linux的三种网络适配器

    Linux的三种网络适配器 分别为:桥接模式(Bridged),NAT模式,仅主机模式. 仅主机模式:        2>NAT模式 NAT 是虚拟机和本地网络使用一个ip地址 3>桥接模 ...

  4. Aurora 8B/10B、PCIe 2.0、SRIO 2.0三种协议比较

    在高性能雷达信号处理机研制中,高速串行总线正逐步取代并行总线.业界广泛使用的Xilinx公司Virtex-6系列FPGA支持多种高速串行通信协议,本文针对其中较为常用的Aurora 8B/10B和PC ...

  5. Apache Spark 2.0三种API的传说:RDD、DataFrame和Dataset

    Apache Spark吸引广大社区开发者的一个重要原因是:Apache Spark提供极其简单.易用的APIs,支持跨多种语言(比如:Scala.Java.Python和R)来操作大数据. 本文主要 ...

  6. (六)C#中判断空字符串的三种方法性能分析

    三种方法分别是: string a=""; 1.if(a=="") 2.if(a==string.Empty) 3.if(a.Length==0) 三种方法是等 ...

  7. Spring Boot2 系列教程(二)创建 Spring Boot 项目的三种方式

    我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 43W+,如下图: 2017 年由于种种原因,就没有 ...

  8. 虚拟机三种网络模式及Xshell与Centos7虚拟机连接

    一.虚拟机的三种网络模式 1.桥接模式 a.该模式下的虚拟机可以上外网 b. 局域网之内的主机可以访问该虚拟机(做共享服务器使用) c. 该虚拟机可以和宿主机进行通信 d. 同一台主机相同模式下的虚拟 ...

  9. CentOS7修改主机名的三种方法

    在CentOS7中,有三种定义的主机名: 静态的(Static hostname) “静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名. 瞬态的(Tansie ...

随机推荐

  1. JDBC接口核心的API

    java.sql.*   和  javax.sql.* Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接口. |- connect(url, properties):  ...

  2. 转: zepto的使用方法

    有些不了解zepto的同学在刚接触的时候肯定有很多疑惑,这个东西怎么用啊,去哪里下载啊,什么时候该用什么时候不该用啊,其实我以前也是这样的.jquery使用多了那么就让我们一起来了解下zepto把. ...

  3. offset Dimensions 详解

    1. <Professional JavaScript for web developer>  Offset dimensions incorporate all of the visua ...

  4. 2单表CRUD综合样例开发教程

    东软集团股份有限公司 基础软件事业部 单表CRUD综合样例开发教程 东软机密 tui 更改履历 版本号 更改时间 更改的 图表和章节号 状态 更改简要描述 更改申 请编号 更改人 批准人 V1.0 2 ...

  5. Linux增加虚拟内存方法

    例如增加2G虚拟内存,操作如下: [root@gamedb ~]# free -m[root@gamedb tmp]# dd if=/dev/zero of=/tmp/big_swap bs=1024 ...

  6. vue中封装swipe组件

    <template> <!-- TODO swipe --> <div id="hy-swiper"> <div class=" ...

  7. 使用URLOS 五分钟安装rTorrent (轻量级优秀BT/PT客户端)

    rTorrent是一个非常简洁.优秀.非常轻量的BT客户端,它使用ncurses库以C++编写,将 rTorrent 用在安装有 GNU Screen 和 Secure Shell 的低端系统上作为远 ...

  8. Linux C\C++基础 字符数组、字符串和字符串常量

    1.字符数组和字符串 C语言没有字符串类型,用字符数组模拟 字符串一定是字符数组,字符数组不一定是字符串 如果字符数组以字符'\0'('\0'等同与数字0)结尾,那么这个字符数组就是字符串 char ...

  9. CVE-2018-2628

    哈哈哈,终于等到我复现一个CVE漏洞了. 漏洞描述 Oracle Fusion Middleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台.该平 ...

  10. Python全栈开发之2、数据类型-数值、字符串、列表、字典、元组和文件处理

    一.Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: 5.成员运算: 二.基本数据类型 1.数字整型 int(整型) 在32位机器上,整数的位数为32位,取值范围为 ...