我的一点实际经验理解桥接和NAT

桥接是虚拟机完全作为一个独立的地址接在局域网中,NAT是虚拟机依赖宿主主机地址转换的一种方式

例子我的虚拟机如果用桥接模式,连接外部网站如百度时会提示此pc没有装公司的身份认证工具

而采用NAT时,访问就完全没有问题。说明对外用的还是宿主主机的地址

本文参照文章: 
https://www.linuxidc.com/Linux/2016-09/135521.htm
https://www.jb51.net/article/105497.htm
结合自己的环境进行配置,留下笔记便于以后查询。

vmware版本: 10.0.4
虚拟系统: Red Hat 7 EDT 2014

三种网络模式的区别
配置方法
1. Bridged (桥接模式)
2. NAT (网络地址转换模式)
3. Host-Only (仅主机模式)
三种网络模式的区别
网络模式 特点
Bridged(桥接模式) 将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络。简而言之,这就好像在局域网中添加了一台新的、独立的计算机一样。因此,虚拟机也会占用局域网中的一个IP地址,并且可以和其他终端进行相互访问。桥接模式网络连接支持有线和无线主机网络适配器。如果想把虚拟机当做一台完全独立的计算机看待,并且允许它和其他终端一样的进行网络通信,那么桥接模式通常是虚拟机访问网络的最简单途径。
NAT(网络地址转换模式) 使用NAT模式网络连接时,VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚拟机向外部网络发送的请求数据”包裹”,都会交由NAT网络适配器加上”特殊标记”并以主机的名义转发出去,外部网络返回的响应数据”包裹”,也是先由主机接收,然后交由NAT网络适配器根据”特殊标记”进行识别并转发给对应的虚拟机,因此,虚拟机在外部网络中不必具有自己的IP地址。从外部网络来看,虚拟机和主机在共享一个IP地址,默认情况下,外部网络终端也无法访问到虚拟机。此外,在一台主机上只允许有一个NAT模式的虚拟网络。因此,同一台主机上的多个采用NAT模式网络连接的虚拟机也是可以相互访问的。
Host-Only(仅主机模式) 仅主机模式,是一种比NAT模式更加封闭的的网络连接模式,它将创建完全包含在主机中的专用网络。仅主机模式的虚拟网络适配器仅对主机可见,并在虚拟机和主机系统之间提供网络连接。相对于NAT模式而言,仅主机模式不具备NAT功能,因此在默认情况下,使用仅主机模式网络连接的虚拟机无法连接到Internet(在主机上安装合适的路由或代理软件,或者在Windows系统的主机上使用Internet连接共享功能,仍然可以让虚拟机连接到Internet或其他网络)。在同一台主机上可以创建多个仅主机模式的虚拟网络,如果多个虚拟机处于同一个仅主机模式网络中,那么它们之间是可以相互通信的;如果它们处于不同的仅主机模式网络,则默认情况下无法进行相互通信(可通过在它们之间设置路由器来实现相互通信)。
配置方法
打开虚拟机,在“编辑”->”虚拟网络编辑器”看到

名称 类型
VMnet0 用于桥接模式下的虚拟交换机
VMnet1 用于仅主机模式下的虚拟交换机
VMnet8 用于NAT模式下的虚拟交换机
在Windows主机上对应虚拟了VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,桥接模式不需要虚拟网卡。

1. Bridged (桥接模式)
桥接模式就是将主机网卡与虚拟的网卡利用虚拟网桥进行通信。类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机IP地址需要与主机在同一网段,如果需要联网,则网关与DNS需要与主机网卡一致。

查看windows主机的IP、网关、DNS等信息:
- 可在windows命令行输入命令查看:
ipconfig -all

开启虚拟机,Linux下输入命令
ifconfig

看到虚拟机中我的网卡名称为:eno16777728
对应地,可以在 /etc/sysconfig/network-scripts/目录下看到一个名为“ifcfg-eno16777728”的文件。
sudo vi /etc/sysconfig/network-scripts/ifcfg-eno16777728
修改IP与windows主机在同一网段,子网掩码、网关、DNS与windows主机一致。

修改完成后重启虚拟机网卡
sudo /etc/init.d/network restart
查看能否ping通
ping -c 6 www.baidu.com

2. NAT (网络地址转换模式)
如果网络IP资源紧张,此时使用NAT模式是最好的选择。NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。

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

VMware虚拟机“编辑”–>“虚拟网络编辑器”
1.修改“NAT设置”中的网关地址(使用默认值即可)
2.配置“DHCP设置”(注意需要与子网IP在同一网段)

3.虚拟机Linux系统中修改网络配置
vi /etc/sysconfig/network-scripts/ifcfg-XXX
xxx为网卡的名

4.配置完成后重启虚拟机网卡
$/etc/init.d/network restart
使用ping命令查看是否成功
$ping -c 6 www.baidu.com

测试虚拟网卡VMware Network Adapter VMnet8的作用
Windows下禁用VMnet8

此时Linux下ping外网正常

而ping Windows主机无法ping通

启动VMware Network Adapter VMnet8虚拟网卡后,恢复正常。
证实VMware Network Adapter VMnet8的作用是主机与虚拟机之间的通信。

注:按照此步骤如果无法连接外网,可以尝试在虚拟机“虚拟网络编辑器”里选择“恢复默认设置”试试。

3. Host-Only (仅主机模式)
Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信。
Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通信。

设置步骤:
1.VMware虚拟机“编辑”–>“虚拟网络编辑器”中配置VMnet1仅主机模式,并选择“DHCP配置”*(注意需要与子网IP在同一网段)

