Linux下NAT模式和桥接模式的网络配置

最近在配置linux虚拟机的时候发现有很多坑,现在记录下来以防日后又跳到坑里。

我的运行环境是:主机 windows 7  虚拟机 Virtualbox +centos6.7

   一、相关概念

linux虚拟机有三种网络模式,分别是Bridged(桥接模式)、NAT(网络地址转换模式)、Host-only(主机模式)。

   1、NAT(网络地址转换模式)

使用NAT模式,就是让虚拟系统借助NAT的功能,通过宿主机所在的网络来访问公网。在这种模式下宿主机成为双网卡主机,同时参与现有的宿主局域网  和新建的虚拟局域网,但由于加设了一个虚拟的NAT服务器,使得虚拟局域网内的虚拟机在对外访问时,使用的则是宿主机的IP地址,这样从外部网络来  看,只能看到宿主机,完全看不到新建的虚拟局域网。

这种情况下虚拟机可以上网可以ping通主机,但是主机ping不通虚拟机。

优点:利用Virtualbox安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,只要宿主机器能访问互联网即可。

  2、Bridged(桥接模式)

在这种模式下,Virtualbox虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器,需要手工为虚拟系统配置IP地址、 网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信,虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。从  网  络技术上理解相当于在宿主机前端加设了一个虚拟交换机,然后宿主机和所有虚拟机共享这个交换机。

这种情况下主机和虚拟机可以互相通信,虚拟机也可以上外网。

优点:利用Virtualbox在局域网内新建一个虚拟服务器,为局域网用户提供网络服务。

  3、Host-only(主机模式)

在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时就可采用host-only模式,在这种模式下宿主机上的所有虚拟机是可以相互通信  的,但虚拟机和真实的网络是被隔离开的。

在这种模式下新建了一个由所有虚拟机与宿主机所构成的局域网,但该局域网与宿主机本身所处的现有局域网是相互独立的,如果不做额外路由设置,这  两个局域网之间不会连通,因此新建的局域网可以认为是一个单独从属于当前宿主机的私有网络,其成员为当前宿主机和相关的所有虚拟机。

从网络技术上讲相当于为宿主机增添了一个虚拟网卡,让宿主机变成一台双网卡主机(宿主网卡+虚拟网卡)。同时在宿主机后端加设一个虚拟交换机,让  宿主机和所有虚拟机构成另一个虚拟的局域网。由于具备双网卡,宿主机可同时参与两个局域网(现有的宿主局域网+新建的虚拟局域网),只不过缺省情  况下两个局域网不连通。

优点:利用Virtualbox创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作。在

下面介绍分别在NAT模式和桥接模式进行网络配置的详细过程。Host-only的模式我用的不多,所以这里就不介绍啦。

   二.NAT模式下的网络配置

1. virtualbox界面下菜单栏: 控制-设置-网络

2.在命令端输入vi /etc/sysconfig/network-scripts/ifcfg-eth0,如下图

3.编辑网络配置文件

4.vi编辑,不会的请自行百度,如下图:

5.输入 service network restart 重启网卡

6.重启后输入:ping www.baidu.com(或其他可以访问的网址),如果出现以下界面说明可以连上外网

7.注意:此处可能出现以下bug

1)在Virtualbox 克隆出来的CentOS Linux情况下,

输入命令ifconfig后,并没有看到eth0。然后重启网卡又报下面错误。

输入命令 :service network restart

故障现象:

2)解决办法:

点击界面右上角网络连接的电脑图案,如图:

然后点击右键,选择connection  information

3)输入 vi /etc/udev/rules.d/70-persistent-net.rules

从显示的内容中找到ATTR{address}为08:00:27:97:29:c1也就是与上图中第一个红框的物理地址相符合对应NAME的值,如下图,红框里面本来是NAME=“eth2”,现在将eth2改为eth0

然后将该物理地址复制后,

在命令端输入vi /etc/sysconfig/network-scripts/ifcfg-eth0,替换掉HWADDR对应的值。保存配置。

4)此时再重启网卡,输入service network restart,应该就恢复正常。

   三.桥接模式下的网络配置

1. virtualbox界面下菜单栏: 控制-设置-网络

2.在主机中打开cmd命令行,输入ipconfig,查看ip地址,网关等相关信息

3.在虚拟机命令端输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0

手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段。

注意:此处子网掩码NETMASK 和 网关GATEWAY跟主机的保持一致,还要添加2个DNS。

4.输入命令:cat /etc/resolv.conf

如果显示出之前配置的2个DNS地址,则说明主机没有屏蔽ping命令如下图:

否则,就要去检查主机防火墙是否打开,是否屏蔽了ping命令

5.重启网卡,输入service network restart,然后再ping www.baidu.com,如下图:

6. 注意:此处可能出现以下bug

如果在虚拟机出现可以ping通外网和网关,但是主机和虚拟机互相ping不通。解决办法如下:

1)检查主机防火墙是否打开,主机网络是否共享。这里要求防火墙关闭,主机网络共享。以及禁用其他网络。

