Vmware虚拟机网络模式原理及配置详解

2023-10-27

概述

    VMware为我们提供了三种网络工作模式,它们分别是:bridged(桥接模式)、host-only(仅主机模式)、nat(网络地址转换模式)。

    打开VMware Workstation,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),如下图(1)。那么这些都是有什么作用呢?其实,我们看到的VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机。
图1
同时,在主机对应的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,在“网络连接”中我们可以看到,如下图(2)。如果将这两块虚拟网卡卸载了,可以在Vmware的“编辑”下的“虚拟网络编辑器”中点击“还原默认设置”,则可重新将主机虚拟网卡还原。
图2
    虚拟网络命名方式:在VMware中,虚拟机的网络通信主要是由VMware Workstation创建的虚拟交换机(又名虚拟网络)实现的。通常,windows系统主机上,VMware最多可创建20个虚拟网络,其默认命名规则为“VMnet+数字”,每个可连接任意数量虚拟网络设备。linux系统主机上最多可以创建255个,但每个虚拟网络仅能连32个虚拟网络设备,其默认命名规则为“vmnet+数字”。

1. bridged(桥接模式)

    定义:桥接模式就是将主机网卡与虚拟机虚拟网卡利用虚拟网桥进行通信,虚拟机中的虚拟网络适配器就可以通过主机中的物理网络适配器直接访问到外部互联网。在桥接作用下,类似于将物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个“交换机”的一个端口上,物理主机也同样插在这个“交换机”上,这样桥接下的网卡和网卡之间都是交换模式的,可以相互访问而不干扰,具体网络拓扑图如图(3)。且能支持有线和无线主机网络适配器。
图3
    操作流程:1)开启虚机系统前,通过点击“编辑虚拟机设置”->“网络适配器”->“桥接模式”->"确定"来设置网卡模式,如下图(4)。
图4
2)通过“win+R快捷键”打开运行框,输入“cmd”进入命令框,输入“ipconfig”回车,即可确定主机的IP地址、网关、DNS等信息,如下图(5)。其中IP为192.168.199.145,网关为192.168.199.1,DNS为192.168.199.1。另一种查看主机IP信息的方法如下图(6)。
图5
图6
3)进入虚机系统,打开终端,确认网络连接情况,如下图(7)。本例中可以看出至此虚机已经可以连接外网了,其中BOOTPROTO=dhcp是动态获取IP的,对应还有BOOTPROTO=static(静态IP,需指定IP,方法如下),none(不指定)。

vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static #这里将dhcp修改成 static  
ONBOOT=yes #这里将 no 修改成 yes  
IPADDR=192.168.199.144 #静态 IP  
GETWAY=192.168.199.1 # 默认网关  
DNS1=8.8.8.8  
NETMASK=255.255.255.0 #子网掩码  

图7

2.nat(网络地址转换模式)

​ 当网络IP资源紧缺时,又希望虚拟机能够联网,可利用nat模式借助虚拟nat设备和虚拟dhcp服务器达到目的。具体网络拓扑如图(8)。
图8
在连接VMnet8虚拟交换机时,虚拟机会将虚拟NAT设备和虚拟DHCP服务器连接到虚拟交换机上,同时也会将主机上的虚拟网卡VMware Network Adapter VMnet8连接到VMnet8虚拟交换机上,虚拟网卡VMware Network Adapter VMnet8只是作为主机与虚拟机通信的接口,虚拟机并不是依赖虚拟网卡VMware Network Adapter VMnet8来联网的。

​ 操作流程:1)开启虚机系统前,通过点击“编辑”->"虚拟网络编辑器”->“NAT模式”->“NAT设置”->"DHCP设置"来设置网卡模式,如下图(9)。

图9
2)选择虚拟机Ant01,点击“编辑虚拟机设置”->“网络适配器”->“NAT模式”->“确定”,如下图(10)。
图10
3)开启虚拟机,打开终端,确认连接外网情况,正常。

3. host-Only(仅主机模式)

​ host-only模式其实就是nat模式去除了虚拟nat设备,然后使用VMware Network VMnet1虚拟网卡连接VMnet1虚拟交换机来和虚拟机进行通信的,host-only模式将虚拟机与外网隔离开,成为了一个封闭的局域网络。如果具体网络拓扑如图(11)。
图11
​ 当然,如果在host-only模式下想要访问外网,可以将主机网卡共享给VMware Network VMnet1虚拟网卡。

