Appearance
VMware Fusion + Ubuntu Server 22.04:NAT 模式下配置固定内网 IP 的完整指南

前言:你为什么需要看这篇?
如果你和我一样:
- Mac 磁盘空间告急,但又不得不装一台 Linux 虚拟机用来开发/学习;
- 公司、家里两头跑,Wi-Fi 网段不一样,虚拟机 IP 老是变,SSH 连接地址改来改去烦死人;
- 只想在 Mac 本地安安静静地跑一台 Ubuntu,不被局域网里其他人访问,也不想被网络环境变化影响。
那么这篇文章就是为你写的。
最终效果:在 Mac 上打开终端,输入 ssh [email protected],不管你在公司还是在家,永远都能连上这台 Ubuntu,同时 Ubuntu 也能正常访问外网安装软件包。
环境信息
| 项目 | 版本/配置 |
|---|---|
| 宿主机 | macOS(Intel / Apple Silicon 均可) |
| 虚拟机软件 | VMware Fusion Professional 26H1 |
| 客户机系统 | Ubuntu Server 22.04.5 LTS |
| 虚拟机硬件 | 2 核 CPU / 4GB 内存 / 10GB 磁盘 |
| 网络模式 | NAT(Internet Sharing) |
第一步:创建虚拟机时的硬件配置
1.1 处理器与内存
在 VMware Fusion 中创建虚拟机时,进入 "Processors & Memory" 配置:
- Processors:
2 processor cores(够用) - Memory:选择
4096 MB(4GB),这是推荐值

为什么是 4GB?
Ubuntu Server 22.04 最小化安装只需要 ~512MB,但装完开发工具、Docker、数据库后,4GB 会比较从容。如果你的 Mac 内存充裕(16GB+),可以给到 6GB 或 8GB。
1.2 硬盘大小(注意避坑)
在 "Hard Disk (SCSI)" 配置中,Disk size 建议设置为 10GB,而不是 20GB。
- Ubuntu Server + 基础开发工具 + Docker,10GB 足够用;
- VMware 默认是动态增长磁盘,初始只占 ~2.5GB,会随着使用逐渐膨胀到设定值;
- 如果你 Mac 磁盘空间紧张,设 20GB 等于埋了一颗定时炸弹——等它涨满时,Mac 会卡死,虚拟机可能崩溃。

磁盘告急警告
如果 Mac 剩余空间 < 15GB,建议不要用 20GB 的虚拟磁盘。10GB 是更安全的选择。
1.3 高级选项(要不要勾选?)
在 "Processors & Memory" 底部有两个高级选项:
| 选项 | 默认 | 建议 |
|---|---|---|
| Enable hypervisor applications | 不勾选 | 如果你不打算在 Ubuntu 里再装 Docker/KVM,就不用勾 |
| Enable IOMMU | 不勾选 | 不需要 GPU 直通 / 高性能网卡时,不用勾 |
第二步:网络模式的选择(核心)
2.1 三种模式对比
在 "Network Adapter" 配置中,VMware Fusion 提供三种主要网络模式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| Internet Sharing(NAT) | Ubuntu 通过 Mac 上网,Mac 与 Ubuntu 之间用虚拟私有网络通信 | ✅ 本文推荐:需要联网装软件,且只需 Mac 本地访问 |
| Bridged Networking | Ubuntu 与 Mac 在同一物理局域网,获得独立 IP | ❌ 其他设备也能访问,不安全;且 IP 随网络环境变化 |
| Private to my Mac | 纯私有网络,Ubuntu 无法访问外网 | ⚠️ 仅适合完全离线场景,装不了软件 |
2.2 为什么选 "Internet Sharing"?
- ✅ Ubuntu 能访问外网(装
apt包、拉 Docker 镜像、git clone); - ✅ Mac 能 SSH 访问 Ubuntu;
- ✅ 其他物理设备无法访问 Ubuntu(NAT 天然隔离);
- ✅ IP 地址可以固定,不受公司/家庭网络变化影响。
一句话总结:NAT 模式 = 能上网 + 本地访问 + 固定 IP + 安全隔离,完美匹配需求。