2)检测linux虚拟机是否开启防火墙,如果已开启,就关闭防火墙或者不用关闭防火墙,输入setup,打开防火墙对应的端口。不会的话请自行查看百度。

3)此处,重启主机网络:找到本地网络,点击右键查看属性,检查是否有桥接的驱动,如果没有,需要安装一个。然后双击TCP/IPv4,

打开后确认是自动获取IP地址(这点很重要)然后关闭返回上一个界面。将TCP/IPv4选项前面的勾去掉,保存设置。再重新选中打勾,保存。

  

4)此时,再去测试与主机连接。应该就能够互相ping通。我这边测试就恢 复正常。如果大家测试的时候发现还是不起作用,再根据具体情况分析解决。

[转] LINUX 三种网络连接模式的更多相关文章

  1. Linux三种网络连接模式

    https://www.cnblogs.com/linjiaxin/p/6476480.html 三种模式的区别:https://www.cnblogs.com/itxiaok/p/10358055. ...

  2. 简单区分VMware的三种网络连接模式(bridged、NAT、host-only)

    艺搜简介 VMware在安装时默认安装了两块虚拟网卡,VMnet1和VMnet8,另外还有VMnet0.这些虚拟网卡的配置都是由Vmware虚拟机自动生成的,一般来说不需要用户自行设置. Vmware ...

  3. VMware虚拟系统 bridged、NAT、host-only三种网络连接模式

    目录 前言 bridged(桥接模式) NAT(网络地址转换模式) host-only(仅主机模式) 总结 前言 如果你想利用VMWare安装虚拟机,或想创建一个与网内其他机器相隔离的虚拟系统,进行特 ...

  4. VMware下三种网络连接模式

    VMware下三种网络连接模式 Bridged(桥接模式) 在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机,它可以访问该类网段内任何一台机器. 桥接网络环境下需要做到: 手动 ...

  5. VMWare中三种网络连接模式的区别

    VMWare中有桥接.NAT.host-only三种网络连接模式,在搭建伪分布式集群时,需要对集群的网络连接进行配置,而这一操作的前提是理解这三种网络模式的区别. 参考以下两篇文章可以更好的理解: V ...

  6. vmware三种网络连接模式区别

    vmware有三种网络连接模式分别是 桥接模式 相当于给虚拟机分配了一个和主机同一个子网下的ip,此时该虚拟机相当于同一子网中一台主机,可以访问子网中任意一台主机,也可以访问外网. NAT模式 虚拟机 ...

  7. linux系统的三种网络连接模式

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1 ...

  8. VMware下三种网络连接模式介绍

    birdged(桥接) 桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位,那么物理网卡和虚拟网卡就相当于处于同一个网段,虚拟交换机就相当于 ...

  9. VMware中Bridged、NAT、host-only三种网络连接模式的原理及其区别

    VMnet0:这是VMware用于虚拟桥接网络下的虚拟交换机: VMnet1:这是VMware用于虚拟Host-Only网络下的虚拟交换机: VMnet8:这是VMware用于虚拟NAT网络下的虚拟交 ...

随机推荐

  1. Kubernetes Horizontal Pod Autoscaler

    非常牛逼的技术,目前最新的版本支持众多的Feature HPA功能需要Heapster收集的CPU.内存等数据作为支撑 配置示例: apiVersion: autoscaling/v2beta1 ki ...

  2. 时间插件之My97DatePickerBeta

    My97DatePickerBeta使用很简单 1.在jsp页面中 引入JS 下载地址:链接: https://pan.baidu.com/s/1bp5uzuv 密码: ya9a <script ...

  3. MySQL数据库设置主从同步

    MySQL主从同步的机制: MySQL同步的流程大致如下: 1.主服务器(master)将变更事件(更新.删除.表结构改变等等)写入二进制日志(master log). 2.从服务器(slave)的I ...

  4. Java 通过JDBC连接Mysql数据库的方法和实例【图文说明】

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

  5. Spring Cloud实战微服务入门

    1.spring cloud是什么? 是一个快速构建分布式系统的工具集,构建于Spring Boot之上 2.spring cloud 的特点 约定优于配置 开箱即用.快速启动 适用于各种环境 轻量级 ...

  6. Spring Boot入门——JDBCTemplate使用及其相关问题解决

    1.在pom.xml文件中引入相应依赖 <!-- mysql依赖 --> <dependency> <groupId>mysql</groupId> & ...

  7. 配置JSP模板

  8. GridView1 footer求和

    // ShowFooter="True" private double sum = 0;//取指定列的数据和,你要根据具体情况对待可能你要处理的是int protected voi ...

  9. NSLog Release

    //将下面的代码插入到pch文件中即可 #ifndef __OPTIMIZE__ # define NSLog(…) NSLog(__VA_ARGS__) #else # define NSLog(… ...

  10. SQLyog中的计算适合的数据类型

    可能使用的数据库工作比较杂吧(机器上有toad.PLSQL Developer.Navicat.SQLyog等).并非是觉得那种都不好用,而是觉得有适合大部分需求的,但也有工具在某一方面特别方便的. ...