网络配置对于小白来讲是非常麻烦的,所以针对VMware Pro下的虚拟机网络配置进行记录,另外也会记录一下克隆虚拟机的一个过程,这个对测试集群的部署是非常有用的。注意一定是VMware Pro,因为Player免费版无网络配置功能。

环境安装

VMware Pro安装

  • 安装过程类似VMware Player的安装,参考上文:VMware 17 Player下CentOS的安装与配置

  • 激活码

    这个也是大佬那里找的,个人就测试了这个,好用:MC60H-DWHD5-H80U9-6V85M-8280D
    image-20230823170838920

    以下也是网上找的,没有测试,可以留言反馈噢~

    JU090-6039P-08409-8J0QH-2YR7F
    
    4A4RR-813DK-M81A9-4U35H-06KND
    
    NZ4RR-FTK5H-H81C1-Q30QH-1V2LA
    
    4Y09U-AJK97-089Z0-A3054-83KLA
    
    4C21U-2KK9Q-M8130-4V2QH-CF810
    
    MC60H-DWHD5-H80U9-6V85M-8280D
    
    ZA30U-DXF84-4850Q-UMMXZ-W6K8F
    
    AC590-2XW97-48EFZ-TZPQE-MYHEA
    
    YF39K-DLFE5-H856Z-6NWZE-XQ2XD
    
    AC15R-FNZ16-H8DWQ-WFPNV-M28E2
    
    CZ1J8-A0D82-489LZ-ZMZQT-P3KX6
    
    YA11K-6YE8H-H89ZZ-EXM59-Y6AR0 
    

安装Centos

无论是创建虚拟机和centos的安装向导,都和VMware Player中类似,大同小异,这里不过多记录;

参考:VMware 17 Player下CentOS的安装与配置

网络配置

VMware的三种网络连接模式

当涉及到 VMware 的网络连接模式时,通常有三种常见的模式:桥接模式(Bridge Mode)、NAT 模式(Network Address Translation Mode)和主机模式(Host-Only Mode)。

  1. 桥接模式(Bridge Mode):桥接模式下,虚拟机就像连接在真实网络中的一台独立设备。它会获得来自真实网络的一个独立 IP 地址,并可以直接与真实网络上的其他设备交互。这意味着虚拟机可以像真实设备一样使用网络资源和访问其他设备。

    例如,你的计算机通过 Wi-Fi 连接到路由器,并且你在 VMware 中运行一个虚拟机。在桥接模式下,虚拟机会获得来自路由器的独立 IP 地址,并能够与局域网上其他设备进行通信。这意味着你的虚拟机可以像真实设备一样浏览互联网、与其他设备共享文件等。

    优势:虚拟机与真实网络完全集成,方便与其他设备通信和共享资源。

    缺点:虚拟机暴露在外部网络中,安全性稍低。

  2. NAT 模式(Network Address Translation Mode):在 NAT 模式下,虚拟机使用宿主机的 IP 地址,并将其映射到宿主机的网络接口上。虚拟机可以通过共享的 IP 地址访问互联网和局域网上的其他设备,但外部网络无法直接访问虚拟机。

    举个例子,你的计算机通过路由器连接到互联网,并在 VMware 中运行一个虚拟机。在 NAT 模式下,虚拟机会与宿主机共享相同的 IP 地址,并通过网络地址转换(NAT)技术与外部网络通信。虚拟机可以访问互联网和局域网上的其他设备,但外部网络只能看到宿主机的 IP 地址,无法直接访问虚拟机。

    优势:提供了一定的安全性,因为外部网络无法直接访问虚拟机。

    缺点:虚拟机之间和虚拟机与外部网络之间的通信受限。

  3. 主机模式(Host-Only Mode):在主机模式下,虚拟机和宿主机形成一个独立的网络,外部网络无法直接访问虚拟机。虚拟机之间和虚拟机与宿主机之间可以进行通信,但无法连接到外部网络。

    举个例子,你在 VMware 中同时运行两个虚拟机,并将它们配置为主机模式。这意味着这两个虚拟机可以互相通信,就像它们连接在同一个交换机上一样。但是,外部网络无法直接访问这些虚拟机,它们形成了一个相对独立的网络。

    优势:提供了隔离和安全性,外部网络无法直接访问虚拟机。

    缺点:虚拟机无法访问外部网络上的资源和服务。

网卡简介

安装好VMware之后,在我们的控制面板之中就可以看到虚拟出来的两个网卡;

如下图启用的三张网卡,后面WLAN是真实启用的网卡;

