如何配置 VirtualBox 中的客户机与宿主机之间的网络连接

作者: Aaron Kili 译者: LCTT rusking

| 2017-03-01 13:40   评论: 3 收藏: 3

当你在 VirtualBox 虚拟机软件 中安装了各种操作系统时,你可能需要实现宿主机与虚拟机之间的相互访问。

在这篇文章中,我们将会以最简单明了的方式来说明如何配置客户机与 Linux 宿主机的网络,以实现两者相互访问或者让客户机连接到外网。(LCTT 译注:客户机指 Oracle VirtualBox 虚拟机软件中安装的操作系统,如本文中用到的 CentOS 7 和 Ubuntu 16.10 。宿主机就是你自己的笔记本电脑或台式机,注意这篇文章中作者的宿主机上安装的操作系统是 Linux Mint 18 ,而不是我们平时使用的 Windows 系统。)

本文测试环境: 1、宿主机操作系统—— Linux Mint 18 2、客户机操作系统—— CentOS 7 和 Ubuntu 16.10

要求

  1. 宿主机上安装的  VirtualBox 虚拟机 能正常使用。
  2. 你得事先在 Oracle virtualBox 虚拟机软件中安装好客户机操作系统,比如 Ubuntu、Fedora、CentOS、 Linux Mint 或者其它的 Linux 系统也行。
  3. 在你配置网络前,请先关闭客户机。

为了让宿主机和客户机能够互相联通,这两个机器的默认网卡 IP 必须设置在同一网段,你可以为客户机添加多达 4 块网卡。

默认网卡(网卡 1)通常用于使用 NAT 连接方式连接到宿主机进行上网。

重要提示:通常总是设置第一块网卡与宿主机通信,第二块网卡连接到外网。

为客户机和宿主机创建网卡

在下面的 VirtualBox 管理器界面,创建客户机和宿主机之间的通信网卡。

打开文件->首选项配置,或者使用组合键 Ctrl + G

Virtualbox 首选项界面

在下图中有两个选项,单击并选择仅主机( Host-only )网络。然后使用右侧的 + 按钮来添加一个新的仅主机网络。

设置客户机网络

这样就创建好了一个名为 vboxnet0 的新的仅主机模式网卡。

如果你愿意,你可以使用中间的 - 按钮来删除这个网卡,你可以单击编辑按钮来查看这个网卡的详细配置信息。

你也可以根据自己的实际环境修改配置信息,比如网络地址,子网掩码等等。

注意:下图中的 IPv4 地址就是你的宿主机的 IP 地址。

宿主机网络信息

下图中,如果你想让客户机使用动态 IP 地址,你可以通过配置 DHCP 服务来完成(在使用前请确保启用 DHCP )。但是我建议你为客户机配置一个静态 IP 地址。

在下面的设置所有网络界面单击 OK 按钮来保存修改的配置。

为客户机设置静态 IP 地址

配置客户机网络设置

注意:你可以根据下面的步骤来为任何需要与宿主机通信的客户机添加网卡。

回到 VirtualBox 管理器界面,选择客户机,比如  Ubuntu 16.10 Server 或者 CentOS 7 ,然后单击设置菜单。

配置客户机网络设置

配置客户机网卡以连接到宿主机

从下图的界面中选择网络选项。然后配置第一块网卡( 网卡 1 )的信息如下:

  1. 勾选选项:“启用网卡”来开启该网卡。
  2. 在连接方式选项:选择仅主机( Host-only )网络。
  3. 然后选择网卡名称:vboxnet0

如下图所示,单击 OK 来保存设置:

启用客户机网络

配置客户机网卡连接外网

之后添加第二块网卡(网卡 2 )来让客户机连接到宿主机进行上网。使用下面的设置:

  1. 勾选选项:“启用网络连接”来激活这块网卡。
  2. 在连接方式选项:选择 NAT 方式。

Enable Network Adapter for VM

为客户机启用网络连接

为客户机设置静态 IP 地址

启动客户机,登录系统并配置静态 IP 地址。在客户机上执行下面的命令来查看所有网卡配置信息,然后分配一个 IP 地址:

  1. $ ip add

为客户机配置静态 IP 地址

