- 在虚拟机软件(如 VMware, VirtualBox)中进行全局网络配置。
- 在 Ubuntu 操作系统内部进行网络接口配置。
我会分别针对最流行的两款虚拟机软件 VMware Workstation/Fusion 和 VirtualBox 进行详细说明,并提供最推荐(最稳定)和最灵活(最常用)的两种网络模式。

第一步:在虚拟机软件中设置网络模式
这是最关键的一步,它决定了你的虚拟机如何与外部世界(包括你的主机和互联网)通信。
常见的网络模式:
| 模式名称 | 中文含义 | 工作原理 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|---|
| NAT (Network Address Translation) | 网络地址转换 | 虚拟机通过一个“虚拟路由器”共享你主机的网络,从外部看,所有虚拟机流量都来自主机。 | 设置最简单,无需额外配置即可上网,虚拟机无法被局域网内其他设备直接访问。 | 虚拟机与局域网内其他设备是隔离的。 | 临时上网、开发测试、学习,不希望虚拟机暴露在网络中。 |
| Bridged (桥接) | 桥接 | 虚拟机的虚拟网卡直接连接到你主机的物理网卡,相当于在局域网中增加了一台独立的物理电脑。 | 虚拟机拥有独立的 IP 地址,局域网内所有设备(包括主机)都能像访问普通电脑一样访问它。 | 需要手动配置 IP,或依赖路由器分配,如果路由器 DHCP 服务不足,可能获取不到 IP。 | 需要将虚拟机作为局域网中的一台独立服务器(如 Web 服务器、文件服务器),或使用局域网内的网络服务(如打印机)。 |
| Host-Only (仅主机) | 仅主机 | 创建一个与主机相连但与外部网络隔离的私有网络。 | 安全性高,虚拟机之间、虚拟机与主机之间可以通信,但无法访问互联网。 | 无法上网,仅用于内部通信。 | 创建一个完全隔离的测试环境,用于安全研究或模拟内部网络。 |
| NAT 模式 | 网络地址转换 | VMware 的增强版 NAT,功能类似,但性能更好,配置更灵活。 | 同 NAT,但支持端口映射,可以将主机端口映射到虚拟机,实现从外网访问虚拟机服务。 | 配置比 NAT 稍复杂。 | 需要从外网访问虚拟机内的服务(如远程桌面、Web 服务),同时保持简单配置。 |
第二步:在 Ubuntu 内部配置网络
根据你在第一步中选择的网络模式,在 Ubuntu 内部的配置方法有所不同。
使用 NAT 或 NAT 模式(推荐,最简单)
在这种模式下,虚拟机通常可以通过 DHCP 自动获取 IP 地址,绝大多数情况下无需任何配置。
-
启动 Ubuntu 虚拟机。
(图片来源网络,侵删) -
打开一个终端。
-
查看网络接口状态和获取到的 IP 地址:
ip addr show
或者使用
ifconfig(如果未安装,可以用sudo apt install net-tools安装):ifconfig
你应该能看到一个名为
ens33(或ens34,eth0等,具体名称可能不同)的网卡,并且它有一个inet地址(168.49.128)和一个BROADCAST、MULTICAST等标志。
(图片来源网络,侵删) -
测试网络连通性:
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 或网线一样,是自动的。
- 确保虚拟机软件中网络模式设置为 Bridged。
- 在 Ubuntu 中,编辑 Netplan 的网络配置文件(Ubuntu 18.04 及更高版本使用 Netplan)。
- 首先找到你的配置文件,通常在
/etc/netplan/目录下,01-network-manager-all.yaml或50-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 地址,方便远程访问或作为服务器,可以手动配置。
-
确认你的网络环境:
- 主机的 IP 地址是什么?(
168.1.10) - 局域网的子网掩码是什么?(通常是
255.255.0) - 局域网的网关(路由器)地址是什么?(
168.1.1) - 局域网中可用的一个静态 IP 地址是什么?(
168.1.100,确保这个 IP 没有被其他设备使用)
- 主机的 IP 地址是什么?(
-
编辑 Netplan 配置文件:
sudo nano /etc/netplan/50-cloud-init.yaml
-
修改文件内容,将
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 服务器,也可以用你的网关地址 -
保存并应用配置:
- 在
nano中按Ctrl+X->Y->Enter保存。 - 运行命令使配置生效:
sudo netplan apply
- 在
-
验证配置:
- 使用
ip addr show查看是否成功设置了168.1.100。 - 使用
ping 192.168.1.1测试网关是否通。 - 使用
ping 8.8.8.8测试外网是否通。
- 使用
故障排查
如果网络不通,可以按以下步骤检查:
-
检查虚拟机软件设置:
- 确认网络模式是否正确(NAT / Bridged)。
- 对于 VMware,可以尝试“修复”网络连接:
编辑->虚拟网络编辑器-> 选择对应的 VMnet ->还原默认设置。
-
检查 Ubuntu 内部网络服务:
- 确保网络管理器(NetworkManager)正在运行:
sudo systemctl status NetworkManager
- 如果未运行,可以启动并设为开机自启:
sudo systemctl start NetworkManager sudo systemctl enable NetworkManager
- 确保网络管理器(NetworkManager)正在运行:
-
重启网络服务:
- 对于 Netplan:
sudo netplan --debug apply # 加上 --debug 可以看到详细错误信息
- 对于较旧的系统(如果使用
ifupdown):sudo ifdown ens33 && sudo ifup ens33 # 替换 ens33 为你的网卡名
- 对于 Netplan:
-
检查防火墙:
- Ubuntu 自带的
ufw防火墙可能会阻止连接。 - 暂时关闭防火墙进行测试(生产环境请谨慎操作):
sudo ufw disable
- 如果关闭后网络通了,说明是防火墙规则问题,你需要使用
sudo ufw allow <端口/协议>来开放特定端口。
- Ubuntu 自带的
| 你的需求 | 推荐的网络模式 | Ubuntu 内部配置 |
|---|---|---|
| 只是临时上网、学习、开发 | NAT / NAT 模式 | 无需配置,自动获取 IP。 |
| 需要让局域网内其他设备访问虚拟机 | Bridged 模式 | 推荐使用 DHCP 自动获取 IP。 |
| 需要虚拟机作为服务器,提供固定访问 | Bridged 模式 | 手动配置静态 IP 地址。 |
| 需要完全隔离的测试环境 | Host-Only 模式 | 配置私有网络 IP,手动或 DHCP。 |
对于绝大多数用户来说,NAT 模式 是最省心省力的选择,如果你需要从局域网其他电脑访问虚拟机,或者想让虚拟机像一台真正的电脑一样工作,Bridged 模式 是不二之选。