image-20230823210042767

  1. VMware Network Adapter VMnet1:
    • VMnet1 是 VMware Workstation 虚拟网络的一个默认网络适配器。
    • 它通常用于桥接模式,可以使虚拟机连接到宿主机所连接的物理网络。
    • 使用 VMnet1,虚拟机可以获得宿主机所连接网络中的 IP 地址,并与其他设备进行通信。
  2. VMware Network Adapter VMnet8:
    • VMnet8 是 VMware Workstation 虚拟网络的另一个默认网络适配器。
    • 它通常用于 NAT(网络地址转换)模式,在这种模式下,虚拟机共享宿主机的 IP 地址,但有一个独立的局域网子网。
    • VMnet8 中的虚拟机可以通过 NAT 将其网络流量路由到宿主机和其他网络设备之间。
  3. WLAN 网卡:
    • WLAN 网卡是宿主机的无线网络适配器,用于连接无线网络。

查看一下网卡的地址分配模式:

右击虚拟网卡——>查看属性——>选中Internet协议版本4 (TCP/IPv4)——>查看属性

查看之后就可以看到两个虚拟的网卡都是采取的自动分配IP地址

image-20230823210722028

虚拟机配置固定IP

看了上面的三种网络连接模式的介绍,可以很明显就能看出来,要设置固定的IP,最好的连接模式就是NAT模式

桥接模式下,指定的虚拟机静态 IP 地址需要保证在所连接的真实网络中是有效且未被占用的。如果与其他设备发生了 IP 地址冲突,可能会导致网络连接问题。这个也没有办法完全设置为固定的IP,且不同的网络环境下,IP是不一样的;

主机模式都不能访问外网,就更不用说了;

下面就开始配置了!

修改vmware的配置

  • 首先打开Vmware的网络编辑器

image-20230823182100180

  • 授予权限更改设置

image-20230823182233666

  • 选中NAT模式网络,取消使用本地的DHCP自动分配ip地址

image-20230823182339944

  • 设置子网IP,设置好之后点击NAT的设置

    一般为 192.168.0.0 到 192.168.254.254。

    ip地址第四位不要填0、255,填0可以远程连接但是为无法上网,IP地址也不要和网关ip相同。

    另外需要确保所设置的子网 IP 不与物理网络中其他设备的 IP 冲突,以避免 IP 地址冲突问题。

    这里需要补充一下,这里前两位也不一定非得192.168,也不一定非得和宿主机ip前两位一致,符合基本要求即可(VMware 17 pro、Centos 8环境下测试没问题,如果结论有误,请留言反馈!)

image-20230823220523807

  • 进入NAT的设置页面调整一下网关IP,设置好之后点击确定

image-20230823220602808

  • 点击应用或者确定,等待配置即可;

image-20230823220627124

  • 配置完成之后,先不进行下一步,简单看一下宿主机网卡中VMnet 8的IPv4属性:

    可以发现这里已经调整为我们设置的那个ip了,基本上到这里就可以不做其他的设置了,包括dns;

image-20230823211127943

