在虚拟机的三种网络模式中(Host-Only、桥接、NAT),能够实现虚拟机访问互联网的只有桥接与NAT模式,而Host-only主能实现虚拟机与主机两者间的通信。下面以RedHat系虚拟机系统为例,讲述了桥接与NAT两种方式下虚拟机访问互联网的实现方法:

1. 桥接模式
  首先设置虚拟机静态IP。其一,可以用RedHat内置的setup命令调出相关参数设置界面;其二,可以在网络配置文件中直接修改(setup的配置最终也是同步在该配置文件中)。需要注意的是,该静态IP应与主机IP在同一网段,掩码以及网关与主机保持一致。另外,需要区分主机的网络连接方式:有线or无线,以相应的选择桥接网卡类型及配置虚拟机的网络参数。(网络配置文件路径:/etc/sysconfig/network-scripts/ifcog-eth0)
  网络参数配置正确后,重启网络服务(service network restart),查看网络参数(ifconfig)便可以看到参数已按照修改同步。接着,对主机与虚拟机进行互ping:主机通常可以正常ping通虚拟机,虚拟机若不能ping通主机则是由于主机的防火墙没有关闭,关闭之后一般便可以ping通了。
  桥接模式下,虚拟机其实是独立于主机的,因此需要一个与主机IP同级的IP。由于我在实验中用的是校园网,每个用户是需要登录客户端来访问互联网的,根据用户MAC地址以DHCP方式分配给每一个用户一个IP地址。这种情况下我的虚拟机显然是不能上网的,事实上当我用虚拟机ping网关是也是ping不同的,其实就相当于我的虚拟机被连接外网的路由器封锁在了局域网内,只能与局域网的用户通信。
  综上,使用校园网的情况下,桥接模式只能实现虚拟机与主机或局域网内的客户机通信而不能访问外网。

2. NAT模式
  NAT模式下,只要主机能够访问互联网,虚拟机就可以。我的网络参数配置情况是,在虚拟机网络编辑器的NAT模式下,设置子网IP、掩码与主机子网IP、掩码一致(子网IP即为主机IP与掩码相与&的结果)。NAT设置项中,设置虚拟机网关为主机IP,在DHCP选项中可以根据子网IP设置主机分配的动态IP的范围。实验中我使用了DHCP的方式配置虚拟机IP。同样可以用setup工具或在配置文件(/etc/sysconfig/network-scripts/ifcog-eth0)中直接配置IP网络模式为DHCP。
  我的 /etc/sysconfig/network-scripts/ifcog-eth0 网络配置文件内容如下:
         DEVICE=eth0
         BOOTPROTO=dhcp  <- 该行用于配置IP方式,'='右边的参数必须小写,这里设置为dhcp方式,参数none表示手动设置的方式
         HWADDR=00:0c:29:38:3b:ac
         NM_CONTROLLED=yes
         ONBOOT=yes
         TYPE=Ethernet
         UUID="a9654486-8d9b-409d-b35e-99a5d5b91667"

#Host With Wire Mode
         #IPADDR=10.136.1.220
         #NETMASK=255.255.240.0
         #GATEWAY=10.136.0.1
         #DNS1=172.16.7.10

IPV6INIT=no
        USERCTL=no   
  网络参数配置完成,重启网络服务(service network restart),这样,主机与虚拟机便可以互相ping通。然而,主机ping虚拟机时可能会存在ping不通的情况,这可能是由于主机网络连接里面的虚拟适配器VMware Network Adapter VMnet8在捣鬼。前面我们已经设置了DHCP的模式配置虚拟机IP,因此,同样需要将VMnet8的IPv4配置为DHCP方式。
  经过上述的相关配置后,虚拟机以NAT网络模式访问互联网便得以实现。

PS: 之后的使用过程中发现,如果手动设置NAT模式下的相关网络配置参数(如子网、掩码以及NAT和DHCP的设置),虽然能够实现访问外网,但是很不稳定,容易断开连接。具体原因并未发现,因此只能将网络配置恢复默认。这确实是一个万能的方式,只需要保持原始配置,虚拟机选择NAT模式。开机后用setup工具配置虚拟机为DHCP模式,然后编辑 /etc/sysconfig/network-scripts/ifcog-eth0配置文件,设置ONBOOT=yes以启动网卡eth0,退出,重启网络服务service network restart,虚拟机便可以稳定上网了。

