虚拟机三种网络模式详解

云掣YunChe1周前技术文章60

在电脑里开一台虚拟机,是再常见不过的操作了。无论是用虚拟机玩只有旧版本系统能运行的游戏,还是用来学习Linux、跑跑应用程序都是很好的。而这其中,虚拟机网络是绝对绕不过去的。本篇文章通俗易懂的介绍了常见的虚拟网络提供的三种网络链接模式NAT、桥接、主机。即使不懂虚拟网络,看了本篇也能成为虚拟机网络糕手糕糕手!

一:NAT( 网络地址转换)

image-20240716151837120

image-20240929213736185

工作原理/链接方式

工作原理

NAT模式(网络地址转换模式,Network Address Translation)允许虚拟机通过主机访问外部网络(如互联网),但外部网络无法直接访问虚拟机。其工作原理主要是通过主机充当虚拟机的“网关”来实现网络地址转换。

虚拟机的私有网络:

在 NAT 模式下,虚拟机会被分配一个私有 IP 地址(如 192.168.x.x 或 10.x.x.x),这个 IP 地址只能在虚拟机和主机之间有效,并且与外部网络隔离。

虚拟机请求外部网络:

当虚拟机需要访问外部网络(如互联网)时,它会把数据包通过虚拟网卡发送给主机。

数据包的源 IP 地址是虚拟机的私有 IP 地址,而目标地址是外部网络的某个设备(例如某个网站的服务器 IP)。

主机进行 NAT 转换:

主机充当,NAT 路由器,将来自虚拟机的数据包进行,网络地址转换。

将数据包中的源 IP 地址从虚拟机的私有 IP 地址转换为主机的公网 IP 地址。

保留虚拟机的端口信息,以便将返回数据正确转发给虚拟机。

数据包发送至外部网络:

主机将已经替换源 IP 的数据包发送到外部网络(例如互联网)。

外部服务器只看到数据包的源地址为主机的公网 IP,而不知道虚拟机的私有 IP。

外部网络响应数据:

外部服务器将响应数据包发送回主机的公网 IP。

主机接收到响应后,使用 NAT 表将数据包中的目标 IP 地址重新转换回虚拟机的私有 IP 地址。

主机将数据包转发给虚拟机:

主机将响应数据包转发给对应的虚拟机,虚拟机接收到外部网络的数据包后完成通信。

NAT模式下,主机是虚拟的路由器,而虚拟机是一台私有网络中的机器。而既然是私有网络中的机器,那就和私有网络IP地址有关

私有网络IP地址范围

10.0.0.0 - 10.255.255.255


172.16.0.0 - 172.31.255.255


192.168.0.0 - 192.168.255.255


其他需要注意的

处于网络中的计算机,必须要在同一个子网下面才能直接通信(通过数据链路层来通信)。具体什么是子网 可以看我的另一篇博客:

如果两台计算机不在同一个子网,不能通过直接的数据链路层进行数据传输。但是,它们可以通过 三层(网络层) 的设备,例如路由器,来进行通信。

路由器通过网络层协议(如 IP 协议)将数据从一个子网转发到另一个子网

https://blog.csdn.net/qq_61654952/article/details/139453099

1

二:桥接模式(独立主机)

桥接模式允许虚拟机与主机网络以及外部网络完全独立地通信,虚拟机就像是网络中的一台独立主机,具有自己的 IP 地址。

image-20240929213748356



工作原理

1.网络连接:


在桥接模式下,虚拟机的网络适配器与主机的物理网卡(例如以太网适配器或无线适配器)相连接。这种连接模拟了虚拟机与局域网中的一台独立设备直接相连的情况。

2.获取 IP 地址:


虚拟机启动后,会通过 DHCP(动态主机配置协议)从网络中的 DHCP 服务器获取一个 独立的 IP 地址。这个 IP 地址与局域网中的其他设备位于同一子网内,确保虚拟机可以与其他设备直接通信。