修改centos的网络配置文件

  1. 在虚拟机中打开终端或命令提示符,并使用 root 用户或具有管理员权限的账户执行以下步骤。

    编辑网络配置文件:使用文本编辑器打开网络配置文件,在大多数 Linux 发行版中,该文件位于 /etc/sysconfig/network-scripts/ 目录下,命名为 ifcfg-eth0 或类似的名称。

    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    

    这一块不同的centos的版本不同,文件内的配置也会不同,以下是一些常见的配置:

    在 CentOS 8 中,网络配置文件仍然位于 /etc/sysconfig/network-scripts/ 目录下,但与 CentOS 7 相比,CentOS 8 在网络配置方面引入了 NetworkManager 的默认管理。

    1. TYPE:指定接口类型。对于以太网接口,类型为 Ethernet
    2. NAME:指定接口的名字。例如,NAME=eth0 表示该配置文件适用于名为 eth0 的网络接口。
    3. BOOTPROTO:指定接口的启动协议,决定如何获取 IP 地址。常见选项包括:
      • none:手动设置静态 IP 地址。
      • dhcp:通过 DHCP 自动获取 IP 地址。
      • bootp:通过 BOOTP 自动获取 IP 地址。
      • static:使用静态 IP 地址。
    4. DEVICE:指定设备的名字,与 NAME 配置相同。
    5. ONBOOT:指定接口是否在系统启动时自动启用。
      • yes:在系统启动时自动启用该接口。
      • no:在系统启动时不自动启用该接口。
    6. IPADDR:用于配置静态 IP 地址。格式为 IP 地址,例如 IPADDR=192.168.1.100
    7. PREFIX:指定子网前缀长度。例如,对于子网掩码为 255.255.255.0,对应的前缀长度为 24。可以使用 PREFIX 或 NETMASK。
    8. GATEWAY:指定默认网关的 IP 地址。
    9. DNS1 / DNS2:指定首选和备用 DNS 服务器的 IP 地址。
    10. IPV6INIT:是否启用 IPv6 支持。
      • yes:启用 IPv6 支持。
      • no:禁用 IPv6。
    11. IPV6_AUTOCONF:是否通过自动配置获取 IPv6 地址。
      • yes:通过自动配置获取 IPv6 地址。
      • no:禁用自动配置,需要手动配置 IPv6 地址。
    12. IPV6_PEERDNS:是否从 IPv6 邻居获取 DNS 服务器信息。
    13. IPV6_PEERROUTES:是否从 IPv6 邻居获取路由信息。
    14. DEFROUTE:指定该接口是否为默认路由接口。
      • yes:是默认路由接口。
      • no:不是默认路由接口。

    这里查看我们虚拟机的配置:

    image-20230823212635640

  2. 在文件中查找并编辑以下行:

    BOOTPROTO="dhcp"
    

    改为:

    BOOTPROTO="static"
    

    在文件末尾添加以下行,设置 IPv4 地址、子网掩码、网关以及DNS服务器地址:

    IPADDR=<ipv4_address>
    NETMASK=<subnet_mask>
    GATEWAY=<gateway_address>
    DNS1=<dns1_address>
    

    <ipv4_address>替换为你想要设置的 IPv4 地址,<subnet_mask>替换为子网掩码,<gateway_address>替换为网关地址,<dns1_address>替换为网络首选 DNS 服务器 IP 地址。 例如:

    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.2
    DNS1=192.168.1.2
    

    这里的DNS1,也就是首选的DNS服务器是非常重要的:

    在 NAT(Network Address Translation)模式下,虚拟机的网络通信是通过主机的网络连接进行转发的。当虚拟机需要进行域名解析时,DNS 的工作方式如下:

    1. 虚拟机向 NAT 网络中的默认网关发送 DNS 查询请求。
    2. 默认网关(通常是主机或路由器)接收到 DNS 查询请求后,会将其转发给配置的 DNS 服务器。
    3. DNS 服务器收到 DNS 查询请求后,开始解析域名并返回对应的 IP 地址。
    4. 默认网关接收到 DNS 服务器返回的 IP 地址后,将其发送回对应的虚拟机。
    5. 虚拟机通过获得的 IP 地址与目标主机建立连接,实现网络通信。

    在这种情况下,NAT 网络模式下的虚拟机将使用主机或路由器配置的 DNS 服务器来进行域名解析。因此,虚拟机的 DNS 设置通常指向默认网关的地址,即主机或路由器的 IP 地址

    需要注意的是,在 NAT 模式下,虚拟机无法直接访问公共的 DNS 服务器。它依赖于默认网关将 DNS 查询请求转发到公共 DNS 服务器,并返回解析结果。因此,在 NAT 网络环境中,确保默认网关能够正常转发 DNS 查询请求至可用的 DNS 服务器是非常重要的。

    此外,有些虚拟化软件允许设置虚拟机使用主机的 DNS 设置。这种情况下,虚拟机将直接使用主机配置的 DNS 服务器进行域名解析,而不需要通过默认网关进行转发。

    这里我们编辑后的内容如下:

    image-20230823214451053

  3. 保存文件并关闭编辑器。

  4. 重启网络服务:执行以下命令让更改生效。

    systemctl restart NetworkManager
    

    CentOS 8 和之前的版本在重启网络服务的方式上有所不同。CentOS 8 引入了新的网络管理工具 NetworkManager,并逐渐替代了之前使用的网络服务管理工具(如 ifup 和 ifdown)。

    对于 CentOS 8,重启网络服务的方式如下:

    1. 使用以下命令重启 NetworkManager 服务:

      systemctl restart NetworkManager
      
    2. 如果需要重启网络接口(如 eth0),可以使用以下命令来禁用和启用该接口:

      nmcli device disconnect eth0
      nmcli device connect eth0
      

    而对于之前的 CentOS 版本(如 CentOS 7 或更早版本),可以使用以下命令重启网络服务:

    1. 使用以下命令重启 network 服务:

      sudo service network restart
      
    2. 或者使用以下命令重启特定的网络接口(如 eth0):

      sudo ifdown eth0
      sudo ifup eth0
      

    需要注意的是,CentOS 8 推荐使用 NetworkManager 来管理网络服务,但仍然支持传统的网络服务管理方式。而对于之前的版本,传统的网络服务管理方式仍然是主要的网络配置方法。

  5. 验证网络连接:

    使用 ping 命令验证你的虚拟机是否可以访问互联网:

    ping www.jiumoz.com
    

    image-20230823215136392

    验证虚拟机访问宿主机:

    先cmd看下宿主机的IP

    image-20230823215418119

    虚拟机中ping一下宿主机的IP:

    ping 192.168.101.4
    

    image-20230823215507603

    验证宿主机访问虚拟机:

    直接宿主机的命令窗口ping一下虚拟机IP

    ping 192.168.120.100
    

    image-20230823215609164

