VMware NAT模式下的动态IP、静态IP和外部网路连接设置

初次搭建虚拟机时的几大头痛的问题:

  1. 虚拟机连不了网
  2. 虚拟机连不上主机
  3. 主机连不上虚拟机

看完这篇,你就能解决大部分虚拟网络问题!

前言

搭建虚拟机的目的之一是尝试局域网的搭建,因此虚拟机的网络设置非常重要。一般,虚拟机的默认网络设置是 NAT 模式,本文就讨论 VMware 虚拟机在 NAT 模式下动态 IP、静态 IP 、连接外部网络等一些设置。

NAT 的理解

一般网络连接的方式

计算机需要 IP 地址才能上网。一个网络中,DHCP 服务器负责给网络中的设备分配 IP 地址,DNS 服务器负责把域名解析成 IP 地址(或者反向解析)。
举个例子,一台电脑要访问 www.baidu.com。

  1. 首先在连上网络时,DHCP 服务器就给计算机分配了个 IP 地址(WINDOWS ipconfig / LINUX ifconfig 可看),之后计算机就可以拿着这个门牌号来上网了。
  2. 当访问 www.baidu.com 时,计算机不知道这个域名指代的 IP 地址是什么,所以要交给 DNS 服务器。DNS 服务器(自己或其他DNS)储存了域名-IP 的对应关系,因此找到记录的 baidu 服务器 IP 地址传回给计算机,计算机最后通过连接这个 IP 来连上 baidu 域名对应的服务器。
  3. 再讲讲网关,当两台计算机的 IP 不在同一网段上,那么就需要网关作为桥梁。如果两个 IP 在同一网段,就不需要网关。通常 baidu 服务器的 IP 所在网段和本地计算机的网段不一样,所以一般都需要通过网关。

如果设置使用静态 IP 地址时,设备联网就不再需要 DHCP 服务器分配地址。但是,可能出现静态 IP 与其他设备不在同一网段,或者被网络中的另一个设备占用,都会导致联网问题。

NAT 连接

从外部网络的角度看,主机和虚拟机是一个主体,共享一个 IP 地址。VMware 软件给主机构造了一个 VMnet8 的网卡,专门与虚拟机的网络通信。所以 NAT 连接中,虚拟机拿着 VMware 虚拟 DHCP 分配的地址与主机 VMnet8 网卡通信,再通过主机的 IP 地址上网。桥接模式就是虚拟机在外部网络中作为一个独立的主体,拿着外部 DHCP 分配的 IP 地址上网。

实际操作

一点提醒,改变主机或虚拟机网卡设置后,建议重启所修改设置的网卡,以应用新的配置,防止设置对了联网问题还解决不了。

VMware 虚拟网络设置

  1. 打开虚拟网络编辑器
    在这里插入图片描述
    网络设置默认被锁定,开启编辑功能需要管理员特权。可以编辑后,选定负责 NAT 模式的 VMnet8 虚拟网卡。
    在这里插入图片描述

  2. 首先看两个打勾的盒子:将主机虚拟适配器连接到此网络 表示主机在不在虚拟网络中,如果不打勾,虚拟机和主机之间就不能互联。使用本地 DHCP 服务将 IP 地址分配给虚拟机 表示虚拟机需不需要虚拟 DHCP 服务器给它分配地址,如果不打勾,虚拟网络中就没有 DHCP 服务器来动态分配 IP 地址,虚拟机就必须自己设置一个(固定的)静态 IP。
    再看下面的两个空,子网 IP 表示虚拟网络的 IP 网段,也可以设置其他的,如 111.222.222.0,网段四个数字中的最后一个数代表网段中的不同服务器。子网掩码就默认 255.255.255.0 了。

  3. 打开右边的 NAT 设置,主要设置网关,一般把子网 IP 的最后一个数改成 2,因为要把 1 留给主机,其他数留给网段中的其他虚拟机。“端口转发”在主机访问虚拟机网站时再说。在这里插入图片描述

  4. 设置好后再看 DHCP 设置。主要设置允许 DHCP 服务器分配的网络地址范围,要保证网络的范围在子网 IP 的网段内。虚拟机需要 IP 地址时,DHCP 服务器就在这范围里分配。如果有虚拟机设置了静态 IP,就应该把它排除在可分配地址范围之外,不然 DHCP 给其他虚拟机分配了一样的 IP 就会导致地址冲突。这里设置了全范围。在这里插入图片描述

