虚拟机需要既能与宿主机通讯,又能访问公网,在 VirtualBox 可通过 Nat 实现连接外网,通过 Host-Only 实现与宿主机通讯。

VirtualBox 网络的几种连接方式

  • NAT 模式
  1. 如果主机可以上网,虚拟机可以上网
  2. 虚拟机之间不能ping通
  3. 虚拟机可以ping通主机(此时ping虚拟机的网关,即是ping主机)
  4. 主机不能ping通虚拟机
  • 桥接模式
  1. 如果主机可以上网,虚拟机可以上网
  2. 虚拟机之间可以ping通
  3. 虚拟机可以ping通主机
  4. 主机可以ping通虚拟机
  5. 以上各点基于一个前提:主机可以上网
  6. 如果主机不可以上网,所有1-4特点均无
  • Host-Only Adapter 模式
  1. 虚拟机不可以上网
  2. 虚拟机之间可以ping通
  3. 虚拟机可以ping通主机(注意虚拟机与主机通信是通过主机的名为VirtualBox Host-Only Network的网卡,因此ip是该网卡ip 192.168.56.1,而不是你现在正在上网所用的ip)
  4. 主机可以ping通虚拟机

NAT 和 Host-Only 双网卡设置

先装个网络工具,可执行 route 等命令

## ubuntu 下
sudo apt install net-tools

关闭虚拟机,打开管理>>全局设定>>网络,点击右侧 + 就会创建一个 NatNetwok,点击 ⚙ 进行设置

进入管理>>主机网络管理器,创建适配器并启用,手动配置网卡

DHCP 设置如下,可根据自己需要设置

在系统网络设配器可看到

右键虚拟机设置,网卡1设置 NAT 模式

网卡2设置 Host-Only ,界面名称选择刚创建的适配器

启动虚拟机,这里用的是 ubuntu 20.04 版本, sudo vi /etc/netplan/00-installer-config.yaml 编辑文件,须严格按照 yaml 文件格式填写。

# This is the network config written by 'subiquity'
network:ethernets:enp0s3:addresses: []dhcp4: trueenp0s8:dhcp4: falseaddresses: [192.168.56.102/24]nameservers:addresses: [192.168.56.1]version: 2

:x 保存后 sudo netplan apply 让网络设置生效

enp0s3 就是 NAT 网络的网卡,enp0s8 则是 Host-Only 网络,两个网卡设置别搞反了。

不用设置网关 gateway4,用默认的就行,设置错了可能反而有问题。

route 命令看下路由表,如果设置错了外网不通可看下有没有配错,我一开始 enp0s8 设置错了 gateway4 不是用的 default 网关导致外网不通。

nathan@ubuntu20:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.2.2        0.0.0.0         UG    100    0        0 enp0s3
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 enp0s3
10.0.2.2        0.0.0.0         255.255.255.255 UH    100    0        0 enp0s3
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 enp0s8

ip addr 看下最终的网络

nathan@ubuntu20:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 08:00:27:54:b0:94 brd ff:ff:ff:ff:ff:ffinet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3valid_lft 85761sec preferred_lft 85761secinet6 fe80::a00:27ff:fe54:b094/64 scope link valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 08:00:27:e4:75:f1 brd ff:ff:ff:ff:ff:ffinet 192.168.56.102/24 brd 192.168.56.255 scope global enp0s8valid_lft forever preferred_lft foreverinet6 fe80::a00:27ff:fee4:75f1/64 scope link valid_lft forever preferred_lft forever

让后宿主机可通过 192.168.56.102 连接虚拟机了。

附 CentOS 7 的配置

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

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=7f1bc04e-54e7-49f6-8597-29085d9ec3de
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.101

ip addr

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 08:00:27:87:2e:ee brd ff:ff:ff:ff:ff:ffinet 192.168.56.101/24 brd 192.168.56.255 scope global enp0s3valid_lft forever preferred_lft foreverinet6 fe80::b853:ee1c:d582:c407/64 scope link valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 08:00:27:fe:67:25 brd ff:ff:ff:ff:ff:ffinet 10.0.3.15/24 brd 10.0.3.255 scope global dynamic enp0s8valid_lft 86292sec preferred_lft 86292secinet6 fe80::2926:9286:bfb2:d040/64 scope link valid_lft forever preferred_lft forever

参考

  • [1] VirtualBox Ubuntu16虚拟机网络环境NAT/Host Only模式
  • [2] VirtualBox双网卡虚拟机LinuxNAT不能上网

