一、虚拟机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. Oracle笔记 十三、PL/SQL面向对象之package

    --将方法和过程用包定义 create or replace package pkg_emp as --输入员工编号查询出员工信息 procedure pro_findInfo( in_empno e ...

  2. 如何同时启动多个Tomcat服务

    在项目开发中,有时会需要同时启动多个Tomcat服务,如果直接启动多个的话,会报以下错误: Port busy xxxx java.net.SocketException: Unrecognized ...

  3. QT5.4 计算器程序 打包&发布,解决dll的最新解决方案(图文并茂,很清楚)

    QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一 ...

  4. std::string 不支持back

    string  s = "abc"; if ( s.back() == 'c' ) .... , 不支持back, 但是用VS2010好吧 后来发现, string的back/fr ...

  5. LeetCode OJ 27. Remove Element

    Given an array and a value, remove all instances of that value in place and return the new length. D ...

  6. 20155217 2016-2017-2 《Java程序设计》第5周学习总结

    20155217 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 java中所有错误都会被包装为对象,可以尝试(try)执行程序并捕捉(catch)代 ...

  7. wpf 窗口最小化后,触发某事件弹出最小化窗口并置顶

    //如果窗口最小化了弹出并置顶----事件触发调用 ShowWindowAsync(new System.Windows.Interop.WindowInteropHelper(CommonHelpe ...

  8. 【leetcode 简单】 第七题 合并两个有序链表

    将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...

  9. Android动态加载--JVM 类加载机制

    动态加载,本质上是通过JVM类加载机制将插件模块加载到宿主apk中,并通过android的相关运行机制,实现插件apk的运行.因此熟悉JVM类加载的机制非常重要. 类加载机制:虚拟机把描述类的数据从C ...

  10. 回顾苹果操作系统Mac OS的发展历史

    在新的MacBook AIR和Mac OS X Lion即将发布之际,我们仅以此文向伟大的苹果和乔布斯致敬.并祝Apple教主乔布斯早日康复,长命百岁,千秋万载,一统苹果! Mac OS是指运行于苹果 ...