在NAT模式下解决虚拟机的上网问题

检查自己的网络配置

  1. 检查自己Windows虚拟网卡的配置
  2. 检查vmware workstation中的网络首选项配置
  3. 检查OS中的网卡配置文件

注意:以上三者的IP地址不能冲突,必须在同一个子网内,并且宿主机虚拟网卡的子网掩码网关和虚拟机的网关和子网掩码必须一致!

解决虚拟机无法上网的问题

首先看一看虚拟机的IP地址能不能ping通主机的虚拟网卡
检查主机能不能ping通网关
最后直接ping百度的IP地址,如果能ping通百度的IP地址,但是在浏览器中却打不开网页,很可能出现了DNS的解析问题
在/etc/resolv.cfg中配置对应的DNS域名解析地址即可

画一个宿主机和虚拟机在NAT模式下的网络通信的图

统信UOS 虚拟化_运维


计算机网络NAT知识充电

在Vmware中虚拟机网络配置有三种:

  • Host-Only(主机模式)
    通过桥接模式网络连接,虚拟机中的虚拟网络适配器可连接到主机系统中的物理网络适配器,在桥接模式下,虚拟机ip 地址需要与主机在同一个网段,如果需要联网,则网关与DNS 需要与主机网卡一致。 但是桥接模式有个问题就是当你转变办公的地方时(外部网络改变了),虚拟机的IP 地
    址和网关也要手动改变,很麻烦。
  • Bridge(桥接模式)
    使用 NAT 模式网络时,虚拟机在外部网络中不必具有自己的 IP 地址。主机系统上会建立单独的专用网络。在默认配置中,虚拟机会在此专用网络中通过 DHCP 服务器获取地址。虚拟机和主机系统共享一个网络标识,此标识在外部网络中不可见。在NAT 模式中,主机网卡直接与虚拟 NAT 设备 相连,然后虚拟 NAT 设备与虚拟 DHCP 服务器一起连接在虚拟交换机VMnet8上。
  • NAT(网络地址转换模式)
    Host-Only 模式其实就是 NAT 模式去除了虚拟 NAT 设备,然后使用 VMware Network Adapter
    VMnet1虚拟网卡连接 VMnet1 虚拟交换机来与虚拟机通 信的,Host-Only 模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系 统,只与主机相互通讯。

一些基本概念

  • 公有IP地址:也叫全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻 址的地址。
  • 私有IP地址:也叫内部地址,属于非注册地址,专门为组织机构内部使用。因特网分配编号委员会(IANA)保留了3块IP地址做为私有IP地址:
10.0.0.0 ——— 10.255.255.255

172.16.0.0——— 172.16.255.255

192.168.0.0———192.168.255.255

NAT:它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术

用大白话的语句来讲,NAT就是在局域网中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共 IP地址紧缺的问题。通过这种方法,可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。如下图所示。这里提到的内部地址,是指在内部网络中分配给节点的私有IP地址,这个地址只能在内部网络中使用,不能被路由转发。

静态IP地址配置(Linux)

vi /etc/sysconfig/network-scripts/ifcfg-ensxxx

TYPE = "Ethernet"
PROXY_METHOD = "none"
BROWSER_ONLY = "no"
# 把默认得 dhcp 修改为 none 或者 static, 表示设置静态 IP 地址
BOOTPROTO = "none"
DEFROUTE = "yes"
IPV4_FAILURE_FATAL = "no"
NAME = "ens32"
UUID = "eca2f15c-eacc-48cf-9eea-9251567a4b18"
DEVICE = "ens32"
# 设置为 yes
ONBOOT = "yes"
# 静态 ip 地址得配置,参考物理主机得 IP 配置
IPADDR = 192 .168.1.188
GATEWAY = 192 .168.1.254
NETMASK = 255 .255.255.0
DNS1 = 8 .8.8.8
DNS2 = 114 .114.114.114

虚拟机能联通外网,确实不是通过VMware Network Adapter VMnet8虚拟网卡,那么为什么要有这块虚拟网卡呢?

统信UOS 虚拟化_运维_02

VMware Network Adapter VMnet8的作用是主机与虚拟机之间的通信

  • 利用虚拟的NAT设备以及虚拟DHCP服务器来使虚拟机连接外网
  • VMware Network Adapter VMnet8虚拟网卡是用来与虚拟机通信的