前言

决心要花费宝贵时间写下这篇心得,是因为从昨天晚上到今天上午被这个VMWare模拟搭建的服务器集群不能上外网的问题搞得很心烦,最后决定跟它杠上了!上午还通过远程连接得到了“空白”同学的帮助,在此表示十分感谢。虽然到今天中午的时候经过帮助能上外网了,但是自己感觉还是没有彻底弄懂,对三种模式下的网络结构还是一知半解,上网查了很多资料,但是发现网上很多文章有许多误导。于是自己又从VMWare的三种模式出发,查资料,最后终于算是捋顺了。

写下这篇文章,一是让自己的逻辑得到锻炼,二是希望能帮到部分同学。如果是网络结构方面的大神该文可以略过。

主要内容

VMWare搭建虚拟机有三种模式:桥接模式、NAT模式和仅主机模式。在三种模式下,都有对应的上外网的解决办法(并且能够与本地主机通信)。

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

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

1、NAT模式

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

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

1)打开VMWare,“编辑”-->“虚拟网络编辑器”,设置NAT参数和DHCP参数。

更改网络连接模式为NAT,这里若虚拟机已经启动,直接更改,不需重启。

进入系统后,设置自己的IP、掩码、网关、DNS。

若系统开启了交互界面:

若系统没有开启交互界面,可以编辑网卡配置文件:

命令行模式下重启网卡:/etc/init.d/network restart

ping外网,可以通信。

为了验证上外网不需要VMnet8这个网卡,在物理主机系统下将该网卡禁用

再次测试,发现依然能上外网。

那VMnet8虚拟网卡是用来干什么用的呢?VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信。

在VMnet8网卡禁用状态下,物理主机不能与虚拟机进行通信

当启用后,可以:

注意:在设置NAT的网关IP时,不能与v8的网卡ip相同,否则不能通信。

2、仅主机模式

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

打开虚拟网络编辑器,设置DHCP

将虚拟机的网络模式设置为仅主机模式,进入linux系统,设置ip、掩码、网关、DNS(若linux没有配置交互模式,可以用命令行,同理NAT)

将物理主机的网卡共享给虚拟网卡V1

测试,虚拟机能与外网通信:

3、桥接模式

桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。

这种模式下,虚拟机的ip必须与物理主机的网卡的ip在一个网段里,且子网掩码、网关、DNS须与主机保持一致。所以该模式下,虚拟机不能自己定义网段。桥接模式下网络结构图如下所示。

下面讲解具体步骤:

查看自己物理主机的IP信息

将虚拟机模式设置为桥接模式。

3)进入虚拟机系统,将ip,子网掩码,默认网关,DNS改成与物理主机一致。

ping外网,发现可以通信。但经测试,发现这种方法可能会影响自己物理主机上网的稳定性(自己的见解)。

说明:文章理论部分摘自https://www.linuxidc.com/Linux/2016-09/135521.htm,特此说明,同时在此表示感谢。

用VMWare搭建服务器集群不能上外网的三种模式下对应解决办法的更多相关文章

  1. linux中搭建solr集群出现org.apache.catalina.LifecycleException: Failed to initialize component ,解决办法

    07-Jan-2018 20:19:21.489 严重 [main] org.apache.catalina.core.StandardService.initInternal Failed to i ...

  2. nginx+tomcat+memcached搭建服务器集群及负载均衡

    在实际项目中,由于用户的访问量很大的原因,往往需要同时开启多个服务器才能满足实际需求.但是同时开启多个服务又该怎么管理他们呢?怎样实现session共享呢?下面就来讲一讲如何使用tomcat+ngin ...

  3. 手把手教你搭建FastDFS集群(上)

    手把手教你搭建FastDFS集群(上) 本文链接:https://blog.csdn.net/u012453843/article/details/68957209        FastDFS是一个 ...

  4. 10分钟学会windows中iis搭建服务器集群实现负载均衡和nginx代理转发

    前言 我们之前聊过 10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡:https://www.cnblogs.com/xiongze520/p/103087 ...

  5. 全网最详细的Hadoop HA集群启动后,两个namenode都是active的解决办法(图文详解)

    不多说,直接上干货! 这个问题,跟 全网最详细的Hadoop HA集群启动后,两个namenode都是standby的解决办法(图文详解) 是大同小异. 欢迎大家,加入我的微信公众号:大数据躺过的坑  ...

  6. VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT

    VMware虚拟机上网络连接(network type)的三种模式--bridged.host-only.NAT VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换 ...

  7. 10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡

    分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑心中会激动一番(或许这是判断是否是一个标准阿猿的标准吧)! 首先自己从宏观把控一下,通过上网科普自 ...

  8. 搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡

    转载:https://www.cnblogs.com/xiongze520/p/10308720.html 分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟 ...

  9. 简单操作:10分钟实现在kubernetes(k8s)里面部署服务器集群并访问项目(docker三)

    前言 经过docker安装.k8s开启并登录,我们终于到 "部署k8s服务器集群并访问项目" 这一步了,实现的过程中有太多坑,好在都填平了,普天同庆. 在进行当前课题之前,我们需要 ...

随机推荐

  1. 【Udacity】线性回归方程 Regression

    Concept in English Coding Portion 评估回归的性能指标--R平方指标 比较分类和回归 Continuous supervised learning 连续变量监督学习 R ...

  2. 命令行模式(CMD)下mysql查询中文显示乱码问题

    mysql的默认编码已经设置为utf-8,用其他工具(代码,mysql workbench)写入或读出时显示正常,但用cmd查询时显示为乱码. 2.原因:mysql的客户端根本无法以utf-8的形式返 ...

  3. 使用pdb调试python脚本

    pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点.单步调试.进入函数调试.查看当前代码.查看栈片段.动态改变变量的值等.pdb 提供了 ...

  4. Virtualenv-windows

    1.下载 pip3 install virtualenv 2.创建虚拟化环境 3. 进入虚拟化目录 4.推出虚拟化环境 5.指定python版本 二.virtualenvwrapper的使用 1.下载 ...

  5. 【Leetcode】【Easy】Same Tree

    Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...

  6. July 13th 2017 Week 28th Thursday

    No dream is too big, and no dreamer is too small. 梦想再大也不嫌大,追梦的人再小也不嫌小. Hold on to your dreams, but b ...

  7. June 28th 2017 Week 26th Wednesday

    Anger begins with folly, and ends in repentance. 愤怒以愚蠢开始,以后悔告终. Learn to control your temper, don't ...

  8. 什么是SAP GUI的client

    我们用SAPGUI登录某个系统时,除了用户名和密码外,还要指定一个必填字段client: 这个client是什么东东? 看文档: SAP Client is the highest hierarchi ...

  9. SchemaSpy

    SchemaSpy https://github.com/schemaspy/schemaspy/releases https://sourceforge.net/projects/schemaspy ...

  10. DB TABLE实践

    我的数据库设计实践(一)   兜兜转转,突然发现我现在已经是一个老司机了,一直写代码都很忙,没有把很多点点滴滴的记录下来,今天开始就开始一个系列,分析当年我接触或者我设计过的表结构,有好有坏,有欢喜也 ...