​ 操作流程:1)开启虚机系统前,通过点击“编辑“->""虚拟网络编辑器”->“仅主机模式->"DHCP设置"来设置网卡模式,如下图(12)
图12
2)选择虚拟机Ant01,点击“编辑虚拟机设置”->“网络适配器”->“仅主机模式”->“确定”,如下图(13)。
图13
3)开启虚拟机,确认和主机通信情况,正常。

4)如果想让虚机能访问外网,可在物理主机上按下图(14)操作,“网络连接”->“WLAN属性”->“共享”->“允许其他网络***”->选择“VMware Network VMnet1”->“确定”。
图14
5)选择“VMware Network VMnet1”右击属性,选择“Internet协议版本4(TCP/IPv4)“查看其IP地址,192.168.137.1,如下图(15)。
图15
6)需改虚拟机的DHCP的子网和起始地址,与VMware Network VMnet同一网段。操作流程同图12。验证网络情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vmware虚拟机网络模式原理及配置详解 的相关文章

  • 使用 Vala 和 GLib 的正则表达式

    有没有一个函数 比如http php net manual en function preg match all php http php net manual en function preg match all php 使用 GLibh
  • 删除 Python 中某些操作的 root 权限

    在我的 Python 脚本中 我执行了一些需要 root 权限的操作 我还创建并写入文件 我不想由 root 独占所有 而是由运行我的脚本的用户独占所有 通常 我使用以下命令运行脚本sudo 有办法做到上述吗 您可以使用以下方式在 uid
  • Flex 的远程版本误解了我的规则

    我使用 flex 和 bison 编写了一个小汇编程序 可以在我的机器 ubuntu 10 10 上构建并运行正常 现在其他人正在尝试在 arch linux 上构建它 并且他们安装的 flex 产生了不同的 lex yy c 这是不匹配的
  • 使用 hcitool 扫描低功耗蓝牙?

    当我运行此命令时 BLE 设备扫描仅持续 5 秒 sudo timeout 5s hcitool i hci0 lescan 输出显示在终端屏幕中 但是 当我将输出重定向到文件以保存广告设备的地址时 每次运行该命令时 我都会发现该文件是空的
  • 在Linux中创建可执行文件

    我计划做的一件事是编写 非常简单的 Perl 脚本 并且我希望能够在不从终端显式调用 Perl 的情况下运行它们 我明白 要做到这一点 我需要授予他们执行权限 使用 chmod 执行此操作非常简单 但它似乎也是一个稍微费力的额外步骤 我想要
  • 使用 terminfo 的终端颜色?

    我正在编写一个 C 类 允许在终端中使用颜色 我希望它适用于每个终端 在支持真彩色 24 位 的终端上打印 在支持它的终端上具有 256 色 6x6x6 其他都是基本的 16 种颜色 我曾经使用 termcap 编写过一次 C 函数 并且我
  • 如果目录不存在,有没有办法让 mv 创建要移动到的目录?

    因此 如果我在主目录中并且想将 foo c 移动到 bar baz foo c 但这些目录不存在 是否有某种方法可以自动创建这些目录 以便你只需要输入 mv foo c bar baz 一切都会顺利吗 似乎您可以将 mv 别名为一个简单的
  • %config(noreplace) 文件上出现意外的 RPM 冲突

    我正在创建我自己的RPM using rpmbuild My RPM 包含配置文件哪个应该永远不会被覆盖 即使 RPM 包含这些配置文件的新版本 为了存档这个 我用以下标签标记了它们 config noreplace opt mypacka
  • 在Linux中将日期附加到文件名

    我想在文件名旁边添加日期 somefile txt 例如 somefile 25 11 2009 txt 或 somefile 25Nov2009 txt 或任何类似的内容 也许脚本或终端窗口中的某些命令可以执行 我正在使用Linux Ub
  • 如何从命令行执行 PHP 代码?

    我想执行单个 PHP 语句 例如if function exists my func echo function exists 直接使用命令行 无需使用单独的 PHP 文件 这怎么可能 如果您要在命令行中执行 PHP 我建议您安装phpsh
  • 有没有办法让 Linux CLI IO 重定向持久化?

    我有多个管道命令 如下所示 find options grep options xargs grep options 它们中的每一个都可能产生我不感兴趣的错误 权限错误 文件名空格错误等 因此 我想将所有错误重定向到 dev null 我知
  • 在哪里可以找到所有 C 标准库的源代码?

    我正在寻找所有 C 标准库的完整源代码 也就是说 我正在寻找 stdio h stdlib h string h math h 等的源代码 我想看看它们是如何创建的 我认为这取决于不同的平台 但 Linux 或 Windows 都会受到欢迎
  • 如何在 Linux 中显示进程状态(阻塞、非阻塞)

    有没有办法查询 Linux 进程表中进程的状态 以便能够演示执行查询时进程是正在运行还是被阻止 我的目标是从进程或程序的 外部 执行此操作 因为我希望从操作系统进程的角度来理解这一点 但欢迎任何想法 这是Python代码阻塞的过程 impo
  • 我如何知道用户在使用 ncurses (Linux) 的控制台中按下了 ESC 键?

    I have a problem in detecting whether I just got a plain ESC key just code 27 or whether it was another special key such
  • shell中基于正则表达式的颜色突出显示输出

    我想知道是否可以用颜色突出显示与某些字符串匹配的 shell 命令的输出 例如 如果我运行 myCommand 输出如下 gt myCommand DEBUG foo bar INFO bla bla ERROR yak yak 我希望所有
  • 如何从python导入路径中删除当前目录

    我想使用 Mercurial 存储库hg本身 也就是说 我克隆了 Mercurialhttps www mercurial scm org repo hg https www mercurial scm org repo hg并想运行一些h
  • /usr/bin/as:无法识别的选项“-EL”

    因此 在为我的1plus手机编译android内核时 经过3天的多次尝试 我放弃了并尝试在这里询问是否有人以前遇到过这个问题 这个错误对我来说有点模糊 但我觉得问题来自于我最近对 GNU Linux 发行版 Gentoo 的更改 它在不应该
  • 在 4.x 内核上的 64 位内存中查找系统调用表

    我正在尝试编写一个简单的内核模块来查找 Linux 中的 sys call table 但遇到了一些麻烦 我在这里找到了 32 位 Linux 的基本指南 https memset wordpress com 2011 03 18 sysc
  • gnutls_handshake() 失败:握手失败 GIT

    一切都工作正常 但突然我收到错误 致命 无法访问 https 电子邮件受保护 cdn cgi l email protection name repo name git gnutls handshake 失败 握手失败 我在我的计算机和 E
  • Mongo:无法连接到服务器 127.0.0.1:27017 位于 src/mongo/shell/mongo.js:145

    当我尝试在 ubuntu 中的 shell 中运行 mongo 或打开 rockmongo 时 我看到以下错误 couldn t connect to server 127 0 0 1 27017 at src mongo shell mo

