下面我将为你详细介绍几种最主流的虚拟机网络配置方法,以 VMware Workstation/Player 为例,因为它的网络模式最经典、最全面。VirtualBox 的逻辑和概念基本一致,只是界面名称略有不同。

第一步:了解虚拟机网络的三种核心模式
在开始配置之前,你必须理解虚拟机网络的三种基本模式,这决定了你的虚拟机如何与外部世界通信。
桥接模式
- 工作原理:你的虚拟机就像在你局域网中一台独立的物理计算机,虚拟机的虚拟网卡直接连接到你物理主机的网卡,并从你的路由器(DHCP 服务器)获取一个独立的 IP 地址。
- IP 地址:与你的主机在同一个网段,主机是
168.1.10,虚拟机可能是168.1.105。 - 优点:
- 虚拟机可以完全像局域网内的任何一台电脑一样,被其他设备访问(如通过
ping访问、搭建 Web 服务器供局域网内其他人访问)。 - 可以直接访问外部网络。
- 虚拟机可以完全像局域网内的任何一台电脑一样,被其他设备访问(如通过
- 缺点:
- 占用一个局域网 IP 地址。
- 如果你的网络环境比较复杂(公司网络有严格的访问控制),可能会无法连接。
- 适用场景:
- 需要让局域网内其他设备访问虚拟机(如搭建文件服务器、Web 服务器、数据库服务器)。
- 模拟一个完全独立的网络环境。
NAT 模式
- 工作原理:这是虚拟机最常用的默认模式,虚拟机通过虚拟机软件自带的 NAT 服务(网络地址转换)来访问外部网络,从外部网络看,所有虚拟机的流量都来自你的主机。
- IP 地址:虚拟机从虚拟机软件的 DHCP 服务器获取一个私有 IP 地址(通常是
168.x.x或0.0.x网段),与你的主机不在同一个网段。 - 优点:
- 配置最简单,开箱即用,无需任何额外设置就能上网。
- 虚拟机可以轻松访问外部网络。
- 不占用你局域网的 IP 地址。
- 缺点:
- 默认情况下,外部网络(包括你的主机)无法直接访问虚拟机,这是一个单向通道。
- 适用场景:
- 绝大多数日常使用场景,如学习、编程、上网冲浪。
- 只需要虚拟机能访问外网,不需要被外网访问。
仅主机模式
- 工作原理:创建一个完全隔离的私有网络,只有你的主机和虚拟机在这个网络里,虚拟机软件会创建一个虚拟的 DHCP 服务器,为主机和虚拟机分配 IP 地址。
- IP 地址:私有网段,
168.199.x。 - 优点:
- 安全性最高,虚拟机与外部网络完全隔离。
- 主机和虚拟机可以互相通信。
- 缺点:
虚拟机无法访问外部网络。
- 适用场景:
- 搭建安全的、隔离的测试环境。
- 进行网络安全实验。
- 不需要虚拟机上网的场景。
第二步:在 VMware 中修改网络模式
- 关闭虚拟机:在更改网络设置前,请务必先关闭 Ubuntu 虚拟机。
- 打开设置:
- 在 VMware 主界面中,选中你的 Ubuntu 虚拟机。
- 点击菜单栏的“虚拟机” -> “设置”。
- 或者右键点击虚拟机,选择“设置”。
- 找到网络适配器:
- 在弹出的设置窗口中,选择“硬件”选项卡。
- 在列表中找到“网络适配器”,并确保它已勾选“已连接”。
- 选择网络连接模式:
- 在“网络连接”的下拉菜单中,你可以看到上述三种模式(桥接模式、NAT 模式、仅主机模式)。
- 根据你的需求选择合适的模式。
- 应用并启动:
- 点击“确定”保存设置。
- 启动虚拟机。
第三步:在 Ubuntu 内部进行网络配置
修改了 VMware 的网络模式后,Ubuntu 会自动获取 IP 地址,但有时你可能需要手动配置或查看 IP 地址。
查看当前 IP 地址
打开 Ubuntu 的终端,输入以下命令:

# 显示所有网络接口的详细信息,包括 IP 地址 ip a # 或者使用经典的 ifconfig 命令(如果未安装,需要先 sudo apt install net-tools) ifconfig
你会看到类似 eth0 或 ens33 这样的网络接口,在对应的 inet 后面就是你的 IP 地址。
- NAT 模式下:你会看到一个私有 IP,如
168.153.128。 - 桥接模式下:你应该看到一个与你主机在同一个网段的 IP,如
168.1.105。 - 仅主机模式下:你会看到一个私有 IP,如
168.199.128。
手动设置静态 IP 地址
在某些场景下(如搭建服务器),你需要一个固定的 IP 地址,而不是每次都由 DHCP 分配。
注意:强烈建议在设置静态 IP 前,先确保你的虚拟机可以正常上网(通过 DHCP 获取 IP)。
以下是在 Ubuntu 20.04/22.04 中使用 netplan 设置静态 IP 的步骤:

-
找到网络配置文件:
netplan的配置文件通常位于/etc/netplan/目录下。- 使用
ls /etc/netplan/查看文件名,通常是类似01-network-manager-all.yaml或50-cloud-init.yaml的文件。
-
编辑配置文件:
- 使用
sudo nano或sudo vim编辑该文件。sudo nano /etc/netplan/50-cloud-init.yaml
- 使用
-
修改配置内容:
- 可能如下(以
ens33接口为例):# 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: dhcp4: true # 使用 DHCP,我们将其改为 false # dhcp6: no - 将其修改为静态 IP 配置。请务必将下面的 IP、网关、DNS 等信息替换成你自己的环境信息!
- NAT 模式下:网关通常是虚拟机 NAT 服务的网关,在 VMware 的“编辑”->“虚拟网络编辑器”中可以查到,默认是
168.x.2。 - 桥接模式下:网关和 DNS 应该与你主机的网络设置一致(在 Windows 上使用
ipconfig /all查看)。
network: version: 2 ethernets: ens33: # 你的网络接口名称,用 ip a 命令查看 dhcp4: false # 禁用 DHCP addresses: - 192.168.153.150/24 # 你想要的静态IP和子网掩码(/24 表示 255.255.255.0) gateway4: 192.168.153.2 # 网关地址 nameservers: addresses: [8.8.8.8, 1.1.1.1] # DNS 服务器地址 - 可能如下(以
-
应用配置:
- 保存并关闭文件。
- 在终端运行以下命令使配置生效:
sudo netplan apply
- 再次使用
ip a命令,你应该能看到ens33接口已经成功设置了你指定的静态 IP。
常见问题排查
-
虚拟机无法上网?
- 检查 VMware 模式:确保你选择了正确的模式(NAT 或桥接)。
- 检查“已连接”选项:在 VMware 网络设置中,确保“已连接”被勾选。
- 重启网络服务:在 Ubuntu 中运行
sudo systemctl restart networking或sudo netplan apply。 - 检查 Windows 防火墙/杀毒软件:有时它们会阻止虚拟机的网络流量。
- 重置网络适配器:在 Windows 的“设备管理器”中,找到 VMware 的虚拟网卡,尝试卸载并重新安装。
-
桥接模式下获取不到 IP?
- 这通常是因为你的路由器 DHCP 服务问题,或者网络策略限制。
- 解决方案:改用 NAT 模式,这是最简单可靠的上网方式。
-
如何从主机访问虚拟机?
- NAT 模式:默认不行,需要做“端口转发”(Port Forwarding),在 VMware 的“虚拟网络编辑器”中,选择 NAT 设置,然后添加端口转发规则,将主机端口映射到虚拟机的端口。
- 桥接模式:可以直接用虚拟机的 IP 地址访问。
- 仅主机模式:可以用虚拟机的私有 IP 地址访问。
| 需求场景 | 推荐网络模式 | 备注 |
|---|---|---|
| 日常学习、上网、编程 | NAT 模式 | 首选,最简单,无需配置。 |
| 搭建局域网服务器(网站、数据库等) | 桥接模式 | 虚拟机有独立 IP,局域网内其他设备可直接访问。 |
| 安全测试、网络隔离 | 仅主机模式 | 与外界完全隔离,只有主机和虚拟机能互访。 |
| 需要固定 IP 地址 | NAT 或桥接模式 + 静态 IP 配置 | 在 Ubuntu 内部手动配置 netplan。 |
希望这份详细的指南能帮助你成功配置 Ubuntu 虚拟机的网络!
