实用场景

  • 公司局域网ip有限, 为了不浪费局域网ip, 舍弃了设置最简单的虚拟机桥接直连局域网模式, 采用了本文的方法进行VirtualBox虚拟机网络配置.

软硬件环境

  • Win10系统主机(以下称主机)
  • VirtualBox
  • Ubuntu_Client虚拟机一台
  • Ubuntu_Server虚拟机一台

预想目标

  • 主机物理网卡连接公司局域网上网. (ip从公司路由器自动获取192.168.0.*网段).
  • 在主机上建立一个192.168.6.*网段的局域网, 并将主机, 虚拟机都加入这个网络(这样就不占用公司局域网ip)
  • 虚拟机可以访问互联网及公司局域网内的服务器
  • 局域网内服务器不能访问虚拟机

详细设置步骤

  • VirtualBox网络管理器设置
  • 打开VirtualBox管理器 - 管理 - 主机网络管理器
删除列表中所有虚拟网卡(方便后面设置, 如本机有其他虚拟机网络设置, 此步骤请跳过)
点击"创建" 创建一个虚拟网卡, 假如名称为:"VirtualBox Host-Only Ethernet Adapter"
  • 选中"VirtualBox Host-Only Ethernet Adapter"网卡, 在"网卡"选择卡中手动配置网口
IPv4地址 填 192.168.6.85 (主机ip, 根据实际需要填写, 这里为例子, 后面具体ip及掩码均为例子)
IPv4网络掩码 填 255.255.255.0
IPv6一般自动设置了, 不用填写.
  • 切换选项卡到"DHCP服务器"
勾选"启用服务器"
服务器地址: 192.168.6.100
服务器掩码: 255.255.255.0
最小地址: 192.168.6.101
最大地址: 192.168.6.254
  • 点击"应用"后, 退出对话框.
  • Ubuntu虚拟网卡设置
  • 选中要修改的虚拟机, 这里假设为Ubuntu64_Client, 点击"设置" - "网络"
在"网卡1"选项卡, 勾选"启用网络连接"
连接方式选"仅主机(Host-Only)网络"
界面名称: 下拉选择前文添加的虚拟网卡"VirtualBox Host-Only Ethernet Adapter"
控制芯片默认
混杂模式根据需要选择(我这里选择了拒绝)
勾选"接入网线"
  • 切换到"网卡2"选项卡
勾选"启用网络连接"
连接方式选"网络地址转换(NAT)"
勾选"接入网线"
  • 应用后退出该对话框, 启动Ubuntu64_Client虚拟机
  • Ubuntu网卡配置参数(如不想固定虚拟机ip, 本步骤可忽略)
  • sudo vi /etc/network/interfaces, 设置参数如下(192.168.6.88是我要为Ubuntu64_Client设置的ip):
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto enp0s3
iface enp0s3 inet static
address 192.168.6.88
netmask 255.255.255.0

dns-nameservers 8.8.8.8

auto enp0s8
iface enp0s8 inet dhcp
  • 保存退出后, 重启网络或重启虚拟机应用以上更改.
  • 验证虚拟机网络是否设置成功
  • 在虚拟机端:
ping www.baidu.com # 互联网正常
ping 192.168.6.85 # 虚拟机到主机正常
ping 192.168.0.115 # 公司局域网服务器正常
  • 在主机端:
ping 192.168.6.88  # 主机到虚拟机正常
  • Ubuntu_Server请重复"Ubuntu虚拟网卡设置", "Ubuntu网卡配置参数"设置, 不再赘述.