睿诚科技协会

Ubuntu虚拟机网络怎么配置?

  1. 在虚拟机软件(如 VMware, VirtualBox)中进行全局网络配置。
  2. 在 Ubuntu 操作系统内部进行网络接口配置。

我会分别针对最流行的两款虚拟机软件 VMware Workstation/Fusion 和 VirtualBox 进行详细说明,并提供最推荐(最稳定)和最灵活(最常用)的两种网络模式。

Ubuntu虚拟机网络怎么配置?-图1
(图片来源网络,侵删)

第一步:在虚拟机软件中设置网络模式

这是最关键的一步,它决定了你的虚拟机如何与外部世界(包括你的主机和互联网)通信。

常见的网络模式:

模式名称 中文含义 工作原理 优点 缺点 适用场景
NAT (Network Address Translation) 网络地址转换 虚拟机通过一个“虚拟路由器”共享你主机的网络,从外部看,所有虚拟机流量都来自主机。 设置最简单,无需额外配置即可上网,虚拟机无法被局域网内其他设备直接访问。 虚拟机与局域网内其他设备是隔离的。 临时上网、开发测试、学习,不希望虚拟机暴露在网络中。
Bridged (桥接) 桥接 虚拟机的虚拟网卡直接连接到你主机的物理网卡,相当于在局域网中增加了一台独立的物理电脑。 虚拟机拥有独立的 IP 地址,局域网内所有设备(包括主机)都能像访问普通电脑一样访问它。 需要手动配置 IP,或依赖路由器分配,如果路由器 DHCP 服务不足,可能获取不到 IP。 需要将虚拟机作为局域网中的一台独立服务器(如 Web 服务器、文件服务器),或使用局域网内的网络服务(如打印机)。
Host-Only (仅主机) 仅主机 创建一个与主机相连但与外部网络隔离的私有网络。 安全性高,虚拟机之间、虚拟机与主机之间可以通信,但无法访问互联网。 无法上网,仅用于内部通信。 创建一个完全隔离的测试环境,用于安全研究或模拟内部网络。
NAT 模式 网络地址转换 VMware 的增强版 NAT,功能类似,但性能更好,配置更灵活。 同 NAT,但支持端口映射,可以将主机端口映射到虚拟机,实现从外网访问虚拟机服务。 配置比 NAT 稍复杂。 需要从外网访问虚拟机内的服务(如远程桌面、Web 服务),同时保持简单配置。

第二步:在 Ubuntu 内部配置网络

根据你在第一步中选择的网络模式,在 Ubuntu 内部的配置方法有所不同。

使用 NAT 或 NAT 模式(推荐,最简单)

在这种模式下,虚拟机通常可以通过 DHCP 自动获取 IP 地址,绝大多数情况下无需任何配置

  1. 启动 Ubuntu 虚拟机。

    Ubuntu虚拟机网络怎么配置?-图2
    (图片来源网络,侵删)
  2. 打开一个终端。

  3. 查看网络接口状态和获取到的 IP 地址:

    ip addr show

    或者使用 ifconfig(如果未安装,可以用 sudo apt install net-tools 安装):

    ifconfig

    你应该能看到一个名为 ens33(或 ens34, eth0 等,具体名称可能不同)的网卡,并且它有一个 inet 地址(168.49.128)和一个 BROADCASTMULTICAST 等标志。

    Ubuntu虚拟机网络怎么配置?-图3
    (图片来源网络,侵删)
  4. 测试网络连通性

    ping -c 4 8.8.8.8  # 测试能否访问互联网
    ping -c 4 your_host_ip # 测试能否访问主机 (ping 192.168.1.10)

ping 通,说明网络已经配置成功,可以跳过下面的手动配置部分。

如果需要手动设置静态 IP(不推荐,除非有特殊需求):

NAT 模式下手动设置静态 IP 比较麻烦,因为 IP 是由虚拟机软件的 DHCP 服务器分配的,通常我们只在 Bridged 模式 下设置静态 IP。


使用 Bridged 模式(灵活,最常用)

Bridged 模式下,你可以选择 自动获取 IP (DHCP)手动设置静态 IP

方法 A:自动获取 IP (推荐)

