【Tools】VMware虚拟机三种网络模式详解和操作_沧海一笑-dj的博客-程序员秘密

技术标签: net模式  虚拟机网络模式  vmware  Tools  桥接模式  主机模式  

00. 目录

01. VMware虚拟机三种网络模式

由于linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费。那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有vmware workstations和virtual box等。在使用虚拟机软件的时候,很多初学者都会遇到很多问题,而vmware的网络连接问题是大家遇到最多问题之一。在学习交流群里面,几乎每天都会有同学问到这些问题,写这篇详解也是因为群里童鞋网络出故障,然后在帮他解决的过程中,对自己的理解也做一个总结。接下来,我们就一起来探讨一下关于vmware workstations网络连接的三种模式。

vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)NAT(网络地址转换模式)Host-Only(仅主机模式)

打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),那么这些都是有什么作用呢?其实,我们现在看到的VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机。

在这里插入图片描述

同时,在主机上对应的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,它们分别作用于仅主机模式与NAT模式下。在“网络连接”中我们可以看到这两块虚拟网卡,如果将这两块卸载了,可以在vmware的“编辑”下的“虚拟网络编辑器”中点击“还原默认设置”,可重新将虚拟网卡还原。

在这里插入图片描述

小伙伴看到这里,肯定有疑问,为什么在真机上没有VMware Network Adapter VMnet0虚拟网卡呢?那么接下来,我们就一起来看一下这是为什么。

02. Bridged(桥接模式)

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

接下来,我们就来实际操作,如何设置桥接模式。

首先,安装完系统之后,在开启系统之前,点击“编辑虚拟机设置”来设置网卡模式。

在这里插入图片描述

点击“网络适配器”,选择“桥接模式”,然后“确定”

在这里插入图片描述

在进入系统之前,我们先确认一下主机的ip地址、网关、DNS等信息。
在这里插入图片描述

然后,进入系统编辑网卡配置文件,命令为vi /etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述

添加内容如下:
在这里插入图片描述
编辑完成,保存退出,然后重启虚拟机网卡,使用ping命令ping外网ip,测试能否联网。

在这里插入图片描述

能ping通外网ip,证明桥接模式设置成功。

那主机与虚拟机之间的通信是否正常呢?我们就用远程工具来测试一下。

在这里插入图片描述

主机与虚拟机通信正常。

这就是桥接模式的设置步骤,相信大家应该学会了如何去设置桥接模式了。桥接模式配置简单,但如果你的网络环境是ip资源很缺少或对ip管理比较严格的话,那桥接模式就不太适用了。如果真是这种情况的话,我们该如何解决呢?接下来,我们就来认识vmware的另一种网络模式:NAT模式。

03. NAT(地址转换模式)

刚刚我们说到,如果你的网络ip资源紧缺,但是你又希望你的虚拟机能够联网,这时候NAT模式是最好的选择。NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。其网络结构如下图所示:

在这里插入图片描述

在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。那么我们会觉得很奇怪,为什么需要虚拟网卡VMware Network Adapter VMnet8呢?原来我们的VMware Network Adapter VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信。在之后的设置步骤中,我们可以加以验证。

首先,设置虚拟机中NAT模式的选项,打开vmware,点击“编辑”下的“虚拟网络编辑器”,设置NAT参数及DHCP参数。

在这里插入图片描述

设置网关
在这里插入图片描述

设置DHCP
在这里插入图片描述

将虚拟机的网络连接模式修改成NAT模式,点击“编辑虚拟机设置”。
在这里插入图片描述

点击“网络适配器”,选择“NAT模式”
在这里插入图片描述

然后开机启动系统,编辑网卡配置文件,命令为vi /etc/sysconfig/network-scripts/ifcfg-eth0
在这里插入图片描述

具体配置如下:
在这里插入图片描述

编辑完成,保存退出,然后重启虚拟机网卡,动态获取ip地址,使用ping命令ping外网ip,测试能否联网。
在这里插入图片描述

之前,我们说过VMware Network Adapter VMnet8虚拟网卡的作用,那我们现在就来测试一下。

