虚拟机的网络模式

1、NAT模式

一般家庭网络都会用到NAT。办理了宽带,分配了一个ip地址,但家里很多设备都需要上网,怎么办?

路由器会自动进行地址和端口的转换,出去时转成外网ip(全家共用一个)+端口,进来时又重新转成内网ip+端口的模式。

同时要注意,内网ip(A类:10.0.0.0-10.255.255.255,B类:172.16.0.0-172.31.255.255,C类:192.168.0.0-192.168.255.255)是不能公网路由的,因为是每个局域网中的内部地址,不同局域网中可以有相同的内网地址。

内网ip端口可以通过NAT访问外网,但外网一般不能直接访问内网的ip端口。因为路由器一般只配置了SNAT,即源NAT,会对出去的源ip端口进行转换,但外网进来的访问内网ip端口的请求,由于没有对应的映射表,请求会被丢弃。当然这个可以通过手动配置DNAT(目的地址NAT)来解决。

说回来虚拟机的NAT,这就相当于宿主机上的每个虚拟机都在一个独立的局域网里面,并且都有自己的DHCP和网关,各个虚拟机的ip地址可能相同(因为在不同的子网里面),所以

(1)虚拟机相互之间是不通的(不考虑端口转发等操作)

(2)虚拟机当然能访问宿主机,并且可以通过宿主机再访问外网,就好比你家里局域网中的设备也能访问外网一样。

虚拟机发起一个请求,假设虚拟机通过Xip+x端口请求外网的Aip+a端口,这个请求首先到虚拟机和宿主机之间的路由器H(这是一个虚拟路由器?),目标地址不变,源地址通常会直接转换为宿主机在上一层网络(家庭局域网)中的IP地址。 对于宿主机操作系统来说,这个数据包现在看起来就像是宿主机上的一个普通应用程序发出的。在宿主机看来是虚拟路由器H作为一个应用发起了一个请求,于是通过NAT转到公网(假设宿主机所在网络是一个家庭局域网,也是通过NAT访问外网),公网返回响应后再转回虚拟路由器,虚拟路由器再通过映射表转到虚拟机。整个过程其实是有两次NAT映射。

(3)宿主机不能访问虚拟机,外网ip也不能访问虚拟机,对应外网ip不能直接访问NAT的内部ip

2、NAT网络模式

和NAT模式的区别只在于一个宿主机上的多个虚拟机,不再是每个虚拟机处于一个单独的子网中了,而是所有虚拟机处在一个子网中,共用一个DHCP和网关,因此虚拟机相互之间是通的。其他和NAT模式完全相同。

3、桥接模式

NAT模式下,虚拟机的网络相当于还是比宿主机所在网络低一级(虚拟机所处子网的DHCP是宿主机上的一个虚拟网络适配器),而在桥接模式下,虚拟机软件会创建一个虚拟网桥,将虚拟机的网卡"桥接"到宿主机的物理网卡上,虚虚拟机就像一台独立的物理机一样,直接连接到了宿主机所在的家庭局域网。它会从家庭路由器那里获取一个IP地址。

所以,

虚拟机之间,通

虚拟机到宿主机,通

虚拟机到外网,通

宿主机到虚拟机,通

外网到虚拟机,不通

4、内部网络

各个虚拟机之间搭建了一个内部网络,不和宿主机相通。

也就是

虚拟机之间,通

虚拟机到宿主机,不通

虚拟机到外网,不通

宿主机到虚拟机,不通

外网到虚拟机,不通

5、仅主机

和内部网络非常像,区别在于宿主机也和虚拟机在同一个隔离网络里,但不是联外网的那个局域网中。

虚拟机可以通过虚拟网卡访问宿主机,宿主机也可以访问虚拟机。可以把这张虚拟网卡想象成一张真实的网卡插到宿主机上了,宿主机就有两张网卡,两卡各自分别连到一个网络,宿主机存在于两个网络中。但虚拟网卡所在网络没有设置网关,因此不能连接外网。

虚拟机之间,通

虚拟机到宿主机,通

虚拟机到外网,不通

宿主机到虚拟机,通(可以ping虚拟网卡,但不能ping宿主机在家庭网络中的ip)

外网到虚拟机,不通

相关推荐
云飞云共享云桌面4 小时前
传统工作站 vs 云飞云共享云桌面:制造业设计云桌面选型深度对比
运维·服务器·前端·网络·3d·架构·制造
森G6 小时前
61、信号与槽机制在 TCP 编程中的应用---------网络编程
网络·c++·qt·网络协议·tcp/ip
swordbob8 小时前
NIO 的 Channel 里有多个 BIO 吗?
linux·网络·nio
天天讯通8 小时前
OKCC 呼叫中心安全性能全解析:技术防护与管理措施指南
大数据·开发语言·网络·人工智能·安全·语音识别
leo_yu_yty10 小时前
Go语言分布式计算(RPC入门)
网络·网络协议·rpc
2401_8685347810 小时前
2025下半年网络规划设计师真题(选择题、案例分析)
运维·服务器·网络
TechWayfarer11 小时前
查IP归属地接入实战:保险理赔如何做动态风险监控与预警
网络·python·tcp/ip·安全·flask
Resurgence_zc11 小时前
openGauss 资源池化主备页面交互流程梳理
网络·交互·数据库开发
Dlrb121111 小时前
Linux网络编程-网络基础概念(IP, UDP协议)
linux·服务器·网络·网络基础·端口号·ip协议·udp协议
shushangyun_11 小时前
汽车服务行业B2B平台+AI解决方案哪家专业:2026年最新测评
java·运维·网络·数据库·人工智能·汽车