【转】VirtualBox配置双网卡实现宿主机和虚拟机相互访问及网络互通
原文:https://zhuanlan.zhihu.com/p/458822186
----------------
近期在使用VirtualBox的时候遇到这样的场景,我们需要让宿主机可以访问虚拟机内部的服务,并且虚拟机可以上网。VirtualBox默认的网络方式是Nat网络地址转换,虚拟机可以直接上网但是宿主机却无法访问虚拟机的服务。
四种网络类型
1、NAT 网络地址转换模式(NAT,Network Address Translation) 2、Bridged Adapter 桥接模式 3、Internal 内部网络模式 4、Host-only Adapter
主机模式VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式。要让自己(或别人)理解深刻,方法就是做比较和打比方,比较之间的不同和相同,拿熟知的事物打比方。先来一张图,通过这张图就很容易看出这4种方式的区别:

解决方案
我们可以使用双网卡的配置来完成这个需求。
首先将网卡1设置为仅主机(Host-Only)网络

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

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

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

我们在/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通

如果ping不通,可以尝试重启试一下。
我们在虚拟机内部ping一下百度,验证是否可以上网

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

ok,至此已配置完成。
本文参考:https://www.jianshu.com/p/cc6ed627b5d4
https://blog.csdn.net/qq_38505969/article/details/110231506
https://www.jianshu.com/p/6a2cec8de3f1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2020-06-10 【转】Nginx服务器的反向代理proxy_pass配置方法讲解, 先rewrite 再proxy_pass
2020-06-10 bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。字符串可通过使用 pack() 函数再转换回去。
2020-06-10 infLuxdb 查询语句加tz(),返回结果的时间可以以指定的时区显示
2020-06-10 【转】彻底弄懂UTF-8、Unicode、宽字符、locale
2018-06-10 【转】反思 成长
2015-06-10 cakephp 的query方法,直接写在controller中是否 有点不合适