将VMware Network Adapter VMnet8虚拟网卡禁用,然后,从虚拟机ping外网,看看是否能ping通?
在这里插入图片描述

可以ping通外网
在这里插入图片描述

如此看来,虚拟机能联通外网,确实不是通过VMware Network Adapter VMnet8虚拟网卡,那么为什么要有这块虚拟网卡呢?

之前我们就说VMware Network Adapter VMnet8的作用是主机与虚拟机之间的通信,接下来,我们就用远程连接工具来测试一下。
在这里插入图片描述

然后,将VMware Network Adapter VMnet8启用之后,发现远程工具可以连接上虚拟机了。

那么,这就是NAT模式,利用虚拟的NAT设备以及虚拟DHCP服务器来使虚拟机连接外网,而VMware Network Adapter VMnet8虚拟网卡是用来与虚拟机通信的。

04. Host-Only(仅主机模式)

Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。其网络结构如下图所示:
在这里插入图片描述

通过上图,我们可以发现,如果要使得虚拟机能联网,我们可以将主机网卡共享给VMware Network Adapter VMnet1网卡,从而达到虚拟机联网的目的。接下来,我们就来测试一下。

首先设置“虚拟网络编辑器”,可以设置DHCP的起始范围。
在这里插入图片描述

设置虚拟机为Host-Only模式。
在这里插入图片描述

开机启动系统,然后设置网卡文件。
在这里插入图片描述

保存退出,然后重启网卡,利用远程工具测试能否与主机通信。
在这里插入图片描述

机与虚拟机之间可以通信,现在设置虚拟机联通外网。
在这里插入图片描述

我们可以看到上图有一个提示,强制将VMware Network Adapter VMnet1的ip设置成192.168.137.1,那么接下来,我们就要将虚拟机的DHCP的子网和起始地址进行修改,点击“虚拟网络编辑器”
在这里插入图片描述

重新配置网卡,将VMware Network Adapter VMnet1虚拟网卡作为虚拟机的路由。
在这里插入图片描述

重启网卡,然后通过 远程工具测试能否联通外网以及与主机通信。
在这里插入图片描述

测试结果证明可以使得虚拟机连接外网。

以上就是关于vmware三种网络模式的工作原理及配置详解。

05. 参考

相关文档下载:【Tools】VMware虚拟机三种网络模式详解和操作.pdf

相关文档下载(加密链接):【Tools】VMware虚拟机三种网络模式详解和操作.rar
有道云笔记:https://note.youdao.com/ynoteshare1/index.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dengjin20104042056/article/details/95023540

智能推荐

delphi 画图表,曲线图_delphi dbchart_黑贝是条狗的博客-程序员秘密

dbchart 图表 连接 datasource先双击dbchart 创建一个 图表类型 Series[0]多个则  Series[N]绑定 列 DChar.Series[0].Title := '日均人数'; DChar.Series[0].DataSource := MemReport; DChar.Series[0].Marks.ArrowLength...

docker部署 Nexus3_nexcus3 docker启动_once-cjd的博客-程序员秘密

1、查询官方镜像docker search nexus这里选择第一个和第二个都行2、拉取镜像 docker pull sonatype/nexus33、启动服务docker run -d -p 8888:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 --name nexus --restart=always -v $PWD/data:/n...

5. Longest Palindromic Substring最长子回文字符串Python_weixin_...的博客-程序员秘密

给定字符串s,找到s中最长的回文子字符串。您可以假设s的最大长度为1000。Input Output "" "" "abc" "a" "ababc" "bab" Method 1 建立两个循环, 遍历每个子字符串判断是否为palindromic1. 如果字符串为空则需要返回空2. 如果字符串没有回文,则需要返回第一个字母3. 如果后面的palindromic substring比之前的长度长, 需要替换掉之前的判断是否为回文用125题的方法, 将字

