当前位置: 首页 > news >正文

终于有人把VMware虚拟机三种网络模式讲清楚了!

前段时间VMware更新了,你用上最新版了吗?

有几个网工在操作中遇到过各种各样的问题。

比如说由于公司服务器重启导致出现下面的问题:在Xshell里连接虚拟机映射时连接失败;能够连接上虚拟机的映射地址,但git pull时报错无法解析hostname……其实这些都是ip问题导致的,但主要还是虚拟机的网络配置问题不清楚。

所以今天就给你们梳理下VM虚拟机的三种网络工作模式。

01、VMware的三种网络工作模式

vmware为我们提供了三种网络工作模式, 它们分别是:

Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。

进入vmware, 在选项栏的 “编辑” 下的 “虚拟网络编辑器” 中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式)。在这里插入图片描述

我们现在看到的VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机。

并且在物理机的网络连接中可以看到两张虚拟网卡VMnet1和VMnet8, 这两种网卡分别作用于仅主机模式与NAT模式。

如果将这两块不小心卸载, 可以在vmware的 “编辑” 下的 “虚拟网络编辑器” 中点击 “还原默认设置”。在这里插入图片描述
在这里插入图片描述

那VMnet0呢?这需要先系统了解一下三种模式,你就会有答案了。

02、Bridged-桥接模式

桥接模式是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。

在桥接的作用下, 类似于把物理主机虚拟为一个交换机, 所有设置桥接模式的虚拟机都将连接到这个交换机的一个接口上;

同样物理主机也插在这个交换机中, 所以桥接下的网卡与网卡都是交换模式的, 可以相互访问而不干扰。

虚拟机ip地址需要与主机在同一个网段, 如果虚拟主机要联网, 则要求网关与DNS要与主机的网卡保持一致。

网络的结构如图:在这里插入图片描述

那么在VMware中怎么设置呢?

点击编辑虚拟机设置,这个设置可以设置虚拟机的配置,自然包括网卡。
在这里插入图片描述

找到网络适配器 , 然后找到 桥接模式,点击,然后点击确定。在这里插入图片描述

之后 查看一下主机的ip地址、网关、DNS等信息。在这里插入图片描述

然后进如系统, 打开终端输入 vi /etc/sysconfig/network-scripts/ifcfg-eth0,编辑网卡配置信息。在这里插入图片描述

输入以下内容:在这里插入图片描述

然后ESC返回命令模式,输入 :wq! 保存退出, 然后重启网卡或者重启系统, 然后使用ping命令ping百度 看看能否接收到数据包。

如果能ping通百度, 配置完成。在这里插入图片描述

我们使用Xshell测试一下虚拟机与主机之间的连接,查看是否能够进行信息交换。
在这里插入图片描述

可见主机与虚拟机通信正常。

注意:当前的网络环境是ip资源很缺少或对ip管理比较严格的话, 那桥接模式就不适用。
我们可以把模式设置成NAT模式模式。

03、NAT-地址转换模式

NAT模式是利用 NAT设备 和 DHCP服务器 , 让虚拟机可以联网。

在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。
在这里插入图片描述

这里给你补充一下DHCP和NAT的知识。

DHCP是动态主机配置协议, 是一个局域网的网络协议。

指的是由服务器控制一段IP地址范围, 客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

担任DHCP服务器的计算机需要安装TCP/IP协议, 并为其设置静态IP地址、子网掩码、默认网关等内容。

打开该功能后, 路由器会根据所在局域网的IP网段自动分配IP地址, 不用自己去设置IP地址, 关闭后则需要自己手动去设置IP地址。

NAT(Network Address Translation, 网络地址转换)是1994年提出的。

当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址), 但现在又想和因特网上的主机通信(并不需要加密)时, 可使用NAT方法。

这种方法需要在专用网(私网IP)连接到因特网(公网IP)的路由器上安装NAT软件。

装有NAT软件的路由器叫做NAT路由器, 它至少有一个有效的外部全球IP地址(公网IP地址)。

这样, 所有使用本地地址(私网IP地址)的主机在和外界通信时, 都要在NAT路由器上将其本地地址转换成全球IP地址, 才能和因特网连接。

另外, 这种通过使用少量的公有IP 地址(私网地址)代表较多的私有IP 地址的方式, 将有助于减缓可用的IP地址空间的枯竭。

NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。结构图如下:在这里插入图片描述

从上图中我们可以看出, 主机网卡与虚拟NAT设备直接连接, 然后NAT设备与DHCP服务器均链接到VMnet8上, 这样就实现了虚拟机联网。

其中VMnet8虚拟网卡为了实现主机与虚拟机之间的沟通。