3.数据链路层通信:


虚拟机和其他网络设备之间的通信是在数据链路层(Layer 2)进行的。虚拟机使用 MAC 地址进行识别和通信。

当虚拟机发送数据包时,它会将数据包发送到主机的物理网卡。由于虚拟机的网络适配器与主机的网卡桥接,数据包将直接转发到局域网。

其他需要注意的

需要确保 DHCP 服务器能够为虚拟机分配 IP,或者手动为虚拟机分配一个不与其他设备冲突的 IP 地址。

桥接模式下,虚拟机和主机地位是一样的,都是主机链接的局域网中的一台机器,它可以直接访问局域网中的其他设备,如打印机、文件服务器等,也可以被其他设备直接访问。

三:主机模式(子主机)

主机模式将虚拟机完全隔离在主机的网络中,虚拟机只能与主机通信,无法访问外部网络,也无法与其他局域网设备通信。


image-20240929213717638


工作原理

1.虚拟网络适配器:


在主机模式下,虚拟机通过一个虚拟网络适配器与主机进行连接。这个虚拟适配器形成了一个独立的局域网,仅包含主机和虚拟机,完全隔离于外部网络。

2.IP 地址分配:


主机和虚拟机在这个私有网络中都有各自的 IP 地址。主机的虚拟网络适配器通常会为虚拟机分配一个私有 IP 地址(例如 192.168.x.x)。这个 IP 地址只在主机和虚拟机之间有效,外部网络无法访问。

3.数据传输:


当虚拟机需要与主机通信时,它通过虚拟网络适配器发送数据包。这些数据包只在主机和虚拟机之间进行转发。

主机和虚拟机之间的通信是在数据链路层(Layer 2)进行的,使用 MAC 地址进行识别和处理。

其他需要注意的

没有,这个模式一般也很少人用吧

在VM中打开


image-20240929214043415

image-20240929214519495


总结

虚拟机软件设置不同的网络模式,是因为有其特定的应用场景,比如


桥接模式:适合需要与外部网络通信的虚拟机。

NAT 模式:适合需要访问外部网络,但无需外部设备访问虚拟机的情况。

主机模式:适合完全隔离的虚拟环境。


相关文章

Hbase rowkey设计原则

HBase 中的 rowkey 设计需要遵循以下原则:1 rowkey 唯一原则若在 HBase 中向同一张表插入相同 rowkey 的记录,如没有设置版本数量,则此 rowkey 原先的数据会被覆盖...

zabbix监控华为存储设备

zabbix监控华为存储设备

确认监控方式开始监控之前首先思考确认好要监控的方式。提出疑问:zabbix 监控华为存储设备推荐使用snmptrap还是snmptt呢?回答:在 Zabbix 监控华为存储设备时,您可以选择使用 SN...

华为云创建udf

如何使用 1.把以上程序打包成AddDoublesUDF.jar,并上传到HDFS指定目录下(如“/user/hive_examples_jars/”)且创建函数的用户与使用函数的用户有该文件的可读...

Kafka 手动调整分区副本存储

Kafka 手动调整分区副本存储

              在生产环境中,每台服务器的配置和性能不一致,但是Kafka只会根据自己的代码规则创建对应的分区副本,就会导致个别服务器存储压力较大。所有需要手动调整分区副本的存储。测试:创...

MySQL 数据迁移中 lower_case_table_names 参数影响

MySQL 数据迁移中 lower_case_table_names 参数影响

记一次 SQLServer 迁移至 MySQL 遇到的一个关于 lower_case_table_names 参数的问题。前言   将 SQLServer 数据库迁移至 MySQL 迁移过后,驼峰命名...

Apache hive 对接达梦数据库FQA

Apache hive 对接达梦数据库FQA

对接中遇到的问题问题1解决办法定义dm_svc.confIME_ZONE=(480) LANGUAGE=(cn) HIVE=(172.16.104.165:5236) [HIVE] KEYWO...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。