最近出现的asp.net中asp.net“未能找到类型或命名空间名称“MySql”(是否缺少 using 指令或程序集引用?”)_未能在全局命名空间中找到类型或命名空间名称mysql_hongyunqing1994的博客-程序员秘密

        因为网站中用到了MySql.Data.dll这一引用,所以出现这样问题总是把眼光放在该控件引用的不当上。但是以前这种也是直接放在网站的Bin文件夹中,用的也是同样的控件,并没有其他操作。纠结了半天愣是没搞清楚问题出现在哪儿。突然发现项目的资源管理器出现了两行网站文件夹名字。第一行是项目名字,第二行怎么还有一个文件夹。才醒悟过来,原来是在保存文件的时候,在网站文件夹的外面又添加了一层...

【Codeforces Round #716 (Div. 2)】Codeforces-1514ABC_JophieQu的博客-程序员秘密

A. Perfectly Imperfect Array多个完全平方数的乘积也是完全平方数。如要找到一个非空子序列的乘积不是完全平方数的话,只要原序列中存在非完全平方数即可。void solves(){ int n,po;cin>>n; int flag=0; while(n--){ cin>>po; int i=(int)sqrt(po); if(i*i!=po) flag=1; } cout<<(!flag ? "NO":"YES")<

Sharding-JDBC中使用的分布式自增ID算法snowflake_shardingjdbc snowflake_Pagegle李的博客-程序员秘密

snowflake的结构如下(每部分用-分开):0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以使用69年),然后是5位datacenterId和5位workerId(10位的长度最多支持部署1024个节点) ,最后12位是...

随便推点

Jsp:useBean jsp:setProperty_"<jsp:usebean id=\"user\" scope=\"session\" class=_进击的菜狗子的博客-程序员秘密

<jsp:useBean id="user" scope="page" class="com.lsj.jspaction.bean.Person">使用useBean可以创建一个javaBean对象,其中:id:相当于bean的名字,之后要用到bean就用这个属性scpoe:是这个bean存在的范围,共有四个范围: -page:仅在当前页面有效 - request:一次请求间有效

gym中env的unwrapped_env.unwrapped_星之所望的博客-程序员秘密

在看一些示例程序代码时,一般从gym中引用环境只需要用gym.make就可以了,比如env=gym.make('CartPole-v0')但在很多程序中(如莫烦pytorch的DQN程序),还有这样一句env = env.unwrapped关于这个unwrapped的含义,文章gym中env的unwrapped中是这么解释的:Open AI gym提供了许多不同的环境。每一个环境都有一套自己的参数和方法。然而,他们通常由一个类Env包装(就像这是面向对象编程语言(OOPLs)的一个

C# 判断当前系统是XP还是WIN7 .获取当前系统版本_MayMatrix的博客-程序员秘密

直接提供Winform程序:    OperatingSystem os = Environment.OSVersion;            switch (os.Platform)            {                case PlatformID.Win32Windows:                    switch (os.Version.

Box2D-Lite源码阅读笔记(4)_ARTELE的博客-程序员秘密

0.简介前面我们发现了物体碰撞检测的函数,这回我将来读物体碰撞检测函数的代码。1.碰撞检测这个碰撞检测主要是针对矩形与矩形的碰撞检测,以为例子中只给了矩形的物理碰撞。这里先对开始部分做一个阅读和注释。这段代码是一些准备工作,主要目的是获取物体在空间中的姿态和基本位置信息。int Collide(Contact* contacts, Body* bodyA, Body* bodyB){ // Setup //取A B两个物体的半径,width中存储的是边长 //这里获取到的是一半

在 RT-Thread 中快速使用 CCS811 气体传感器_阿基米东的博客-程序员秘密

1、CCS811 传感器ccs811 软件包是 CCS811 气体传感器的驱动软件包。CCS811 是一款低功耗数字气体传感器,用于检测室内低水平的挥发性有机化合物和二氧化碳浓度,内部集成微控制器单元 (MCU) 和模数转换器(ADC),并提供通过标准 I2C 数字接口获取 CO2 或 TVOC 数据。CCS811 模块支持 I2C 接口,IIC 地址可配置为 0x5A 或 0X5B。CCS811 支持多种模式:每1秒、10秒、1分钟、250毫秒测量一次以及休眠模式,这些模式在传感器测量期间进行了低

Ubuntu Linux系统下apt-get命令详解_weixin_34168880的博客-程序员秘密

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

推荐文章

热门文章

相关标签