一、虚拟机NAT模式原理

NAT模式在VMware下又称VMnet8。在这种模式下,宿主机有两块网卡,一块是真实的物理网卡(即NAT device),连接Network;一块是 VMware Network Adapter VMnet8,通过虚拟交换机(VMnet8)与虚拟机网卡进行通信。

由于NAT device有网络地址转换功能,虚拟机网卡的数据通过 VMware Network Adapter VMnet8转发,进行地址转换后,由真实的物理网卡再转发到NetWork。此外,在NAT模式下,宿主计算机相当于一台开启了DHCP功能的路由器,而虚拟机则是内网中的一台真实主机,通过路由器(宿主计算机)DHCP动态获得网络参数。因此在NAT模式下,虚拟机可以访问外部网络,反之则不行[1](注:如果我们在VMware下做了NAT设置,则可以实现从外部网络访问虚拟机,下文将会讲述)。

虚拟机NAT模式原理如下图所示:

【名词解释】 
VMnet8:VMware用于虚拟NAT网络下的虚拟交换机; 
VMware Network Adapter VMnet8:这是宿主机用于与NAT虚拟网络进行通信的宿主机使用的虚拟网卡;

二、软件版本

虚拟机:VMware® Workstation 12 Pro 
Linux:CentOS 6.5 
终端模拟软件:Xshell 5

三、NAT模式下实现虚拟机对外部网络访问功能

1、在系统菜单下选择”虚拟机”->”设置”,网络适配器选择”自定义”:VMnet8(NAT模式)。

2、在系统菜单下选择”编辑”->”虚拟网络编辑器”,按下图进行配置。注意:我们这里不启动DHCP服务,因此接下来还要手动对虚拟机进行配静态IP配置。如果勾选了“使用本地DHCP服务将IP地址分配给虚拟机”后,则意味着启动DHCP服务,那么我们则无需对虚拟机进行静态IP配置,只要使其动态获取IP就好了。 
这里虚拟机IP所在子网段为:192.168.81.0/24。

同时点击“NAT设置”,查看虚拟机网关地址:

3、找到宿主机的”控制面板”->”网络和 Internet”->”网络连接”,双击”VMware Network Adapter VMnet8”,进行宿主内网IP设置。

这一步的主要作用是将主机与虚拟机置于同一网段内,所以IP地址,设为虚拟机网段内的任意IP,但需要注意的是防止IP地址冲突,同时网关设置为VMWare NAT网络射中提供的IP地址。由于我的电脑中VMWare中是81网段,且192.168.81.2(虚拟机网关IP)192.168.81.0(子网IP)已被占用,所有我将我的主机改成192.168.81.1,也就是说,在192.168.81这个网段内,192.168.81.1就是我的主机(宿主机),那么我在虚拟机内安装操作系统的时候,就可以将他们的IP地址,设为: 192.168.81.3   ....... 192.168.1.255

配置Linux系统网络: 

进入虚拟机操作系统:

编辑linux的网络配置文件

将红色方框内的ONBOOT的值由no改为yes 表示启用网络:将BOOTPROTO的值由dhcp改为static 表示使用静态IP

绿色方框内的值为自己添加的:第一个绿色箭头表示,当前操作系统的ip(此ip设置,前面已经由红色文字标记,不要冲突即可),第二个绿色箭头表示,网络网段,使用VMWare提供的NAT网关即可,前面也已经标注.

使用命令重启网络(重启网络不成的话,可能需要重启网卡,根据系统版本内核不同而不同,一般不需要这一步)

这个时候,你的主机和虚拟机就已经在同一网段内(我这里是81网段)了。这个时候可以ping www.baidu.com 可以ping通说明,虚拟机连上网了当然前提是宿主机可以上网,如果宿主机不联网,则可以ping 宿主机的ip(注意是是虚拟机网段的ip,我这里是81网段)

四、NAT模式下实现外部网络对虚拟机(ssh)访问功能

主机与虚拟机置于同一网段内,主机也不能直接ssh连接虚拟机,还需要做一步端口映射

1、在VMware系统菜单下选择“编辑:,进入虚拟网络编辑器,选择“NAT设置”。

进入“NAT设置”后,在“端口转发”下选择“添加”按钮,添加一条NAT映射规则。其中主机端口即宿主物理网卡的端口,可以任意填写端口号,因为我们这里要实现ssh远程登录功能,这里填写“22”。虚拟机IP地址即192.168.81.3(我刚安装的linux,设置的ip是192.168.81.3),虚拟机端口必须是22(因为外部设备最终是要通过22端口来访问虚拟机的ssh服务的)。

添加完成后,端口转发里面就会增加一条记录:

如果,你在vmware中建立了多个虚拟机,有几个需要在主机ssh连接,那么就需要配几条端口转发。

配置号之后就可以使用ssh连接虚拟机了,但有几条需要注意的是,1.虚拟机是否安装了openssh,2。查看虚拟机的防火墙是否开启。

如果没有上述两种情况就可以ssh虚拟机了!

