VMware为虚拟机配置NAT上网
如果你的网络环境是 IP 资源很缺少或对 IP 管理比较严格的话,那桥接模式就不太适用了。如果真是这种情况的话,我们该如何解决呢?接下来,我们就来认识 VMware 的另一种网络模式:NAT模式。
当将 Workstation Pro 安装到 Windows 或 Linux 主机系统时,系统会设置一个 NAT 模式网络 (VMnet8)。在使用新建虚拟机向导创建典型虚拟机时,该向导会将虚拟机配置为使用默认 NAT 模式网络。使用 NAT 模式网络时,虚拟机在外部网络中不必具有自己的 IP 地址。主机系统上会建立单独的专用虚拟网络。在默认配置中,虚拟机会在此专用虚拟网络中通过虚拟的 DHCP 服务器获取 IP 地址。
20180601231828849.png在 NAT 模式中,主机网卡直接与虚拟 NAT 设备相连,然后虚拟 NAT 设备与虚拟 DHCP 服务器一起连接在虚拟交换机 VMnet8 上,这样就实现了虚拟机联网。那么我们会觉得很奇怪,为什么需要虚拟网卡 VMware Network Adapter VMnet8 呢?原来我们的 VMware Network Adapter VMnet8 虚拟网卡主要是为了实现主机与虚拟机之间的通信。在之后的设置步骤中,我们可以加以验证。
首先设置虚拟机中 NAT 模式的选项,打开 VMware,点击“编辑”菜单下的“虚拟网络编辑器”,以设置 NAT 参数及 DHCP 参数。然后点击“更改设置”按钮来申请管理员权限,如下图所示。
image如下图所示,然后点击名称为 VMnet8 的虚拟交换机,在“子网 IP(I)”和“子网掩码(M)”输入框中分别设置子网 IP (这里使用了一般局域网范围的 IP 地址 192.168.x.0)和子网掩码(默认为 255.255.255.0)。
image然后点击“NAT设置(S)...”按钮,在弹出的“NAT 设置”对话框(使用了签名设置的子网 IP 和子网掩码)中设置“网关 IP(G)”,然后点击“确定”按钮。
image如果需要让虚拟机使用固定的静态 IP 地址,则不需要勾选“使用本地 DHCP 服务将 IP 地址分配给虚拟机(D)”复选框。如果需要使虚拟机使用从虚拟 DHCP 设备中获取动态 IP 地址,则需要勾选“使用本地 DHCP 服务将 IP 地址分配给虚拟机(D)”复选框,同时需要点击“DHCP 设置(P)”按钮进行动态 IP 地址范围的设置。如下图所示。
image将虚拟机的网络连接模式修改成 NAT 模式,点击“编辑虚拟机设置”,然后点击“网络适配器”,选择“NAT 模式”。
image然后开机启动虚拟机系统,编辑网卡配置文件,命令为 vi /etc/sysconfig/network-scripts/ifcfg-ens33
:
从配置的虚拟 DHCP 设备中获取动态 IP 地址的虚拟机网卡配置文件说明如下:
# dhcp 指定获取动态 IP 地址。如果此处设置为静态,则下面手动设置 IP 需要在 DHCP 地址范围内
BOOTPROTO=dhcp
# NAT 模式也可以设置静态 IP,但需要在 DHCP 地址范围内
# 由于这里设置了DHCP分配动态IP,所以下面的可以注释掉
#IPADDR=192.168.62.121
#NETMASK=255.255.255.0
#GATEWAY=192.168.62.2
#DNS1=8.8.8.8
#DNS2=119.29.29.29
使用静态 IP 地址的虚拟机网卡配置文件说明如下:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="6b6f12e3-986a-496d-aa01-0c400c7f5b9d"
DEVICE="ens33"
# NAT 配置使用静态 IP 地址,这里配置的 IP 地址需要在 DHCP 地址范围内
ONBOOT=yes # 改为 yes,即开机自启动
BOOTPROTO=static # 改为 static 以使用静态IP,dhcp表示动态获取 IP
IPADDR=192.168.62.121 # 设置静态 IP,必须与VMware NAT模式下DHCP设置的IP地址范围内
GATEWAY=192.168.62.2 # 网关地址,必须为VMware NAT模式下NAT设置的网关地址
DNS1=8.8.8.8 # 可以设置为实际的DNS服务器IP(8.8.8.8为Google的DNS服务器)
DNS2=119.29.29.29 # 可以设置为实际的DNS服务器IP(119.29.29.29为Tencent的DNS服务器)
NETMASK=255.255.255.0 # 设置子网掩码
编辑完成,保存退出,然后指定 service network restart
命令来重启虚拟机网卡,然后使用 ping 命令 ping 外网地址,测试能否联网。如下图所示。
然后我们在宿主机上的命令行中去 ping 虚拟机 IP 地址:
image-20210206165748340.png使用虚拟机去 ping 宿主机:
image-20210206170028832.png现在发现虚拟机能联网,且宿主机和虚拟机之间也能相互 ping 通。
所以 VMware Network Adapter VMnet8 虚拟网卡的作用是什么?,那我们现在就来测试一下。我们把 VMware Network Adapter VMnet8 虚拟网卡禁用掉,如下图所示。
image-20210206170427278.png发现禁用掉之后虚拟机依然可以 ping 的通外网。
image-20210206170550389.png但宿主机和虚拟机之间无法相互 ping 通了。
image-20210206170749149.png image-20210206170921793.png注意,禁用 VMware Network Adapter VMnet8 虚拟网卡实验之后,除了重新启用VMware Network Adapter VMnet8 虚拟网卡之外,可能还需要重启虚拟机才能恢复宿主机和虚拟机之间的网络连接。
所以这就是 NAT 模式,利用虚拟的 NAT 设备以及虚拟 DHCP 服务器来使虚拟机连接到外网,而 VMware Network Adapter VMnet8 虚拟网卡是用来在宿主机和虚拟机之间通信的。