嵌入式中VMware 三种网络模式的详解与配置方法

今天梳理下 VMware虚拟机的三种网络工作模式。

相信通过这两篇文章,能够帮助你全面搞懂虚拟机的网络工作模式和配置。

VMware的三种网络工作模式

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

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

进入vmware, 在选项栏的 "编辑" 下的 "虚拟网络编辑器" 中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式)。

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

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

如果将这两块不小心卸载, 可以在vmware的 "编辑" 下的 "虚拟网络编辑器" 中点击 "还原默认设置"。

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

Bridged-桥接模式

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

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

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

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

网络的结构如图:

那么在VMware中怎么设置呢?

点击编辑虚拟机设置,这个设置可以设置虚拟机的配置,自然包括网卡。

找到网络适配器 , 然后找到 桥接模式,点击,然后点击确定。

之后 查看一下主机的ip地址、网关、DNS等信息。

然后进入系统, 打开终端输入 vi /etc/sysconfig/network-scripts/ifcfg-eth0,编辑网卡配置信息。

输入以下内容:

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

如果能ping通百度, 配置完成。

我们使用Xshell测试一下虚拟机与主机之间的连接,查看是否能够进行信息交换。

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

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

我们可以把模式设置成NAT模式模式。

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百度。

能 ping 通,用Xshell测试,发现不能连接。

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

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

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地址要和主机相同。

相关推荐
BingoGo1 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack1 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
Sinclair19 小时前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
JaguarJack1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
Rockbean2 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩2 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
JaguarJack2 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理3 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
海天鹰3 天前
【免费】PHP主机=域名+解析+主机
服务器