如果你的局域网有 DHCP 服务器(比如家用路由器),这和你的物理电脑连接 Wi-Fi 或网线一样,是自动的。

  1. 确保虚拟机软件中网络模式设置为 Bridged
  2. 在 Ubuntu 中,编辑 Netplan 的网络配置文件(Ubuntu 18.04 及更高版本使用 Netplan)。
    • 首先找到你的配置文件,通常在 /etc/netplan/ 目录下,01-network-manager-all.yaml50-cloud-init.yaml
      ls /etc/netplan/
    • sudo 和你喜欢的编辑器(如 nano)打开它:
      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:
      version: 2
      ethernets:
          ens33: # 这是你网卡的名称,用 ip addr show 查到的
              dhcp4: true # 使用 DHCP 获取 IPv4 地址
              dhcp6: true # 使用 DHCP 获取 IPv6 地址
              optional: true
    • 确保你的网卡名称(如 ens33)下的 dhcp4: true 已经设置好。
    • 保存文件并退出 (在 nano 中是 Ctrl+X, 然后按 Y, 再按 Enter)。
    • 应用新的网络配置:
      sudo netplan apply
    • 再次使用 ip addr show 查看是否获取到了 IP 地址。

方法 B:手动设置静态 IP (高级)

如果你想让虚拟机拥有一个固定的 IP 地址,方便远程访问或作为服务器,可以手动配置。

  1. 确认你的网络环境

    • 主机的 IP 地址是什么?(168.1.10
    • 局域网的子网掩码是什么?(通常是 255.255.0
    • 局域网的网关(路由器)地址是什么?(168.1.1
    • 局域网中可用的一个静态 IP 地址是什么?(168.1.100,确保这个 IP 没有被其他设备使用)
  2. 编辑 Netplan 配置文件

    sudo nano /etc/netplan/50-cloud-init.yaml
  3. 修改文件内容,将 dhcp4: true 替换为静态 IP 配置:

    network:
        version: 2
        # 使用 DHCP 设置网关和 DNS,避免手动配置错误
        ethernets:
            ens33: # 替换成你的网卡名
                dhcp4: no
                addresses: [192.168.1.100/24] # 你想要的静态IP和子网掩码 (24 对应 255.255.255.0)
                gateway4: 192.168.1.1       # 你的局域网网关地址
                nameservers:
                    addresses: [8.8.8.8, 1.1.1.1] # DNS 服务器,也可以用你的网关地址
  4. 保存并应用配置

    • nano 中按 Ctrl+X -> Y -> Enter 保存。
    • 运行命令使配置生效:
      sudo netplan apply
  5. 验证配置

    • 使用 ip addr show 查看是否成功设置了 168.1.100
    • 使用 ping 192.168.1.1 测试网关是否通。
    • 使用 ping 8.8.8.8 测试外网是否通。

故障排查

如果网络不通,可以按以下步骤检查:

  1. 检查虚拟机软件设置

    • 确认网络模式是否正确(NAT / Bridged)。
    • 对于 VMware,可以尝试“修复”网络连接:编辑 -> 虚拟网络编辑器 -> 选择对应的 VMnet -> 还原默认设置
  2. 检查 Ubuntu 内部网络服务

    • 确保网络管理器(NetworkManager)正在运行:
      sudo systemctl status NetworkManager
    • 如果未运行,可以启动并设为开机自启:
      sudo systemctl start NetworkManager
      sudo systemctl enable NetworkManager
  3. 重启网络服务

    • 对于 Netplan:
      sudo netplan --debug apply  # 加上 --debug 可以看到详细错误信息
    • 对于较旧的系统(如果使用 ifupdown):
      sudo ifdown ens33 && sudo ifup ens33 # 替换 ens33 为你的网卡名
  4. 检查防火墙

    • Ubuntu 自带的 ufw 防火墙可能会阻止连接。
    • 暂时关闭防火墙进行测试(生产环境请谨慎操作):
      sudo ufw disable
    • 如果关闭后网络通了,说明是防火墙规则问题,你需要使用 sudo ufw allow <端口/协议> 来开放特定端口。
你的需求 推荐的网络模式 Ubuntu 内部配置
只是临时上网、学习、开发 NAT / NAT 模式 无需配置,自动获取 IP。
需要让局域网内其他设备访问虚拟机 Bridged 模式 推荐使用 DHCP 自动获取 IP。
需要虚拟机作为服务器,提供固定访问 Bridged 模式 手动配置静态 IP 地址。
需要完全隔离的测试环境 Host-Only 模式 配置私有网络 IP,手动或 DHCP。

对于绝大多数用户来说,NAT 模式 是最省心省力的选择,如果你需要从局域网其他电脑访问虚拟机,或者想让虚拟机像一台真正的电脑一样工作,Bridged 模式 是不二之选。

分享:
扫描分享到社交APP
上一篇
下一篇