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下NAT模式和桥接模式的网络配置的更多相关文章

  1. 1、win10下连接本地系统上的Linux操作系统(分别以Nat方式和桥接模式实现)

    1.win10下连接本地系统上的Linux操作系统(分别以Nat方式和桥接模式实现) 一.准备知识:win10下打开Administrator的方式 在win10操作系统中,Administrator ...

  2. 关于Linux安装中NAT模式和桥接模式的区别详解

    1.一般我们在创建一个Linux虚拟机时候,会面临三个网络配置选择: 桥接模式.nat模式.host-only模式(主机模式,这个模式用得少,就不介绍了) 2.NAT模式: 所谓nat模式,就是虚拟系 ...

  3. 关于Linux安装中NAT模式和桥接模式的区别详解(转载)

    1.一般我们在创建一个Linux虚拟机时候,会面临三个网络配置选择: 桥接模式.nat模式.host-only模式(主机模式,这个模式用得少,就不介绍了) 2.NAT模式: 所谓nat模式,就是虚拟系 ...

  4. 虚拟机网络连接模式中桥接模式和NAT模式的区别

    1.桥接模式:当虚拟机系统的网络连接模式为桥接模式时,相当于在主机系统和虚拟机系统之间连接了一个网桥,而网桥两端的网络都属于同一网络,主机和虚拟机是处于同一网络中的对等主机. 实例,在使用Xshell ...

  5. VMware虚拟机上网络连接模式bridged(桥接模式)

    VMware虚拟机上网络连接模式bridged(桥接模式)的实质就是虚拟机本身利用主机的网卡对外直接作为一个真实的物理主机存在. 也就是理论上此时的虚拟机和主机没什么关系,只是和主机公用了一块网卡,其 ...

  6. 设计模式GOF23(结构型模式:代理模式,适配模式,桥接模式,组合模式,装饰模式,外观模式,享元模式)

    结构型模式: – 分类: • 适配器模式.代理模式.桥接模式.装饰模式.组合模式.外观模式.享元模式 – 核心作用:是从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题.   结构 ...

  7. [转帖]linux下CPU、内存、IO、网络的压力测试,硬盘读写速度测试,Linux三个系统资源监控工具

    linux下CPU.内存.IO.网络的压力测试,硬盘读写速度测试,Linux三个系统资源监控工具 https://blog.51cto.com/hao360/1587165 linux_python关 ...

  8. Linux下多网卡同网段多IP网络分流设定方法

    Linux下多网卡同网段多IP网络分流设定方法 -- :: 标签:Linux下多网卡同网段多IP网络分流设定方法 当服务器需要较高的网络流量时,在其它资源不造成瓶颈的情况下无疑会用到多网卡. 第1选项 ...

  9. hadoop搭建杂记:Linux下JDK环境变量的设置(三种配置环境变量的方法)

    Linux下JDK环境变量的设置(三种配置环境变量的方法) Linux下JDK环境变量的设置(三种配置环境变量的方法) ①修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种 ...

随机推荐

  1. JQuery未来元素事件监听写法

    $(document).on('click','.div1',function(){ alert("abc"); }); 格式一致,第一个参数写事件,第二个参数给谁写事件(选择器) ...

  2. A1046. Shortest Distance

    The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed t ...

  3. flutte项目命令行打包

    进入自己flutter项目根目录,运行以下命令 flutter build apk #打包安卓 flutter build ios #打包ios 然后会给出一个路径,就是打包完成的apk的位置 bui ...

  4. ICPC模板编写 latex

    推荐模板 https://www.jianshu.com/p/28552706e811 另外导入C文件: \lstinputlisting[language=C]{xxx.c} .c文件编码方式为UT ...

  5. R语言实现两文件对应行列字符替换(解决正负链统一的问题)

    假设存在文件file1.xlsx,其内容如下: 存在文件file2.xlsx,其内容如下: 现在我想从第七列开始,将file2所有的字符替换成file1一样的,即第七.八.九.十列不需要改变,因为fi ...

  6. NOIP 普及组 2012 寻宝(思维???)

    传送门 https://www.cnblogs.com/violet-acmer/p/9937201.html 题解: 一开始用暴力查找下一个要去的房间,超时了,emmmmm....... 然后,就稍 ...

  7. STM32L011D4 ----- 使用注意

    下载程序: SWD下载模式,PA14(SWCLK)是作为输入口,但是当单片机进入bootloader模式,PA14变为输出模式,就不能下载程序了. 所以下载程序时,需要配置下载程序的上位机为“conn ...

  8. SVN提交前准备

    操作步骤1: 操作步骤2: 操作步骤3: 操作步骤4: 操作步骤5: 操作步骤6:查看 操作步骤7:ignore 操作步骤8:直接提交项目

  9. python自动化开发-[第十天]-线程、协程、socketserver

    今日概要 1.线程 2.协程 3.socketserver 4.基于udp的socket(见第八节) 一.线程 1.threading模块 第一种方法:实例化 import threading imp ...

  10. mysql删除大表更快的drop table办法

    mysql删除大表更快的drop table办法 参考资料:https://blog.csdn.net/anzhen0429/article/details/76284320 利用硬链接和trunca ...