VirtualBox Ubuntu20.04 网络设置相关推荐

  1. 解决Ubuntu20.04网络配置的问题

    在Ubuntu20.04版本中,没有/etc/network/interfaces文件,而是使用/etc/netplan/01-network-manager-all.yaml文件配置网络 目录 网络 ...

  2. virtualbox ubuntu20.04 配置共享文件夹

    主机:Windows 10 虚拟机:VirtualBox + Ubuntu20.04 1. 在VBox中设置如下 2. 进入Ubuntu 20.04 系统安装增强工具 点击设备 >>> ...

  3. 在 VirtualBox 中 CentOS 网络设置

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

  4. 在ubuntu20.04中设置锁屏背景(亲测有效)

    在ubuntu20.04中设置锁屏背景 1.新建文件夹 打开终端 输入: cd ~ mkdir software cd software/ mkdir images 在根目录创建一个software文 ...

  5. 树莓派Ubuntu 20.04网络设置

    树莓派Ubuntu 20.04网络设置 参考文档:Wi-Fi or Ethernet 参考文档:树莓派Ubuntu网络设置 参考文档:Netplan--新一代网络配置工具 参考文档:Netpan官方文 ...

  6. Ubuntu20.04防火墙设置(简易教程)

    前言   在现在这个网络越发便捷的社会,各种网络勒索病毒层出不穷,即使是Google浏览器也是在不断的更新版本修复漏洞.很多人认为只有Windows系统才容易中病毒,若使用Linux系统就不容易中病毒 ...

  7. 【开箱即用】VirtualBox Ubuntu20.04.6、22.04.2虚拟机下载

    简介 今天继续我们的开箱即用系列. 为了简化Ubuntu虚拟机的制作,减少重复劳动,提高生产效率,本公众号提供了基于VirtualBox制作的Ubuntu纯净虚拟机,供学习交流使用. 下载 Ubunt ...

  8. Ubuntu20.04网络配置

    前言 网络配置 静态指定 动态分配 保存生效 前言 在Ubuntu20.04版本之后,网络配置引入了netplan来进行管理, 与之前修改/etc/network/interfacese不一样了. 网 ...

  9. Ubuntu20.04网络连接不上

    1.查看本机网卡命令 ip a 得到本机网卡编号 2.编辑连接文件(无则创建) sudo vim /etc/network/interfaces auto lo iface lo inet loopb ...

最新文章

  1. npm install 提示权限不足 Error: EPERM: operation not permitted, unlink XXX
  2. python 保存内容到记事本里面
  3. 如何判断设备是上电复位还是软复位(主动调用复位接口或者看门狗复位,W600)
  4. 四川c语言二级成绩查询,四川省计算机等级考试二级C语言考试分析(hcy__ ).ppt
  5. HTML+CSS+JS实现 ❤️绘制卡丁车动漫特效❤️
  6. (转)淘淘商城系列——商品搜索功能Service实现
  7. 为解决半导体供应短缺问题,全球半导体厂商迅速增产
  8. 我爱人71年3月出生,档案招工表填成74年了,如何办理退休?
  9. Strom 可定制任务调度策略(Pluggable Scheduler)
  10. 漏洞:互联网时代的阿喀琉斯之踵 挖掘漏洞哪家强?
  11. SHEL中调用uci
  12. 物联计算机大赛,计算机与物联网学院在本次计算机设计大赛中喜获佳绩
  13. 牛客 · 奇♂妙拆分
  14. termux python_【小白教程】Termux实现安卓手机Python编程
  15. 日志配置:logging.file.path与logging.file.name的区别
  16. 百度联盟原负责人周品创办B2C网站
  17. MEM工程硕士考试经验
  18. Compose学习笔记1-compose、state、flow、remember
  19. 计算机学院军训特色标语,各具学院特色的军训口号
  20. 多线程编程:两个人A、B同时对一个账户取钱(A从ATM取,B从柜台取)

热门文章

  1. 微波通信天线选择与优化方法
  2. 大数据分析师的就业前景如何?
  3. 联想c245如何使用html,[转载]联想C245一体机电脑改XP成功,REALTEK ALC269声卡正常驱动...
  4. CentOS7 Broadcom无线网卡驱动安装
  5. 安居客python二手房数据预处理
  6. 看完GPT-4测评报告,人麻了
  7. 《PMBOK 指南第七版》初识
  8. 深入理解linux 内核的RCU本质
  9. 金蝶EAS设置ctx控制单元
  10. JFinal入门教程