近期在使用VirtualBox的时候遇到这样的场景,我们需要让宿主机可以访问虚拟机内部的服务,并且虚拟机可以上网。VirtualBox默认的网络方式是Nat网络地址转换,虚拟机可以直接上网但是宿主机却无法访问虚拟机的服务。

四种网络类型

1、NAT 网络地址转换模式(NAT,Network Address Translation)
2、Bridged Adapter 桥接模式
3、Internal 内部网络模式
4、Host-only Adapter

主机模式VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式。要让自己(或别人)理解深刻,方法就是做比较和打比方,比较之间的不同和相同,拿熟知的事物打比方。先来一张图,通过这张图就很容易看出这4种方式的区别:

image.png

解决方案

我们可以使用双网卡的配置来完成这个需求。

首先将网卡1设置为仅主机(Host-Only)网络

image.png

如果没有这个选项,那么点击管理,然后点击主机网络管理器,点击创建新建一个host-only网络即可

image-20210123195145557

然后启用网卡2,将网卡2设置为网络地址转换NAT

image-20210123194233814

然后启动ubuntu,命令行中输入ip a查看网卡,由图中我们可以看到已经有两张网卡:enp0s3和enp0s8

image-20210123194635685

我们在/etc/netplan/文件夹下新建一个网卡配置文件netcfg.yaml

cd /etc/netplan/
vim netcfg.yaml

然后写上如下内容:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:                //对应网卡名称,这个是host-only网络
      addresses:
              - 192.168.56.101/24    // 我们给虚拟机分配的内网固定静态ip地址
      dhcp4: no
    enp0s8:                // 这个是nat地址转换网络
      addresses: []
      dhcp4: true

然后保存,使用以下命令让配置生效:

 sudo netplan generate
 sudo netplan apply

这个时候配置应该生效了,可以ping一下我们给虚拟机配置的ip看看是否可ping通

image-20210123200405427

如果ping不通,可以尝试重启试一下。

我们在虚拟机内部ping一下百度,验证是否可以上网

image-20210123200523675

虚拟主机内部我安装了宝塔,所以接下来尝试访问宝塔的端口看是否正常

image-20210123200611504

ok,至此已配置完成。

本文参考:https://www.jianshu.com/p/cc6ed627b5d4

https://blog.csdn.net/qq_38505969/article/details/110231506

https://www.jianshu.com/p/6a2cec8de3f1

微信公众号
最后修改:2021 年 02 月 01 日 08 : 39 PM
如果您觉得我的文章有帮助,请随意赞赏!