admin管理员组

文章数量:1636900

阅读时间大约:8min

b站蛋老师视频图片(通俗易懂)

一、NAT

可以看作:宿主机是虚拟机的公网

NAT 的概念

  • 通过路由器的网关把局域网映射到互联网
  • 路由器的Net功能可以给设备分配不同的私有地址,设备访问互联网时Net可以把私有地址转换为公有地址,并且可以用端口进行标识
    NAT概念图(手绘版)懒得弄了,以下找了VM官图

关于私有地址

私有地址有特定范围,不能被公有地址直接访问

NAT的特点

  • 只出不进:虚拟机可以访问宿主机,宿主机不能访问虚拟机
  • 虚拟机之间不能互通

以VirtuslBox为例:

  • 默认提供网络模式:NAT
  • 在这个模式默认有一台虚拟的DHCP服务器[1]
  • 因为网络模式是NAT:因此会分配私有地址
  • 每创建一台使用NAT模式的虚拟机:都有同样的私有地址(因为都在独立的网络),所以独立的虚拟机不能访问彼此

虚拟机如何正常上网

要通过:两层NAT

  1. 虚拟机数据发出经过网关(虚拟),软件会对数据包进行改写(使得数据包就像是在宿主环境里生成的)
  2. 数据包再从宿主环境经过自身的NAT转换发送到互联网

二、NAT网络

让虚拟机在NAT模式下都能互通

  • 在虚拟机前多加了一台虚拟交换机
  • 为网络分配地址的DHCP服务器地址和网关地址都与NAT不一样
    【注意:虚拟机之间Mac地址需要不一样,克隆虚拟机记得刷新Mac地址,以防DHCP握手出现问题】

三、桥接网卡 Bridged Adapter

说大白话就是:虚拟机约等于真机

  • 会消耗宿主所在的局域IP地址

四、内部网络 Internal Network

隔离环境

  • 虚拟机之间可以互通,但虚拟机不能访问宿主,不能访问网络
  • 不提供DHCP服务器(eg.Virtual Box),需要手动设置静态IP地址
    补充:设置内部网络前为了不让虚拟机一直卡在DHCP服务里,建议提前设置虚拟机

eg.
Ubuntu 系统里的 netplan 文件下的 yaml 文件

  • 添加optional为ture的值,就可以开始设置网络模式了
  • 注意互ping两台虚拟机的内部网络名字相同
  • 两台虚拟机都要手动配置

这种模式适合于需要在虚拟机之间建立封闭网络环境的场景

五、仅主机 Host-Only

  • 有DHCP直接分配IP,但不能访问宿主局域网里的私有地址(无网关配置)
  • 但是可以访问虚拟网卡的地址
  • 宿主可以访问虚拟机,宿主以外的都不能访问或者被访问

    这种模式适合于需要虚拟机与宿主机之间进行通信,但不需要虚拟机直接与外部网络通信的场景

参考

[1]【虚拟机网络模式】NAT | NAT网络 | 桥接Bridged | 内部网络Internal | 仅主机(Host-Only)_哔哩哔哩_bilibili
[2] VMware Workstation Pro 文档


  1. DHCP服务器是一种可以分配 IP 地址、子网掩码、默认网关以及其他网络配置信息的服务器。 ↩︎

本文标签: 虚拟机模式图文网络