在虚拟机的三种网络模式中(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. 【vuejs深入一】深入学习vue指令,自定义指令解决开发痛点

    写在前面  一个好的架构需要经过血与火的历练,一个好的工程师需要经过无数项目的摧残. 最近博主我沉淀了几个月,或者说懒了几个月.然而大佬的指点总是一针见血,能够让人看到方向.所以我现在有觉得,一个好的 ...

  2. Text-文本撤销

    #撤销操作 from tkinter import * master = Tk() #打开undo按钮 text=Text(master,width=30,height=5,undo=True) te ...

  3. WPF 字符串溢出判断,字符串长度是否超过控件宽度

    TextBloc可以将TextTrimming属性设置为CharacterEllipsis 其他控件可以在控件大小变更或者其他事件上附加下列方法 private void OnEllipsis(obj ...

  4. win10下 github+hexo搭建个人博客.md

    我的博客地址 https://chenxianfu.github.io/ 遇到的坑 hexo 问题 4000端口打不开,可能端口占用,请输入一下命令 hexo server -p 4001 针对很多人 ...

  5. HTC Vive 叠影器无法创建设备

    今天使用笔记本电脑打开SteamVR发生错误:SteamVR启动失败,"Shared IPC Compositor Connected Fail(306)",然后启动失败,在UI界 ...

  6. angular的时间指令 以及防止闪烁问题

    1.点击事件 <!doctype html><html lang="en"><head> <meta charset="UTF- ...

  7. [LeetCode] Poor Pigs 可怜的猪

    There are 1000 buckets, one and only one of them contains poison, the rest are filled with water. Th ...

  8. echarts.js--前端可视化数据图形

    ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上, 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等 ...

  9. [SDOI 2010]魔法猪学院

    Description 题库链接 给出一张 \(n\) 个点 \(m\) 条边有向图,询问最多有多少条不同的路径从 \(1\) 到 \(n\) 并且路径长度和 \(\leq E\) . \(2\leq ...

  10. [CEOI 2004]Sweet

    Description 题面链接 有 \(n\) 种糖果.第 \(i\) 种糖果有 \(m_i\) 个.取出一些糖果,至少 \(a\) 个,但不超过 \(b\) 个.求方案数. \(1\leq n\l ...