基本上到这里就完成了网络的配置了,可以很愉快的使用了;

总结一下,操作起来是不麻烦的,但是其中涉及的知识点还是很多的!

克隆虚拟机

虚拟机克隆在许多情况下都具有重要的意义:

  1. 提高效率:通过克隆虚拟机,可以快速创建多个相似配置的虚拟机,而无需从头开始进行安装和配置。这样可以大大节省时间和工作量,提高工作效率。
  2. 快速部署:虚拟机克隆能够快速部署新的虚拟机实例,以满足各种需求,如测试、开发、应急准备等。可以根据需要创建多个克隆的虚拟机,并同时运行它们,而无需从头开始设置每个虚拟机。
  3. 灵活性和可移植性:克隆的虚拟机具有与原始虚拟机相同的配置和软件环境,可以轻松地在不同的物理服务器或虚拟化平台之间移动。这在数据中心迁移、负载均衡和灾难恢复等方面是非常有用的。
  4. 测试和开发:虚拟机克隆是进行软件测试和开发的常见方式之一。可以克隆一个已经配置好的虚拟机,并在其上进行实验、测试新的软件版本或进行应用程序开发,而无需影响原始虚拟机。
  5. 简化维护和管理:克隆虚拟机后,当需要对虚拟机进行更新、安装补丁或执行其他维护任务时,可以首先在克隆的虚拟机上进行测试和验证,以减少对生产环境的潜在影响。
  • 右击创建好的虚拟机,点击管理选项,点击克隆

    image-20230823222510814

  • 点击下一页

image-20230823222604028

  • 点击下一页

image-20230823222620364

  • 创建完整的克隆

image-20230823222636704

  • 设置虚拟机名称和安装位置

image-20230823222742195

  • 等待完成后关闭

image-20230823222835200

  • VMware中已经出现了克隆的机器

image-20230823222921186

这里可以点击虚拟机的网络适配器查看一下mac地址是否也继承了,如果继承了需要生成一下,比较简单;

  • 同样的用户名和密码登录

image-20230823223139761

  • 修改主机名
vim /etc/hostname

// 也可以用下面的命令

hostnamectl 
hostnamectl set-hostname <主机名>  //实际命令中没有< >
hostnamectl 

修改之后得重启一下,修改结果:

image-20230823223804526

  • 修改IP地址

    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    

    这里修改一下ip就行:

    image-20230823225630308

  • 修改uuid

    一般克隆完成后,虚拟机的网卡MAC地址会自动改变,但是克隆完虚机之后UUID默认是继承原有虚机的UUID;

    UUID 在虚拟机的配置中扮演着重要的角色,它对于识别和管理虚拟机非常关键;

    UUID 是一个由系统生成的全局唯一标识符,用于确保在系统中没有重复的接口标识。它在网络配置文件中的作用如下:

    • 唯一性:每个网络接口都会分配一个不同的 UUID,以确保没有两个接口具有相同的标识符。

    • 持久性:通过使用 UUID,即使接口的名称或其他属性发生更改,系统仍然可以准确地识别和匹配正确的配置文件。

    • 稳定性:如果您将网络接口从一个系统复制到另一个系统或更改系统硬件,UUID 将帮助系统正确识别并应用适当的网络配置。

    这里有两种解决办法,一种就是直接手动修改uuid,如下,直接将32改为21:

    image-20230824011122984

    或者使用uuidgen命令生成一个uuid,然后替换一下

    image-20230824011357989

  • 修改完成之后重启网卡(网络接口)

    重启之前需要重新加载网络配置文件以确保最新的配置已生效。

    同时要注意nmcli 命令主要适用于使用 NetworkManager 管理网络连接的系统。

    nmcli con reload
    
    nmcli c reload
    

    nmcli con reloadnmcli c reload 两个命令的作用相同,都是重新加载

    关闭网络连接:

    nmcli connection down <connection-name>
    

    是你要关闭的连接名称,也就是这里的ens160

    启动网络连接:

    nmcli connection up <connection-name>
    同样,<connection-name> 是要启动的连接名称。
    

    验证连接是否已重新启动:

    nmcli connection show
    

    如下,就完成了网卡的配置

    image-20230824012436259

  • 验证网络环境

    宿主机ping克隆机

    image-20230824012700606

    克隆机ping互联网

    image-20230824013316594

    克隆机ping宿主机

    image-20230824013352672

    本体机ping克隆机

    image-20230824013002719

    克隆机ping本体机

    image-20230824013457221

至此,就完成了克隆虚拟机并配置网络;

中途遇到了克隆机无网络的问题,但是后来没有复现(就很奇怪),所以这里也就没有记录;

如果你克隆的时候遇到了无网络的问题,欢迎留言,一起探讨~