第三步:配置固定内网静态 IP(核心操作)
3.1 原理说明
VMware Fusion 在安装时就已经在 macOS 上预先创建了多个虚拟网桥设备(bridge100、bridge101、bridge102 等)。当你为虚拟机选择 "Internet Sharing"(NAT 模式) 时,Fusion 会激活其中一个 bridge,并为其分配一个独立的私有网段(通常是 192.168.xxx.0/24),将 Mac 和虚拟机连接在这个虚拟网络上。
- Mac 通过这个虚拟网桥与 Ubuntu 通信;
- Ubuntu 通过 NAT 经 Mac 的物理网卡访问外网。
关键点:这个 192.168.xxx.xxx 网段是 VMware 内部虚拟的,完全不受公司/家庭 Wi-Fi 网段影响。所以只要 Mac 开着,这个固定 IP 就永远有效。
VMware Fusion 与 Workstation 的网卡命名差异
如果你用过 Windows 下的 VMware Workstation,可能会习惯 vmnet8 这个名称。但在 VMware Fusion 中,虚拟网卡的命名规则不同:
| 软件 | NAT 模式虚拟网卡 |
|---|---|
| VMware Workstation(Windows) | vmnet8 |
| VMware Fusion(macOS) | bridgexxx(如 bridge100、bridge101、bridge102) |
Fusion 会为每个独立的 NAT 网络创建不同的 bridge,当你创建第一台使用 NAT 模式的虚拟机时,通常会分配 bridge100,后续依次递增。你可以通过 ifconfig 查看当前使用的是哪个 bridge。
3.2 第一步:查看 Mac 上的 NAT 网段
在 Mac 终端中执行:
bash
ifconfig | grep -A 5 "bridge"找到状态为 UP 且 RUNNING 的 bridge 设备,输出示例:
bridge102: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.98.1 netmask 0xffffff00 broadcast 192.168.98.255
...记下:
- bridge 名称:
bridge102(也可能是bridge100或bridge101) - 网关 IP:
192.168.98.1(这就是 Mac 上该 bridge 的地址) - 网段:
192.168.98.0/24
那么我们的 Ubuntu 静态 IP 可以设为 192.168.98.100。
如何确认你用的是哪个 bridge?
一个简单的方法:先在 Ubuntu 里执行 ip addr 查看当前 DHCP 获取到的 IP,然后在 Mac 上执行 ifconfig,找到 inet 地址段与 Ubuntu IP 在同一网段的那个 bridge,就是你的 NAT 网卡。
3.3 第二步:查看 Ubuntu 中的网卡名称
在 Ubuntu 终端中执行:
bash
ip addr找到类似这样的输出:
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.98.132/24 brd 192.168.98.255 scope global dynamic ens33记下网卡名称:ens33(也可能是 ens160、enp0s3 等,以实际为准)。
3.4 第三步:配置 Netplan
Ubuntu 22.04 使用 netplan 管理网络配置。
编辑配置文件:
bash
vim /etc/netplan/50-cloud-init.yaml💡 注意
50-cloud-init.yaml 为网卡配置文件,这个文件名,可能会因为发行版本的不同,有所差异!
填入以下内容(请根据你实际查到的网段替换 IP 地址):
yaml
network:
version: 2
ethernets:
ens33:
dhcp4: true
dhcp4: false
addresses:
- 192.168.98.100/24
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
routes:
- to: default
via: 192.168.98.1网段替换提醒
请务必将示例中的 192.168.98.x 替换为你在 3.2 步中实际查到的网段!不同 Mac 上的 bridge 网段可能不同(可能是 192.168.100.x、192.168.164.x 等)。
应用配置:
bash
sudo netplan apply3.5 第四步:验证配置
bash
# 查看 IP 是否生效
ip addr show ens33
# 测试网关连通性(用你实际的网关 IP)
ping -c 4 192.168.98.1
# 测试外网连通性
ping -c 4 8.8.8.8
# 测试 DNS 解析
ping -c 4 baidu.com在 Mac 终端中测试 SSH 连接:
bash
ssh [email protected]3.6 第五步:禁用 cloud-init 的网络管理
在 Ubuntu 22.04 中如果不禁用 cloud-init 的网络管理功能,配置的网卡静态 IP 重启后将会失效!
bash
echo "network: {config: disabled}" | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg > /dev/null && sudo cloud-init clean && sudo reboot💡 注意
详情内容可以参考,我博客的另一篇博文《Ubuntu 22.04 重启后静态 IP 配置被重置?一招彻底解决》
第四步:跨环境测试(公司 / 家里)
| 环境 | Mac 物理 IP | Ubuntu 虚拟 IP | SSH 是否正常 |
|---|---|---|---|
| 家里(Wi-Fi) | 192.168.1.x | 192.168.98.100 | ✅ 正常 |
| 公司(有线) | 10.10.0.x | 192.168.98.100 | ✅ 正常 |
| 咖啡馆(公共 Wi-Fi) | 172.16.0.x | 192.168.98.100 | ✅ 正常 |
结论:只要 Mac 能开机,ssh [email protected] 永远有效。🎉
避坑指南(FAQ)
Q1:配置 netplan 后连不上 Ubuntu 了怎么办?
不用慌,这是最经典的问题。解法:
- 在 VMware 中关机虚拟机;
- 进入虚拟机设置 → Network Adapter,临时改成 "Bridged";
- 开机,用 DHCP 自动获取的 IP 连进去;
- 把 netplan 配置改对,重新
sudo netplan apply; - 关机,把网络模式改回 "Internet Sharing",再开机即可。
Q2:Ubuntu 里的网卡名不是 ens33 怎么办?
用 ip addr 查看实际名称,比如 ens160 或 enp0s3,在 netplan 配置文件中替换即可。
Q3:为什么我改了 netplan 但 IP 没变?
检查是否有其他 netplan 配置文件冲突:
bash
ls /etc/netplan/确保只有你编辑的那一个文件是有效的,其他的可以备份后删除。
Q4:DNS 解析失败但能 ping 通 8.8.8.8?
检查 /etc/resolv.conf 是否被正确覆盖,或者尝试改用 nameservers: addresses: [223.5.5.5, 114.114.114.114](国内备用 DNS)。
Q5:要不要勾选 "Enable hypervisor applications"?
- 如果你要在 Ubuntu 里装 Docker → 需要勾选;
- 如果只是跑普通服务/写代码 → 不用勾。
Q6:如何确认我的 Mac 上是哪个 bridge?
在 Mac 终端执行:
bash
ifconfig | grep -E "(bridge|inet )" | grep -A 1 "bridge"或者在 Ubuntu 里查看当前 IP,再到 Mac 上找同一网段的 bridge。例如 Ubuntu IP 是 192.168.98.132,Mac 上能找到 bridge102: inet 192.168.98.1,则确认使用 bridge102。
装机后的第一件事:拍快照!
在 VMware Fusion 菜单栏中:
虚拟机 → 拍摄快照