VMware NAT模式下设置网络的更多相关文章

  1. Linux系统NAT模式下设置网络网关

    1.配置Vm网络编辑器 2.配置固定IP地址 命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33 #下面内容直接复制进去,如果有重复的可以去除 TYPE= ...

  2. VM虚拟机上在NAT模式下设置静态IP的做法

    1.问题:由于业务需要,个人笔记本电脑上用Vmware安装了3台Ubuntu虚拟机,现要求pc机连入局域网后,四台机器(3台ubuntu虚拟机+1台宿主机)能上网,并且,虚拟机要使用某一网段的固定IP ...

  3. NAT模式下设置 虚拟机linux(Centos7) 联网

    第一步 设置虚拟机网络为NAT模式 第二步 设置虚拟机网络配置 首先执行 cd /etc/sysconfig/network-scripts 之后VI 编辑 ifcfg-ens33(根据实际情况来 基 ...

  4. VMware 虚拟机NAT模式如何设置网络连接,从头到尾全过程~!!

    一.首先查看自己的虚拟机服务有没有开启,选择电脑里面的服务查看: 1.计算机点击右键选择管理  2.进入管理选择VM开头的服务如果没有开启的话就右键开启  二.虚拟机服务开启后就查看本地网络虚拟机的网 ...

  5. VMware NAT模式下,公司代理下上网 续

    这是在非公司环境下,VMware NAT 静态IP模式下上网 由于公司的限制,可能需要通过proxy上网. 下面是我在公司的配置(参考其他) 1. 修改 /etc/environment http_p ...

  6. 虚拟机 - NAT模式下设置静态 IP 地址

    背景 如果不给虚拟机设置静态 IP 地址的话,每次重启机器都会自动分配一个新的 IP 如果有多台虚拟机的话,也会动态获取 IP 动态IP的话,每次 设置静态 IP 的步骤 查看本机 IP 和网关 cm ...

  7. centos7下NAT模式下设置静态ip

    1.在虚拟网络编辑器下查看子网IP.子网掩码以及网关 2.在Linux系统中进入 /etc/sysconfig/network-scripts目录下,编辑ifcfg-ens33文件,改成下面的内容: ...

  8. nat模式下更改网络环境, 虚拟机中Linux无法上网的问题

    出现的问题: 1.ifconfig -a 命令下会出现eth0信息中无ip地址等等信息: 2.无法ping通baidu,也就是无法上网: 3.ping 8.8.8.8 提示 connect:netwo ...

  9. Centos7 下vmware NAT模式配置网络连接与DNS

    NAT模式配置网络 1.首先查看NAT模式下的网络 从这边可以知道我的vmware下的nat模式的网络是192.168.109.*网段 上图这个网段也可以修改为别的网段 2.NAT模式下的网关 3.配 ...

随机推荐

  1. artDialog 弹窗提示

    artDialog 弹窗提示,方便调用,不用去查文档了. /// <reference path="../../Scripts/artDialog5.0/artDialog.min.j ...

  2. bootstrap的学习总结

    1.bootstrap是一个css框架,它提供了很多类,这些类中实现了内外边距,颜色,大小等样式的封装,它还提供了很多常用插件可以直接使用 2.12栅格本质上是将标签的外边距和内边距通过“格子”的思想 ...

  3. 踢掉某个li

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. freeradius的https查询功能

    一.服务器要求 Radius服务器:centos6.6.ip.hostname.selinux  disabled.stop iptables freeradius版本:3.0.12 二.源码安装fr ...

  5. php 文件上传处理

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAS4AAACvCAIAAADMuaTdAAAcaklEQVR4nO2da3Abx33Az3H6JdNx2i

  6. C++中特殊的宏定义

    常规用法不再介绍,做如下几点说明和介绍 1. 带参数的宏只完成简单字符替换,之前不做计算实参的工作,如下 #define SUM(x,y) x+yint a=3,b=2,c=1;int s;s=SUM ...

  7. Uboot中start.S源码的指令级的详尽解析

    Uboot中start.S源码的指令级的详尽解析 https://www.crifan.com/files/doc/docbook/uboot_starts_analysis/release/html ...

  8. Android Studio中设置提示函数用法

    Eclipse有一个很好的功能,就是当你代码调用某个android API时,鼠标移到对应的函数或者方法上,就会自动有一个悬浮窗提示该函数的说明(所包含的参数含义,该方法功能).迁移到Android ...

  9. 转:sqlplus使用总结

    为什么我要使用sqlplus: SQLPLUS很多人用的并不多,在我观察周围来看,很多人都在使用PLSQL DEVELOPER,尤其是开发人员,更是如此,那学习SQLPLUS有啥好处呢?在我看来有如下 ...

  10. c++ json 详解

    一. 使用jsoncpp解析json Jsoncpp是个跨平台的开源库,首先从http://jsoncpp.sourceforge.net/上下载jsoncpp库源码,我下载的是v0.5.0,压缩包大 ...