打开vmware的虚拟网络编辑器,可以设置NAT参数及DHCP参数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

NAT参数

DHCP参数

同样,点击虚拟机设置调整网络模式。
在这里插入图片描述
在这里插入图片描述

进系统,敲命令vi /etc/sysconfig/network-scripts/ifcfg-eth0。
在这里插入图片描述
在这里插入图片描述

保存退出,ping百度。在这里插入图片描述

现在我们来验证一下VMnet8的作用。禁用VMnet8,进入虚拟机重新ping百度。
在这里插入图片描述
在这里插入图片描述

能通,用Xshell测试,发现不能连接。在这里插入图片描述

重新启动网卡VMnet8发现可以连接上了。

总结:用虚拟NAT设备和虚拟DHCP服务器来让虚拟机联网 而VMnet8是用来主机与虚拟机通信。

04、Host-Only-仅主机模式

Host-Only就是NAT模式删了NAT设备, 用VMnet1网卡连接VMnet1虚拟交换机来与虚拟机通信的, 可见Host-Only将虚拟机与外部网络隔离, 虚拟机只与主机相互通讯。

网络的结构如图:在这里插入图片描述

要使虚拟机能上网, 可以把主机的网卡共享给VMnet1网卡。

同样,打开虚拟网络编辑器,然后配置一下 DHCP设置,配置一下起始和终止IP。在这里插入图片描述

设置虚拟机的联网模式:在这里插入图片描述

然后同样操作。在这里插入图片描述

保存退出, 然后重启网卡, 测试与主机之间的连通性。在这里插入图片描述

可以通讯,这时我们让虚拟机通信。

主机进入网络连接,鼠标右击上网的网卡属性,选择共享选项卡,勾选共享,下方选择vM1网卡,点击确定。在这里插入图片描述

点击确定,强制将VM1的ip设置成 192.168.137.1,然后调整虚拟机的DHCP的子网和起始地址。在这里插入图片描述

配置网卡, VM1网卡作为路由。
在这里插入图片描述

重启网卡, 然后测试能否ping通百度以及远程登录。
在这里插入图片描述

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

步骤基本和NAT一样,设置固定IP时虚拟机IP要和VMnet1在同一网段,网关一致,DNS地址要和主机相同。

文章声明

本文素材整理自网络,由网络工程师俱乐部排版成文,转载请注明出处,侵删。

相关文章:

  • 【力扣刷题篇】栈与队列相关OJ题及题解
  • 中睿天下Coremail | 2023年Q3企业邮箱安全态势观察报告
  • rocketmq-exporter配置为系统服务-自启动
  • SQL对数据进行去重
  • Java自学第8课:电商项目(3) - 重新搭建环境
  • Linux实战一天一个小指令--《日志查看》
  • 设备报修流程要怎么优化?工单管理系统如何提高设备维修效率?
  • 云原生服务高可用性保持的简单思考
  • Linux 网络管理
  • 探秘美国服务器价格因素:成本、竞争力还是资源优势?
  • docker通过nginx代理tomcat-域名重定向
  • 使用JS 判断数组对象 里面的每一个字段,字段为空,就返回true, 所有字段不为空,返回 false
  • 【广州华锐互动】地震防灾减灾科普3D虚拟展厅:向公众普及地震安全知识
  • vue+react封装请求
  • 【Bug】当用opencv库的imread()函数读取图像,用matplotlib库的plt.imshow()函数显示图像时,图像色彩出现偏差问题的解决方法
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • axios 和 cookie 的那些事
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JS字符串转数字方法总结
  • leetcode388. Longest Absolute File Path
  • mysql 5.6 原生Online DDL解析
  • nodejs实现webservice问题总结
  • PHP 的 SAPI 是个什么东西
  • Rancher如何对接Ceph-RBD块存储
  • Vim Clutch | 面向脚踏板编程……
  • Webpack 4 学习01(基础配置)
  • 警报:线上事故之CountDownLatch的威力
  • 使用SAX解析XML
  • 思考 CSS 架构
  • 系统认识JavaScript正则表达式
  • 数据可视化之下发图实践
  • #define、const、typedef的差别
  • (23)Linux的软硬连接
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转载)Google Chrome调试JS
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET Core跨平台微服务学习资源
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET和.COM和.CN域名区别
  • .NET文档生成工具ADB使用图文教程
  • @Mapper作用
  • @WebService和@WebMethod注解的用法
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行
  • [GXYCTF2019]BabySQli1
  • [hdu2196]Computer树的直径
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页
  • [LeetCode]-225. 用队列实现栈-232. 用栈实现队列
  • [NISACTF 2022]join-us