在虚拟机的三种网络模式中(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. HTML5示例之WebSocket

    Web应用程序通常有一些耗时的操作,但有些操作耗时不是很长,一分钟之内能完成.如果采用后台任务队列去异步处理,这样的用户不能实时看到后台处理的情况.倘若用户触发操作后,Web页面能够实时看到后台处理的 ...

  2. Bellman-Ford算法的改进---SPFA算法

    传送门: Dijkstra Bellman-Ford SPFA Floyd 1.算法思想 Bellman-Ford算法时间复杂度比较高,在于Bellman-Ford需要递推n次,每次递推需要扫描所有的 ...

  3. property()函数

    class C: def __init__(self, size=10): self.size = size def getXSize(self): return self.size def setX ...

  4. Excel和Word 简易工具类,JEasyPoi 2.1.5 版本发布

    Excel和Word 简易工具类,JEasyPoi 2.1.5 版本发布 摘要: jeasypoi 功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导 ...

  5. hue集成hbase出现TSocket read 0 bytes

    解决办法:修改hbase的配置文件 添加以下配置 https://stackoverflow.com/questions/20415493/api-error-tsocket-read-0-bytes ...

  6. p2p项目总结

    1.关于ajax请求所要注意的地方:$.psot(url,json,callback,type) (1)url路径问题,在html中写绝对路径不能用EL表达式,EL表达式只能在jsp中使用 (2)js ...

  7. C语言中关于运算符优先级别

    在一一个表达式中可能有多个不同的运算符结合起来,由于运算符的优先级别不一样,可能会形成得到的结果不同. 优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级. 对于相同的优先级, ...

  8. python基础面试

     1  请用自己的算法, 按升序合并如下两个list, 并去除重复的元素: list1 = [2, 3, 8, 4, 9, 5, 6]list2 = [5, 6, 10, 17, 11, 2] 答案: ...

  9. 机器学习技法:05 Kernel Logistic Regression

    Roadmap Soft-Margin SVM as Regularized Model SVM versus Logistic Regression SVM for Soft Binary Clas ...

  10. 不用第三方解码库取得图片宽高 附完整C++算法实现代码

    在特定的应用场景下,有时候我们只是想获取图片的宽高, 但不想通过解码图片才取得这个信息. 预先知道图片的宽高信息,进而提速图片加载,预处理等相关操作以提升体验. 在stackoverflow有一篇相关 ...