随机推荐

  • 数组知识初阶

    思维导图 目录 思维导图 1 一维数组 1 1一维数组的创建 1 2一维数组的初始化 1 3一维数组的使用 1 4一维数组在内存中的存储 2 二维数组 2 1二维数组的创建与初始化 2 3二维数组的使用 2 4二维数组的存储 3 数组越界
  • 配置基于域名的虚拟主机

    1 安装好apache之后 修改http conf文件 去掉Include conf extra httpd vhosts conf前的 Require all denied 改成 Require all granted 2 打开conf
  • 计算机网络-应用层

    应用层 应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文 应用 Web 文件传输FTP 远程登录 电子邮件 域名 统一资源定位符URL 域名 由一串用 分隔的名字组成的Internet上某一台计算机或计算机组的名称 www
  • Unity TMP/Test 自适应文本

    Unity TMP Test 自适应文本 注意 Text组件 直接把脚本中所有的TextMeshProUGUI改为Text即可 TMP using System Collections using System Collections Ge
  • 对话OpenSea联创Alex:我们仍然只触及到NFT能力的冰山一角

    OpenSea是世界上最大的NFT交易市场 也是NFT行业爆发的最大赢家之一 但去年年底以来面临着被批不重视社区 中心化 竞争加剧等问题 近日 斯坦福大学加密团体Crypto Stanford对OpenSea的联合创始人兼前首席技术官 斯坦
  • C++构造函数的三种写法

    C 构造函数的三种写法 1 C 规定 对象的成员变量的初始化动作发生在进入构造函数本体之前 也就是说采用初始化列表的话 构造函数本体实际上不需要有任何操作 因此效率更高 关联 1 C 可以使用 小括号 大括号 直接赋值 并且 兼容了 C风格
  • C++ 将十进制数转换为二进制数方法

    本文介绍一种将十进制数转换为二进制数的方式 实现要点 1 用数组来存储每次对2取余的结果 2 两次使用for循环 分别进行转换和输出 3 取模运算 include
  • 【千律】OpenCV基础:图像外接矩形、最小外接矩形、凸包、外接圆、拟合椭圆的绘制

    环境 Python3 8 和 OpenCV 内容 图像外接矩形 最小外接矩形 凸包 外接圆 拟合椭圆的绘制 import cv2 as cv import numpy as np import matplotlib pyplot as pl
  • 显示iPhone已停用,连接iTunes 时,如何解锁又能保留数据

    本人手机是 iphone6 plus 因荧屏坏了无法使用 但主板没坏 只是看不到内容 所以不小心点到解锁界面太多次导致停用了 无可奈何去修完回来以后 才对手机进行了恢复停机的操作 首先 需要一台电脑 并安装了 iTunes 软件 手机先关机
  • 从零开始学习JavaScript:轻松掌握编程语言的核心技能①

    从零开始学习JavaScript 轻松掌握编程语言的核心技能 一 JavaScript 简介 为什么学习 JavaScript JavaScript 用法 二 JavaScript 输出 JavaScript 显示数据 JavaScript
  • linux时间校准步骤记录

    记录一下校准时间操作的执行步骤 首先使用 date 查看当前时间是否准确 校准时间命令 ntpdate cn pool ntp org 如果没有权限 sudo i 会出现输入密码 直接输入密码即可 再次执行校准时间操作命令 ntpdate
  • qt TCP接收数据遇到的问题

    项目负责利用TCP来传输一组大的数据 然后在接收函数里将接收的数组进行解包赋值 从结果来看发现解包出来的数据都是错误的 几乎都是随机并且好几个值是负无穷 这里就发现了QT的TCP传输机制 它将我的数据分两次接收 每一次是原来的一半 例如我传
  • 98. Validate Binary Search Tree 解题记录

    题目描述 Given a binary tree determine if it is a valid binary search tree BST Assume a BST is defined as follows The left s
  • 基于 session 和基于 token 的用户认证方式到底该如何选择

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 现在貌似大多数网站用户认证都是基于 session 的 即在服务端生成用户相关的 session 数据 而发给客户端 sesssion id 存放到 cookie 中 这样
  • beyond compare使用

    灰色 在自己定义的比较标准下比较 完全相同 红色 在自己定义的比较标准下比较 不相同 蓝色 在自己定义的比较标准下 蓝色的文件为多出来的文件 2012 10 15
  • 微信小程序quickstartFunctions中云函数的应用

    1 在quickstartFunctions文件中新建文件夹和文件 2 index js 文件书写 const cloud require wx server sdk cloud init env cloud DYNAMIC CURRENT
  • dbeaver导出建表语句_常用SQL语句(时常修改)

    咱们在开发中有很多的sql 是不好写的 写完了 还总容易出问题 所以从现在开始总结 这些SQL语句 2019 01 09更新 这个问题是因为做设计的时候忘了数据的唯一的问题 导致数据出现重复 查询的时候出现了查询的selectOne变成se
  • Sencha的Eclipse插件提示和技巧

    原文 http www sencha com blog sencha eclipse plugin tips tricks Sencha的Eclipse插件是一个完整的用于流行的Eclipse IDE的代码辅助和验证插件 有了该插件 就可以
  • lol数据英雄联盟接口LOL接口电竞api开发比分网分享@

    英雄联盟数据LOL接口电竞api开发比分网分享 TOC 数据来自marz数据alan marzesport com 各大赛区的lol数据都有 1 获取赛事 接口 host1 api series 9870 示例 赛事相关接口 begin a
  • Vmware虚拟机网络模式原理及配置详解

    概述 VMware为我们提供了三种网络工作模式 它们分别是 bridged 桥接模式 host only 仅主机模式 nat 网络地址转换模式 打开VMware Workstation 我们可以在选项栏的 编辑 下的 虚拟网络编辑器 中看到