虚拟机访问互联网的方法 -- 以RedHat系为例的更多相关文章

  1. VirtualBox设置双网卡实现主宿互访及虚拟机访问互联网总结

    1,配置网络 注:VirtualBox要在全局工具-主机网络管理器里新建一个虚拟网卡. 然后虚拟机的网卡1设置为host-only,界面名称为新建的虚拟网卡(我这里为了不跟主机ip冲突,设置成了不同网 ...

  2. 【经验随笔】Java通过代理访问互联网平台提供的WebService接口的一种方法

    背景 通常有两点原因需要通过代理访问互联网平台的提供的WebService接口: 1. 在公司企业内网访问外部互联网平台发布的接口,公司要求通过代理访问外网. 2. 频繁访问平台接口,IP被平台封了, ...

  3. VMware虚拟机三种联网方法及原理

    VMware虚拟机三种联网方法及原理   一.Brigde——桥接:默认使用VMnet0   1.原理:   Bridge 桥"就是一个主机,这个机器拥有两块网卡,分别处于两个局域网中,同时 ...

  4. virtualbox共享文件夹无访问权限问题解决方法

    virtualbox共享文件夹无访问权限问题解决方法 早就困扰了,这次新装虚拟机又碰到了,记录下来. 这篇文章主要介绍了virtualbox共享文件夹无访问权限问题解决方法,造成这个问题的原因是不跟v ...

  5. 将VirtualBox里安装的虚拟机在后台运行方法(在状态栏隐藏窗口)

    由于工作和学习需要,经常要开一个虚拟机开测试和开发,虚拟机我选择Oracle公司的VirtualBox(用了几年了,感觉不错的一款产品),经常开着这个窗口感觉有些浪费资源,这样隐藏窗口就在需求了. 将 ...

  6. JVM总结-Java 虚拟机是怎么识别目标方法(下)

    1. 虚方法调用 在上一篇中我曾经提到,Java 里所有非私有实例方法调用都会被编译成 invokevirtual 指令,而接口方法调用都会被编译成 invokeinterface 指令.这两种指令, ...

  7. 分享我访问google的方法

    对于程序员来说,有很多技术问题还是通过互联网搜索来解决的.所以百度.google对于我们是多少的重要.但是GOOGLE现在无法访问了.怎么办呢.以下是我访问google的方法. 首先自己制作了一个简单 ...

  8. 【ask】vmware(NAT)中的linux突然无法访问互联网网址,但是直接用ip可以访问。

    前两天虚拟机里的linuxmint不知何故,突然无法访问互联网了.依稀记得是升级了win7下面的360安全卫士之后发生的事情.所以, 第1步就开始去找防火墙的各种设置,结果没有查到结果. 第2步猛然看 ...

  9. [RN] 使用 Genymotion 导致 ” Genymotion 已连接,但无法访问互联网 “ 的错误

    使用 Genymotion 导致 Genymotion 已连接,但无法访问互联网 的错误 先把要点 放前面: 网络二 一定要设置 桥接模式 网上很多文章都是设置为 NAT,笔者均失败! 笔者使用的An ...

随机推荐

  1. 1.7 理解dropout

    Dropout为什么有正则化的作用? 下面来直观理解一下. 上面讲到,dropout每次迭代都会让一部分神经元失活,这样使得神经网络会比原始的神经网络规模变小,因此采用一个较小神经网络好像和使用正则化 ...

  2. [翻译] Tensorflow模型的保存与恢复

    翻译自:http://cv-tricks.com/tensorflow-tutorial/save-restore-tensorflow-models-quick-complete-tutorial/ ...

  3. *Boosting*笔记

    集成算法之boosting 集成方法  1. Parallel methods:   1. bagging   2. Random Forest  2. Sequence methods:   1. ...

  4. geotrellis使用(三十八)COG 写入和读取

    前言 上一篇中简单介绍了 COG 的概念和 Geotrellis 中引入 COG 的原因及简单的原理,本文为大家介绍如何在 Geotrellis 中使用 COG 来写入和读取 GeoTIFF数据. 一 ...

  5. Linux 文件读写操作与磁盘挂载

    文件读写 [文件描述符] Linux下,通常通过open打开一个文件,它然后返回给我们一个整数,通过这个整数便可以操作文件,这个整数我们称文件描述符(fd).对应被打开的文件,它也是一种系统资源,那么 ...

  6. java中的多态案例

    多态性实际上有两种: 1.方法的多态性: 1.1方法重载:相同的方法名,会根据传入的参数的类型和个数不同执行不同的方法 1.2方法覆写:同一个方法名称,会根据子类的不同实现不同的功能 2.对象的多态性 ...

  7. Git -> Can't start Git: git.exe

    问题描述 导入别人的PyCharm项目后提示:Can't start Git:git.exe 解决办法 Git就是个类似插件,在Git的官网上注册个账号然后每次编译就会自动把程序上传到网上备份.可以方 ...

  8. [Ubuntu 16.04 LTS ]屏幕分辨率 Unknown display

    新装完Ubuntu 16.04 LTS 通过System settings-->Displays 设置屏幕分辨率 显示"Unknown display",选择后无反应,并且屏 ...

  9. QueryRunner--常见方法

    数据库链接池的使用,一方面解决了数据库访问过多时造成数据库承受的压力,另一方面也简化了数据查询,今天就 DBUtils包所提供的QueryRunner类(org.apache.commons.dbut ...

  10. [Codeforces 864A]Fair Game

    Description Petya and Vasya decided to play a game. They have n cards (n is an even number). A singl ...