从上面的截图中可以看出客户机已启用了三块网卡:

  1. lo ——回环网络接口
  2. enp0s3 (网卡 1)—— 前一步我们配置的连接方式为仅主机( Host-Only)模式并且已启用 DHCP 的网卡,之后我们又配置成了静态 IP 地址。
  3. enp0s8 (网卡 2)—— 用于连接到外网。该网卡默认情况下使用 DHCP 来动态获取 IP 地址。
在 Debian/Ubuntu/Linux Mint 系统下的配置

重要提示: 这里我使用的是 Ubuntu 16.10 Server , IP 地址为 192.168.56.5 。

使用你喜欢的编辑器及管理员账号打开 /etc/network/interfaces 配置文件:

  1. $ sudo vi /etc/network/interfaces

修改网卡 enp0s3 的配置信息如下(根据你的实际环境进行修改):

  1. auto enp0s3
  2. iface enp0s3 inet static
  3. address 192.168.56.5
  4. network 192.168.56.0
  5. netmask 255.255.255.0
  6. gateway 192.168.56.1
  7. dns-nameservers 8.8.8.8 192.168.56.1

保存并退出。

然后使用下面的命令来重启网络服务:

  1. $ sudo systemctl restart networking

或者,正常重启系统,然后检查网络配置是否为新的 IP 地址:

  1. $ ip add
在 RHEL/CentOS/Fedora 系统下的配置

重要提示: 这里我使用的是 CentOS 7 系统, IP 地址为: 192.168.56.10 。

使用管理员帐号及你喜欢的编辑器打开 enp0s3 (仅主机网络)的网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3

  1. $ sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

创建或修改配置文件信息如下(根据你实际的环境进行修改):

  1. BOOTPROTO=static
  2. ONBOOT=yes
  3. IPADDR=192.168.56.10
  4. NETWORK=192.168.56.0
  5. NETMASK=255.255.255.0
  6. GATEWAY=192.168.56.1
  7. DNS=8.8.8.8 192.168.56.1
  8. NM_CONTROLLED=no #use this file not network manager to manage interface

保存并退出。然后使用下面的命令重启网络服务(也可以重启系统):

  1. $ sudo systemctl restart network.service

检查修改的配置地信息是否生效:

  1. $ ip add

在宿主机上使用 SSH 工具来管理客户机

在宿主机上使用 SSH 工具来管理你的客户机。在下面的实例中,我将使用 SSH 工具连接到 CentOS 7 服务器(192.168.56.10):

  1. $ ssh tecmint@192.168.56.10
  2. $ who

使用 SSH 工具连接客户机

就写到这里吧!在这篇文章中,我们用简单易懂的方法讲述了如何在宿主机与客户机之间设置网络连接方式。请在下面的评论区跟大家分享下你的想法。


作者简介:

Aaron Kili 是一名 Linux 和 F.O.S.S 爱好者,即将从事 Linux 系统管理员和网页开发工作,他日前是 TecMint 技术网站的原创作者,非常喜欢使用电脑工作,坚信分享知识是一种美德。


via: http://www.tecmint.com/network-between-guest-vm-and-host-virtualbox/

作者:Aaron Kili 译者:rusking 校对:Bestony

本文由 LCTT 原创编译,Linux中国 荣誉推出

