以下仅仅是个人的一些浅见, 仅供参考
NAT模式
NAT 原理
NAT 的原理就是将包含 ip:port 的数据包发给 NAT 设备如路由器, 路由器会将数据包中的私网 ip 替换成公网 ip, 将端口替换成随机生成的一个不重复的端口, 最后发给目标主机。
路由器会将这种 ip:port 的内外映射保存在映射表中。当它收到外界返回的数据包时,会从映射表中查找并替换成对应的私网 ip 和端口, 最后发给局域网内的目标主机。
虚拟机中的NAT模式
如果你的网络 ip 资源紧缺,但又希望你的虚拟机能够联网,这时候 NAT 模式是最好的选择。NAT 模式借助虚拟 NAT 设备和虚拟 DHCP 服务器,使得虚拟机可以联网。其网络结构如下图所示:
NAT模式相当于在宿主机内建立了一个和虚拟机通信的专用网络。具体来说, 就是将虚拟机的虚拟网卡 (不是 Adapter Vmnet8) 连接到虚拟机交换机上, 再经过虚拟 NAT 设备将要发送的数据包中的 ip 和端口映射成宿主机的, 最后以宿主机的身份和外网通信,当收到外网返回的数据包时,再根据目标端口发给宿主机上指定的虚拟机进程。但虚拟机无法访问局域网内其它主机(除非使用端口映射),因为它在局域网内只能被宿主机看见。另外,虚拟 DHCP 服务器会负责虚拟机的路由配置,所以 NAT 模式下不需要手动配置路由。
那么,VMware Network Adapter VMnet8 这个虚拟网卡是干什么的呢?其实 VMware Network Adapter VMnet8 是为了实现虚拟机和宿主机之间的通信。如果禁用该网卡,虚拟机可以 ping 通宿主机,但宿主机 ping 不通虚拟机。
特点
- 使用 DHCP,不需要手动配置路由
- 不占用 IP
- 无法和局域网内其它主机通信,除非使用端口映射
桥接模式
桥接模式相当于在局域网内新建了一台独立的主机,虚拟机以自己的 IP 去和局域网内所有主机通信,也可以和外网主机通信。但该模式下需要手动配置虚拟机的 ip,子网掩码,网关,dns,其中 ip 要和宿主机在同一个网段,子网掩码,网关和 dns 都要和宿主机的相同。
桥接模式的原理是在宿主机的物理网卡上安装一个桥接协议,之后这个网卡既会接收带有宿主机 MAC 地址的数据包,也会接收带有虚拟机 MAC 地址的数据包。宿主机收到外网发给虚拟机的数据包后,根据端口号传给虚拟机所在的进程。这样就成功将虚拟机的虚拟网卡桥接到物理网卡上了。
特点
- 以自己的 IP 和外界通信,能够访问局域网内的所有主机
- 会占用 IP, 可能造成 IP 地址冲突
- 需要手动配置路由
仅主机模式
仅主机模式和 NAT 模式类似, 但虚拟机只能和宿主机通信, 也就是通过 VMware Network Adapter VMnet1 来相互交换数据。相当于 NAT 模式的阉割版。
特点
- 虚拟机只能和宿主机通信,无法其它任何主机通信
参考