给快照起个名字,比如 "纯净初始状态"。
以后如果把系统玩坏了,一分钟就能恢复到刚装好的干净状态,省去重装系统的痛苦。
总结
通过 Internet Sharing(NAT)+ Netplan 固定静态 IP 的方案,我们实现了:
- ✅ Mac 磁盘空间友好(10GB 动态磁盘)
- ✅ Ubuntu 可访问外网(装软件、拉镜像)
- ✅ 固定内网 IP(不受网络环境影响)
- ✅ 安全隔离(其他设备无法访问)
- ✅ 任何时候都能
ssh [email protected](请替换为你的实际 IP)
参考资料
修正内容汇总
| 位置 | 修正前 | 修正后 |
|---|---|---|
| 3.1 原理说明 | vmnet8 | bridgexxx,并增加命名差异说明 |
| 3.2 查看网段 | ifconfig vmnet8 | ifconfig | grep -A 5 "bridge" |
| 3.2 示例 IP | 192.168.100.x | 192.168.98.x(基于实际环境) |
| 3.2 确认方法 | 无 | 增加"如何确认用哪个 bridge"的说明 |
| Q6 | 无 | 新增 FAQ,专门解答 bridge 确认问题 |
| 全文 | 未区分 Fusion/Workstation | 增加对比表,明确 macOS 下的特殊性 |
现在这篇文章对 VMware Fusion 用户来说就完全准确了!🚀
