跳转至

Ubuntu 24.04 多虚拟机组网

所用软件版本

  • VMware® Workstation 17 Pro 17.6.1 build-24319023
  • Ubuntu Server 24.04.1 AMD64

步骤

1. 修改虚拟网络编辑器

打开 编辑-虚拟网络编辑器,添加一个新的虚拟网络:

vnet_manager_create_vnet

选择 NAT 模式 或者 仅主机模式 均可。我所使用的虚拟机无需联网,因此在这里选择的是 仅主机模式

如果你需要 DHCP 分配虚拟机 IP,则在你刚刚添加的虚拟网络中,将 使用本地 DHCP 服务将 IP 地址分配给虚拟机 勾选。如果你的虚拟机使用静态 IP,那么勾不勾选都可以。

检查你的 Windows 网络适配器:

vnet_manager_windows

属性中显示的 192.168.152.1 即是此虚拟网络的网关地址。

2. 为每个虚拟机启用该网络

右键虚拟机,点击 设置-网络适配器,将网络连接设置为刚刚你创建的虚拟网络:

vm_networking_setting

然后为每个你需要组网的虚拟机都如此设置。

3. 虚拟机配置网络

首先确认你的网卡名:

ip addr

这里会列出你的所有网卡,例如我这里显示的是:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

那么我的网卡名就是 ens33。可能有的人的网卡名是 eth0ens36 等,在后面编辑时需要全部对应注意。

现在编辑 /etc/netplan/50-cloud-init.yaml

sudo nano /etc/netplan/50-cloud-init.yaml

此时你的配置文件应该是这样的(全新系统离线安装):

# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets: {}
    version: 2

选择以下步骤中的其中一个,这取决于你启用了 DHCP 还是静态地址:

3.1 DHCP

修改 ethernets 项:

network:
    ethernets:
        ens33:
            dhcp4: true
    version: 2

重启 netplan 并重启网卡:

sudo netplan apply
sudo ip link set ens33 down
sudo ip link set ens33 up

你现在可以看到你虚拟机的 IP 地址:

ip addr
# 或者 ip route

vm_ip_addr_dhcp

这里的 192.168.152.128 即是这台虚拟机分配的 IP 地址。

3.2 静态 IP

修改 ethernets 项:

network:
    ethernets:
        ens33:
            dhcp4: no
            addresses:
              - 192.168.152.200/24
            optional: true
            routes:
              - to: default
                via: 192.168.152.1
            nameservers:
              addresses: [192.168.152.1]
    version: 2

192.168.152.200/24 改成你想静态分配的 IP 地址,将 192.168.152.1 改为你的虚拟网络的网关。

重启 netplan 并重启网卡:

sudo netplan apply
sudo ip link set ens33 down
sudo ip link set ens33 up

你现在可以看到你虚拟机的 IP 地址:

ip addr
# 或者 ip route

vm_ip_addr_static_ip

这里的 192.168.152.200 是你静态分配的 IP 地址。

4. 测试连接

4.1 虚拟机与宿主机通信

在宿主机上 Ping 你的虚拟机:

ping 192.168.152.200

windows_ping_vm

4.2 虚拟机与虚拟机通信

在虚拟机上 Ping 另外一台虚拟机:

ping 192.168.152.201

vm_ping_vm

5. 使用主机名互联

通过为每个虚拟机分配其唯一的主机名,并将其记录到 hosts 文件中,我们可以不用每次都记录他们的 IP 地址。

5.1 修改主机名

首先查看主机名:

hostnamectl
# 或 hostname

vm_hostnamectl

可以发现我这里的主机名已经是 master 了,这是因为我在安装系统时指定过主机名。如果你也是这么做的,那么你可以直接跳到 5.2 修改 hosts 文件

使用如下命令修改主机名,并重启:

sudo hostnamectl set-hostname master --static  # master 改为你要改的主机名
sudo reboot

5.2 修改 hosts 文件

sudo nano /etc/hosts

根据你其他虚拟机的主机名,将其编辑后追加到 hosts 文件:

192.168.152.200 master
192.168.152.201 worker1
192.168.152.201 worker2

5.3 测试

4. 测试连接

将 IP 地址改为主机名,能互相 Ping 通即可。

vm_ping_vm_hostname

评论