主机网络设置

由于主机虚拟网卡 VMnet8 是主机与虚拟网络之间通信的桥梁,所以我们主要设置这个网卡。注意,VMnet8 的设置不会影响主机与外部网络的连接。
自动获得 IP:由 VMware 虚拟 DHCP 分配地址,在192.168.3.x 的网段中。
静态 IP:如果虚拟机每次访问主机时都想输入固定的 IP,不用每次都去查主机 VMnet8 IP 是多少,那就应该设置静态 IP。这里分两种情况,都是可以的:

  1. 主机静态 IP 设在子网 IP 同一网段内。我们之前预留的 192.168.3.1 分配给主机,如下图。以后虚拟机的静态 IP 就不能再设置这个地址了。网关一栏填上之前的网关IP ,但因为虚拟机也在该网段内,所以不需要填网关彼此也可以连通
    在这里插入图片描述

  2. 主机静态 IP 设在虚拟网络网段之外。我们设置成不同网段的 192.168.5.1。为了能连虚拟机,我们必须填写之前虚拟网络设置中的网关地址192.168.3.2。 如果确定时会警告IP地址与网关地址不在同一网段内,忽略就行。如下图。
    在这里插入图片描述

虚拟机网络设置

动态获得 IP:可以直接上网、连主机、连其他虚拟机。
静态 IP:设置一个与子网 IP 同一网段的 IP。192.168.3.2是网关,我们就分配.3给第一台虚拟机。设置与主机VMnet8的设置一样。重要!!大部分的联网问题都在这:网关填上虚拟网络的网关地址 192.168.3.2。DNS 栏也填网关 192.168.3.2。 为什么呢?

  1. 你要连主机。如果主机 VMnet8 的 IP 在 192.168.3.x 网段之外,那虚拟机必须通过虚拟网络的网关才能访问主机。 如果主机 IP 在网段内,那网关栏不填也行。
  2. 你要连外部网络,如 baidu.com。在前面提到,计算机访问域名要使用 DNS 解析出对应的 IP地址才能访问,所以不填 DNS 栏,虚拟机里输入 www.baidu.com 是打不开的。第二点,不同网段的计算机连接必须通过网关。外部服务器的 IP地址大概率不在 192.168.3.x 网段内,所以不通过网关的帮助,就算填了 DNS栏,解析出了 baidu 服务器的 IP 地址,虚拟机也是访问不了的。
  3. 你要访问虚拟网络中的其他虚拟机。如果它们的 IP 都在网段内,那不填网关也是没问题的。

举个有趣的例子,展示虚拟机填网关和 DNS 栏的作用。STEP 1: 虚拟机不填 DNS,不填网关,尝试访问 baidu.com 失败。STEP 2: 虚拟机填上网关,通过一台可联网的电脑 ping 百度,得到 baidu 服务器的地址,如下图。然后虚拟机访问这个 IP 地址,成功打开,但直接输入 baidu.com 仍然失败。 STEP 3: 再填上 DNS,虚拟机再次访问 baidu.com 成功。

这样虚拟机的静态 IP 就设好了。

其他重要问题

防火墙

防火墙阻止来路不明不白的 IP 访问,起到安全作用。而为了保证主机——虚拟机、虚拟机——虚拟机之间的访问,我们把主机和虚拟机的防火墙都关掉,防止被错杀。当然,会的可以去设置防火墙,给虚拟机IP和端口开绿灯,这里不做探讨。

访问虚拟机的端口

主机想访问虚拟机某端口上的网站,需要设置端口转发。打开虚拟网络编辑器,选择 VMnet8 ,点开NAT设置。在端口转发中点添加。首先设置一个没被占用的主机端口,再设置虚拟机地址和网站所在虚拟机的端口,如下图。我有一个虚拟机组成的 Hadoop 集群,这里设置的网站是 namenode 节点上监测集群运行状态的面板。

在这里插入图片描述
然后在主机浏览器中输入虚拟机的网站地址。注意,网站地址后的端口号是虚拟机中的端口号,而不是设置转发的主机端口,本例中设置这两个是一样的。这里成功打开,如下图。

在这里插入图片描述
写在最后。才疏学浅,有问题欢迎指正。小白的踩坑经历整理而成。

  • 12
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值