本质上不会配置VMware网络,是因为对其不够熟悉,VMware提供了三种可靠的网络模式,我相信只要了解了他们的区别,配置起来应该是如鱼得水的。如果还在为你的虚拟机上不了网而发愁,那么请跟随我的脚步,让我们来探究他们到底有什么区别吧。
文章目录
VMware提供了三种网络模式,分别是桥接模式、NAT模式和仅主机模式,那么它们到底是什么呢,有什么区别呢。不要急,听我娓娓道来。
首先来到软件首页,点击编辑,会跳出来一个虚拟网络编辑器。点击它就会跳转到下一个界面。

这里就是虚拟网络编辑界面了,首先大家先看这里有两张网卡,VMnet1和VMnet8,VMnet1对应的是仅主机模式,VMnet8对应的NAT模式。这时候你就会问了,不是还有一个桥接模式吗?对了,桥接模式是不需要网卡的,所以这里并没有显示出来,我们继续点击下面的更改设置,

就来到了这个界面,桥接、仅主机、NAT。这就是我们虚拟机的三种网络模式了,我们再来一个一个详细讲解他们的区别以及如何配置。

桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致。
下面给大家放一张桥接模式的原理图,其实就是将虚拟机的VMnet0与物理网卡通过虚拟网桥连接起来,右边虚拟机的网卡都连接再VMware0虚拟交换机上,所以想上外网的话需要设置IP与宿主机同一网段,网关、DNS和宿主机一致。

注意:配置之前先关闭firewalld和selinux!(systemct stop firewalld && setenforce 0)这是临时配置。
首先还原一下桥接设置。

CMD命令,ipconfig/all命令查看当前宿主机ip、网关、DNS。

虚拟机设置里设置桥接模式。

下面这一步要注意找对你的虚拟机网卡,如果配置错误了就会导致上不了网。ifconfig命令查看本机网卡名字。
我这里名字是ens37,你的可能是ens33或者eth0等。

然后cd /etc/sysconfig/network-scripts路径下,找到对应的网卡文件,vi/vim 进入配置文件。

配置IPADDR、GATEWAY、DNS。自己写入就行。

ifdown/ifup重启一下网卡,命令后面接网卡命令。然后测试,ping z.cn,大家看到已经ping通了。

讲NAT模式之前,先讲一个NAT协议。
NAT协议 NAT(Network Address Translation,网络地址转换)是将IP数据报头中的IP地址转换为另一个IP地址的过程。 在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。 这种通过使用少量的公网IP地址代表较多的私网IP地址的方式,将有助于减缓可用IP地址空间的枯竭。
我们这里的NAT模式其实就是一个NAT网络,使用 NAT 模式,就是让虚拟系统借助 NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。
下面是NAT的模型图,左边比如我的路由器连接了外网,我在路由器配置了NAT模式,连入我的网络DHCP(动态获取IP地址)会自动给你一个内网IP(内网IP范围由路由器定义)。我们的宿主机物理网卡也有一个IP,虚拟机使用NAT模式后,根据我们VMnet8定义的网段,DHCP会自动给你一个我们定义了的IP。

NAT配置很简单,而且我们本地环境定义集群一般都是使用NAT模式。首先我们看一下自己的Vmnet8设置的子网IP范围是多少。这个可以改也可以不改,无所谓的。这里定义的范围,就是你虚拟机获取的或者可以设置的IP范围。同样是编辑虚拟网络,更改设置。我们可以看到子网和子网掩码,这里我的子网IP是192.168.146.0,那么我的虚拟机IP设置也应该在这个范围内。
箭头指向的地方是DHCP设置,默认是勾上的,我们这里取消选择,推荐不适用DHCP方式,不然IP会在范围内变来变去的。

点击NAT设置,后,我们可以看到此子网的网关。

好了,VMware8的配置我们都知道了,就可以开始配置了。
首先进入虚拟机配置,选择NAT模式。

然后也是同样cd /etc/sysconfig/network-scripts路径下,找到对应的网卡文件,vi/vim 进入配置文件。
由于这里是最小化,只有ip a命令,我们用ip a获取网卡名称。然后进入其对应的配置文件。

同样写入IPADDR和GATEWAY,DNS这里如果没有配置的话,则不能ping域名,大家可以随便给一个,我习惯给8.8.8.8。记得是DNS1!

然后:wq保存,ifdown/ifup 网卡名重启网卡。好啦,成功!

Host-Only仅主机模式,网如其名,仅在主机内能互相访问,它就是一个虚拟内网环境,不能与外界通信,但是他也能做到与外部联网,只是比较麻烦。
Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。

仅主机模式配置和NAT几乎一样,这里就简单再讲一下。
首先同样查看VMnet1的设置。
同NAT模式,我们可以设置它的子网、DHCP等。一般都推荐不使用DHCP。这里记住子网就行了。然后虚拟机网卡设置为仅主机模式,再去配置虚拟机的配置文件,步骤同上。局域网内就能互通了。

如果在网络配置中遇到了问题,这里给出作者的一些排错思路。首先配置虚拟机上外网的情况下,必须得先保证你的宿主机能上网。再者就是防火墙,firewalld和selinux都要关闭。添加网卡得情况下注意网卡名字,不要配在另外的网卡上。
如果ping网关不通,检查虚拟网络编辑器中的网关是否正确。
/etc/sysconfig/network-scripts/ifcfg-xxx,检查网卡配置文件。
修改完配置文件之后必须重启服务!
再给大家总结一下这三种模式的应用场景。
桥接模式:该模式下,guest主机表现为同host主机同一局域网并且同一网段的独立主机,可以与host主机互通,多台guest主机之间可以互通。使用场景(如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。如搭建集群,搭建server)
NAT模式: 该模式下能实现guest主机与host主机能互通,多台同一局域网中的guest主机之间可以互通,但是host主机以外的其它主机不能访问guest主机。使用场景(1、ip地址紧缺,多台机器使用同一公网ip上网 2、适用于搭建集群 3、搭建server)
仅主机模式:该模式下能实现guest主机与host主机能互通。使用场景(如果你想利用VMWare创建一个与网内其他机器相隔离的虚拟系统)
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主