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

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

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

要求

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

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

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

重要提示:设置第一块网卡与物理机通信,第二块网卡连接到外网。

为客户机和物理机创建网卡

在下面的 VirtualBox 管理器界面,创建客户机和物理机有通信网卡。

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

Virtualbox 首选项配置界面

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

设置客户机网络

下图显示一个名为 vboxnet0 的新的仅主机模式网卡已经被创建。

VirtualBox 首选项界面

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

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

注意:下图中的 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 方式。

为客户机启用网络连接

为客户机设置静态 IP 地址

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

$ 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 配置文件:

$ sudo vi /etc/network/interfaces

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

auto enp0s3

iface enp0s3 inet static

address 192.168.56.5

network 192.168.56.0

netmask 255.255.255.0

gateway 192.168.56.1

dns-nameservers 8.8.8.8 192.168.56.1

保存并退出。

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

$ sudo systemctl restart networking

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

$ ip add

在 RHEL/CentOS/Fedora 系统下的配置

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

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

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

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

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.56.10

NETWORK=192.168.56.0

NETMASK=255.255.255.0

GATEWAY=192.168.56.1

DNS=8.8.8.8 192.168.56.1

NM_CONTROLLED=no #use this file not network manager to manage interface

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

$ sudo systemctl restart network.service

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

$ ip add

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

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

$ ssh tecmint@192.168.56.10

$ who

使用 SSH 工具连接客户机

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


作者简介:

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

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

如何配置 Oracle VirtualBox 中的客户机与物理机网络的更多相关文章

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

    如何配置 VirtualBox 中的客户机与宿主机之间的网络连接 作者: Aaron Kili 译者: LCTT rusking | 2017-03-01 13:40   评论: 3 收藏: 3 当你 ...

  2. 将 Oracle VirtualBox 中运行的虚拟机导入 VMware Fusion、Workstation 或 Player

    1.从virtualbox种导出电脑为 .ova格式镜像 要导入 Oracle VirtualBox 中运行的虚拟机,必须将该虚拟机从 VirtualBox 导出到开放虚拟化格式存档(.ova 文件) ...

  3. Openstack-Mitaka Ceilometer 中使用 SNMP 监控真实物理机

    Ceilometer 是 Openstack 的监控管理计费模块,我所用的版本为 Mitaka 版本.在 Ceilometer 中,可以使用 SNMP 监控服务器的实时硬件资源信息. 系统环境为 Ce ...

  4. 安装在virtualbox中的kali linux如何配置无线网卡

    1.安装在virtualbox里的kali无法使用所在物理机的wifi 2.必须通过usb方式,如图所示 3.所使用的usb无线网卡必须是kali2.0支持的 4.我的型号是TL-WN823N 2.0 ...

  5. virtualbox中centos系统配置nat+host only上网

    以前一直使用的是virtualbox的桥接模式,桥接模式的特点: 虚拟机和宿主机处于同等地位,就像是一台真实主机一样存在于局域网中,可以分配到一个网络中独立的IP. 虚拟机和宿主机之间能够互访. 如果 ...

  6. virtualbox中centos系统配置nat+host only上网(zhuan)

    http://www.cnblogs.com/leezhxing/p/4482659.html **************************************************** ...

  7. 【整理】Virtualbox中的网络类型(NAT,桥接等),网卡,IP地址等方面的设置

    之前是把相关的内容,放到: [已解决]实现VirtualBox中的(Guest OS)Mac和主机(Host OS)Win7之间的文件和文件夹共享 中的,现在把关于网络配置方面内容,单独提取出来,专门 ...

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

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

  9. 将物理机转换成vmware虚机

    随着虚拟化的快速发展,公司主要是以公有云+私有云结合的混合云部署,据我不成熟的了解,目前很少有公司会将一台单独的物理机作为服务器,在公司内部大家逐渐接受了私有云的部署方案,这样做不但可以节省硬件资源, ...

随机推荐

  1. [bzoj1016][JSOI2008]最小生成树计数 (Kruskal + Matrix Tree 定理)

    Description 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的 ...

  2. linux基础命令学习(四)用户与群组

    一.linux用户账号的管理 linux用户账号的管理主要包括用户添加.用户删除.用户修改. 添加用户账号就是在系统创建一个新账号,然后为新账号分为用户号.用户组.主目录和登录Shell等资源. 刚添 ...

  3. JQ 使用模板

    1.首先需要添加模板JS文件,

  4. IOS常用的第三方开发库

    开发几个常用的开源类库及下载地址: 1.json json编码解码2.GTMBase64 base64编码解码3.TouchXML xml解析4.SFHFKeychainUtils 安全保存用户密码到 ...

  5. Codeforces Round #247 (Div. 2) ABC

    Codeforces Round #247 (Div. 2) http://codeforces.com/contest/431  代码均已投放:https://github.com/illuz/Wa ...

  6. Digital variable resistor compensates voltage regulator

    A variable resistor that integrates a programmable, temperature-indexed look-up table can compensate ...

  7. IIS发布站点错误收集

    转载:http://www.cnblogs.com/hangwei/p/4249406.html 本文主要收集IIS在发布站点过程中遇到的错误,并提供解决办法.并亲测可行.如果您也在使用IIS发布站点 ...

  8. 多线程间通信之AutoResetEvent和ManualResetEvent的原理分析和开发示例

    AutoResetEvent 允许线程通过发信号互相通信. 通常,当线程需要独占访问资源时使用该类. 线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号. 如果 AutoRe ...

  9. 以前写SpringMVC的时候,如果需要访问一个页面,必须要写Controller类,然后再写一个方法跳转到页面,感觉好麻烦,其实重写WebMvcConfigurerAdapter中的addViewControllers方法即可达到效果了

    以前写SpringMVC的时候,如果需要访问一个页面,必须要写Controller类,然后再写一个方法跳转到页面,感觉好麻烦,其实重写WebMvcConfigurerAdapter中的addViewC ...

  10. Ant:Ant 入门

    背景 自从有了 Maven 以后,Ant 视乎就不流行了,不过 Ant 还是有其应用场景的,Ant 的思想比较简洁,如下: 一个 project 包含多个 target(类似成员方法). 一个 tar ...