本文介绍了在VirtualBox中使用NAT模式为虚拟机配置固定IP,并实现内外连通及外网访问的方法。虚拟机默认分配固定IP(如10.0.2.15),可与宿主机通信,但宿主机需端口转换才能访问虚拟机。若需多虚拟机互通,需使用NATservice模式。虚拟机网关固定为10.0.2.2,DNS可设为公共DNS。
如果:仅使用(启动)一个虚拟机,这个虚拟机只启用1块网卡,网络选择默认的NAT模式,宿主机可以上外网,
那么:这个虚拟机天然符合“固定IP+内外连通+外网访问”的要求,
原因:VirtualBox给这个虚拟机分配的IP是“固定的”:10.0.2.15 (Hyper-V是随机的,几乎每次启动都会变)
虚拟机可以ping通宿主机10.0.2.2
宿主机ping虚拟机10.0.2.15 不通。如果需要由外向内连通,需要端口转换。
虚拟机DNS=宿主机DNS
以下内容就不要浪费时间看了,如果想了解更多,下面的内容很有帮助。
学习场景:
学习苍穹,用到苍穹虚拟机。
知识背景:
你得知道 VBox 是什么,以及 VBox的基础用法。
本文涉及的宿主机是windows10/11专业版,虚拟器是VBox(Oracle公司的产品)
必要提示:
1,VBox虚拟机有多种网络连接方式,每种方式的连接情况参考下图:
2,VBox的多种连接方式的优缺点,自行学习,在此不赘述。
3,Bridged(桥接)模式也是常用的模式,看似功能完备,但受到宿主机网络环境的影响,IP地址会变。
4,NAT模式,是虚拟机系统默认的方式,也是最好的方式。
5,NATservice模式(软件界面下的名字是“NAT网络”),与NAT模式原理相同,更可以实现虚拟机之间互通。
6,本篇不展开太多,主要实现目标“VirtualBox 虚拟机,固定IP+内外连通+外网访问”。
实现方式:
方式一,原理上可以参照 Hyper-V 的模式(下方有链接)同理配置,但我没尝试,有兴趣可以去试试。
方式二,就用默认的NAT模式就好了。
默认的NAT模式下,VBox内置NAT Engine主导网络连接,分配给第一个虚拟机的NET参数如下:
IP地址:10.0.2.15 子网掩码255.255.255.0 广播地址10.0.2.255 网关10.0.2.2 DNS=宿主机的DNS。
我们实现“VirtualBox 虚拟机,固定IP+内外连通+外网访问”目标的方法就是:
在默认的NAT模式下:
设置虚拟机固定IP地址为:10.0.2.15 子网掩码255.255.255.0 广播地址10.0.2.255 网关10.0.2.2 DNS=223.5.5.5
关键点:
虚拟机的网关是10.0.2.2,DNS是公共DNS223.5.5.5(避免受到外部宿主机的网络环境的影响)
方式三,如果希望多个虚拟机互通,就必须得用NATservice模式(软件界面下的名字是“NAT网络”)。
知识延展:
VBox网络连接NAT模式:
10.0.2.15这个初始分配的IP会不会变?不会变,VBox软件帮助里说的很清楚。
10.0.2.2这个网关地址会不会变?不会变,VBox软件帮助里说的很清楚。
怎么互ping?
1,虚拟机ping10.0.2.2,这个地址就是宿主机地址,比如宿主机上有数据库,直接拿这个地址连接。
2,宿主机ping10.0.2.15,是ping不通的,需要通过“端口映射”来“按需使用”。(不详细解释了,自己去学习)
3,有没有方案可以实现“内外直接互ping”(像Hyper-V那样)?在我的知识范围内,没有。
如果多个虚拟机都用默认的NAT模式,VBox是怎么处理的?(来自VBox软件帮助)
第一个虚拟机的第一个网卡:
IP地址10.0.2.15 子网掩码255.255.255.0 广播地址10.0.2.255 网关10.0.2.2 DNS=宿主机的DNS
第一个虚拟机的第二个网卡:
IP地址10.0.3.15 子网掩码255.255.255.0 广播地址10.0.3.255 网关10.0.3.2 DNS=宿主机的DNS
第一个虚拟机的第三个网卡:
IP地址10.0.4.15 子网掩码255.255.255.0 广播地址10.0.4.255 网关10.0.4.2 DNS=宿主机的DNS
...
第二个虚拟机的第一个网卡:
IP地址10.0.2.15 子网掩码255.255.255.0 广播地址10.0.2.255 网关10.0.2.2 DNS=宿主机的DNS
...
上面的规律看懂了吗?
VBox网络连接NAT模式和“NAT网络”模式的区别:
这两者本质一样。
区别是:
默认的NAT模式,每个虚拟机都是“独立交换”,所以每个虚拟机的第一个网卡都是一样的IP。
“NAT网络”模式下,每个虚拟机的每个网卡都可以选择同一个“NAT网络”,大家就基于“同一个路由器”组成一个“虚拟局域网”了,所以可以在默认的NAT模式的基础上实现“虚拟机之间互通”。
(本文的核心内容就是上面标注颜色的几句话,其他都是知识延展)
(本文还涉及一些必备知识,比如VBox怎么使用,怎么选择网络连接方式,Linux系统怎么设置固定IP......等)
(以上内容均来自VBox软件帮助文件,且经过使用验证。)
(文中内容如有不妥,请回帖留言,我适时回帖。)
姊妹篇:Hyper-V 虚拟机,固定IP+内外连通+外网访问 (kingdee.com)