如何配置 VirtualBox 中的客户机与宿主机之间的网络连接的更多相关文章

  1. 如何配置 Oracle VirtualBox 中的客户机与物理机网络

    当你在 Oracle VirtualBox 虚拟机软件 中安装了各种操作系统时,你可能需要实现物理机与虚拟机之间的相互访问. 在这篇文章中,我们将会以最简单明了的方式来说明如何配置客户机与 Linux ...

  2. virtual box 中两个虚拟机 、宿主机 三机互通并且能上外网设置

    virtual box 中两个虚拟机 .宿主机 三机互通并且能上外网设置 1:背景:因为需要学习linux,所以需要在虚拟机里装linux系统,测试要么宿主机与虚拟机linux网络实验测试:要么另一台 ...

  3. 同步docker中的容器时间和宿主机相同

    同步docker中的容器时间和宿主机相同.cd /etc/ 在容器中修改下/etc/localtime文件的名称,避免冲突. mv localtime localtime_bak cp /usr/sh ...

  4. 【转】【教程】实现Virtualbox中的XP虚拟机和主机Win7之间的共享文件夹

    原文网址:http://www.crifan.com/add_share_folder_for_virtualbox_guest_xp_and_host_win7/ 已经实现了在主机Win7下,在Vi ...

  5. Oracle 在 多个Virtualbox 虚拟机间 跨不同物理宿主机进行通信

    因为单位网络管理的原因,不太方便使用 Virtualbox 的Bridge Adapter 模式,故此欲采用NAT模式,不对外不暴露虚拟机IP. 但是此时会有一个问题:采用NAT模式后,在通常情况下, ...

  6. virtualbox通过Nat模式上网,宿主机与宿主机互通

    本地搭建virtualbox,开始用的nat转发模式,这样的话宿主机没法访问虚拟机里面的服务.比如nginx网站.这样很不方便 . 在网上找了好久,终于找到了方案.那就是再添加一块虚拟网卡. 在虚拟机 ...

  7. 在Linux客户机与Windows宿主机之间建立共享(VitrualBox)

    VirtualBox中,如果客户机和宿主机都是Windows的话,共享相对是比较方便的.一般是通过\\vboxsvr\shared 这样的路径访问即可. 但是如果客户机是Linux的话,就略微麻烦一点 ...

  8. VirtualBox:启动虚拟机后计算机死机

    造冰箱的大熊猫@cnblogs 2018/2/21 故障描述:Ubuntu 16.04升级Linux内核后,在VirtualBox中启动虚拟机发现Ubuntu死机,只能通过长按电源开关硬关机的方式关闭 ...

  9. 在 VirtualBox 中 CentOS 网络设置

    转自:本文发表于水景一页.永久链接:<http://cnzhx.net/blog/minimal-centos-in-virtualbox/>.转载请保留此信息及相应链接. 4. 设置¶ ...

随机推荐

  1. k8s中的网络(较详细汇总)

    目录 一.网络前提条件-网络模型 二.需要解决的网络问题 1.容器和容器之间的网络 2.pod与pod之间的网络 同一台node节点上pod和pod通信 不同node节点上pod和pod通信 3.po ...

  2. 记录java+testng运行selenium(四)--- 运行代码

    涉及的文件有: .\medical\BusinessFile.java :实例化excel及xml文件操作对象以及将list变成Map .\medical\manual\business\LoginB ...

  3. Django中实现单表和多表接口

    基础接口 序列化:course/serializers.py from rest_framework import serializers from .models import CourseCate ...

  4. Python基础——运行机理

    Python解释器 从Python这门编程语言的实现上来讲,Python是一个名为解释器的软件包,包含:一个解释器 和 支持的库 解释器又有不同版本:CPython.Jython.IronPython ...

  5. JDBC课程2--实现Statement(用于执行SQL语句)--使用自定义的JDBCTools的工具类静态方法,包括insert/update/delete三合一

    /**JDBC课程2--实现Statement(用于执行SQL语句) * 1.Statement :用于执行SQL语句的对象: * 1): 通过Connection 的createStatement( ...

  6. GITHUB下载源码方式

    从昨天开始就想着从GitHub上下载一个开源的Vue的实战项目,希望能从中学习更多的Vue的实用内容,结果搞了半天好不容易下载了,不知道怎么弄.然而,今天终于成功了,激动地我赶紧来记录一下.如何从Gi ...

  7. c++面向对象模型---c++如何管理类,对象以及它们之间的联系

    首先我们随意定义4个类结构 class cl1 { private: int age; string name; static int addr; public: cl1() { } void iwa ...

  8. [Dart] Manipulate Lists/Arrays in Dart

    We will learn how to work with Lists using a variety of methods made available in the dart:core libr ...

  9. 使用quickstart方式快速搭建maven工程

    通常idea 创建maven工程,初始化会比较慢,针对这种现象.我们可以使用一些巧妙的方式来帮助快速搭建 废话不多说直接上图! 图1 使用 archetype-quickstart  选择 图二 点击 ...

  10. javascript权威指南第17章 错误异常处理

    function TestTryCatch(){ try { } catch (error) { //error 类型如下 Error EvalError RangeError ReferenceEr ...