2.VMware虚拟顶部菜单选择“虚拟机”–>”虚拟机设置“–>”网络适配器“,在网络连接中选择”仅主机模式”

3.虚拟机Linux系统中修改网络配置
vi /etc/sysconfig/network-scripts/ifcfg-XXX
xxx为网卡的名

4.配置完成后重启虚拟机网卡
$/etc/init.d/network restart
此时ping主机能够ping通
$ping -c 6 192.168.127.1
但ping外网已无法ping通。

在Host-Only模式下,若要将虚拟机接入外网,可以将主机网卡共享给VMware Network Adapter VMnet1网卡。

具体操作:
1. 将主机网卡共享给VMware Network Adapter VMnet1。

2. 虚拟机中设置VMnet1

3.Linux系统中设置网关和DNS地址为主机VMware Network Adapter VMnet1的地址

4.配置完成后重启虚拟机网卡
$/etc/init.d/network restart
此时ping主机和外网均可ping通。

(转)VMware虚拟机三种网络模式的区别及配置方法;的更多相关文章

  1. vmware虚拟机三种网络模式的区别

    首先安装了VMware,在其中安装了Ubuntu系统,正常启动之后开始考虑怎么才能够让主机和虚拟机实现网络互连并且由主机向虚拟机发送文件,通过在网上查阅相关资料,记录学习笔记如下. 学习参考资料: l ...

  2. VMware虚拟机三种网络模式的区别(上篇)

    提到VMware大家就想起了虚拟机技术,虚拟机技术在最近的几年中得到了广泛的发展,一些大型网络服务商都开始采用虚拟机技术,不仅节省了投资成本,更节约了能源的消耗. 我们知道VMware也分几种版本,普 ...

  3. 【Tools】VMware虚拟机三种网络模式详解和操作

    目录 00. 目录 01. VMware虚拟机三种网络模式 02. Bridged(桥接模式) 03. NAT(地址转换模式) 04. Host-Only(仅主机模式) 00. 目录 @ 参考:htt ...

  4. VMware 虚拟机三种网络模式详解

    一.前言 Vmware 为我们提供了三种网络工作模式,分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-only(仅主机模式). 二.VMware 的几个常见虚拟设备 打开 V ...

  5. vmware虚拟机三种网络模式详解_转

    原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 由于L ...

  6. Vmware虚拟机三种网络模式详解

    原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 我怕链 ...

  7. 四、Vmware虚拟机三种网络模式详解

    转载自: http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 1. ...

  8. 【转】VMware虚拟机三种网络模式超详解

    [原文]https://www.toutiao.com/i6596228488666022403/ 由于Linux目前很热门,越来越多的人在学习Linux,但是买一台服务放家里来学习,实在是很浪费.那 ...

  9. 【转】VMware虚拟机三种网络模式详解

    由于Linux目前很热门,越来越多的人在学习Linux,但是买一台服务放家里来学习,实在是很浪费.那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有VMware Workstations ...

随机推荐

  1. (长期更新)【机器学习实践】Pycharm编辑器的使用注意事项

    1. 写Python代码,根据PEP8风格,默认一行的长度不超过 80 个字符. 但是pycharm 默认是第 120 个字符处,故进行修改:  File→Settings→Editor→Code S ...

  2. 攻防世界CRYPTO新手练习

    0x01 base64 直接base64 Decode 得到flag cyberpeace{Welcome_to_new_World!} 0x02 Caesar key为12 的恺撒密码,解密德fla ...

  3. JavaScript 短路值

    了解表达式中的短路值. 逻辑运算从左到右.逻辑或运算,当左边的条件成立时,后面的条件将不再参与运算.因此在逻辑或运算中,尽量将条件结果为true的放第一位.而在逻辑与运算中,尽量将条件结果为false ...

  4. eNSP——VLAN基础配置和Access

    原理: 早期的局域网技术是基于总线型的结构,也就是说所有主机共享一条传输线路.这就带来了很多问题:冲突域和安全问题.为了避免冲突域,我们使用二层交换机.但想想,一台计算机在总线上传输数据的时候,所有计 ...

  5. [CF1146D]Frog Jumping_exgcd_堆优化dij

    Frog Jumping 题目链接:http://codeforces.com/contest/1146/problem/D 数据范围:略. 题解: 首先发现,如果$x\ge a +b$,那么所有的$ ...

  6. Java各版本新特性总结

       Java或者说JDK的更新一般分为两部分内容:Java语言.JVM(C.C++编写),但通常情况下都不会单独发布,因为新的语言特性需要特定的JVM支持才行.下面我总结了从古至今Java各版本的新 ...

  7. Vufuria入门 1 图片识别和选择

    Vufutia中的图片识别功能,底层主要是识别特征点来实现的.特征点,即那些棱角分明的点.尖锐的而不是圆滑的.对比度大的而不是小的. *** 步骤: 进入vofuria官网,登录,点击develop. ...

  8. 剪花布条 HDU - 2087(kmp,求不重叠匹配个数)

    Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input 输入 ...

  9. 从cbv到fbv:用函数写视图与用类写视图的区别(drf与restful)

    FBV 基于函数的视图 (function base views) CBV 基于类的视图 (class base views) 也就是说我们是用函数编写视图~还是类编写视图我们来看下两个的简单实现 u ...

  10. python保留字及其说明

    保留字 说     明 and 用于表达式运算,逻辑与操作 as 用于类型转换 assert 断言,用于判断变量或条件表达式的值是否为真 break 中断循环语句的执行 class 用于定义类 con ...