一、虚拟机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. Python3.5+SQL+Prometheus+Grafana报表/监控

    参考资料: pymysql 单独获取表的栏位名称 pymysql返回数据为字典形式(key:value--列:值)   行列结合,作为prometheus_client的输出. 话不多说,直接上脚本. ...

  2. 栈(stack),C++模板实现

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  3. C++ error C2440: “类型转换” : 无法从“std::vector::iterator”转换为“

    原文地址:http://blog.csdn.net/onlyou930/article/details/5602654 圆环套圆环之迭代器 话说这一日是风平浪静,万里乌云,俺的心情好的没得说,收到命令 ...

  4. CentOs下mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz压缩包的安装

    之前写过一篇mysql在windows下的安装(猛击这儿),linux下用的比较少,最近切换到linux服务器了,发行mysql安装和windows下有所不同,只记录压缩包方式安装,rpm包类似 1. ...

  5. 炸掉你的城堡!(pygame獾兔大战)

    代码修改bug,添加注释等,獾的速度加快之后很难-- git地址: https://github.com/Jailman/blowupyrcastle.git 游戏资源使用了文章中附带的下载,原版文章 ...

  6. vue 登录验证引擎

    1.router配置: 路由元信息 const router = new VueRouter({ routes: [ { path: '/foo', component: Foo, children: ...

  7. Spring学习(二)--IOC

    一.什么是IOC? 孤傲苍狼总结的理解: https://www.cnblogs.com/xdp-gacl/p/4249939.html 我的理解(不知道对不对哈,不对的话请各位大神指出): IOC往 ...

  8. 手机连不上eclipse

    在进行android开发时,有时候会很奇怪,手机连不上eclipse了,打开eclipse的ddms也没有,重启adb也不行,这时候我们应该怎么办呢. 首先打开资源管理器,找到 adb.exe 结束掉 ...

  9. shell 脚本实战笔记(8)--ssh免密码输入执行命令

    前言: ssh命令, 没有指定密码的参数. 以至于在脚本中使用ssh命令的时候, 必须手动输入密码, 才能继续执行. 这样使得脚本的自动化执行变得很差, 尤其当ssh对应的机器数很多的时候, 会令人抓 ...

  10. Navicat Premium连接PostgreSQL

    连接PostgreSQL时,报错 大致意思:你当前的IP没有连接权限,在文件pg_hba中缺少当前IP的配置 解决:找你的PostgreSQL安装路径,这是我的:C:\Program Files\Po ...