在日常开发中,很多人会在 Windows 宿主机上通过 VMware 运行 Ubuntu 虚拟机,并通过 SSH 或 Samba 访问虚拟机。但如果宿主机经常在以太网和 Wi-Fi 之间切换,虚拟机的 IP 地址就会频繁变化,每次连接前都要重新查 IP,非常影响效率。本文将介绍一种双网卡分工的配置方案,让 Ubuntu 的访问 IP 始终保持固定,彻底摆脱宿主机网络切换带来的困扰。
一、核心需求
- 宿主机 :Windows PC,频繁切换 以太网3 (需网页/客户端认证)与 Wi-Fi(网段不固定),两者不能同时在线。
- 虚拟机:VMware 中运行的 Ubuntu。
- 目标 :宿主机通过 SSH、Samba 访问 Ubuntu 时,IP 绝对固定,不受宿主机物理网络切换、认证/注销影响,且 Ubuntu 本身能正常上网。
二、核心方案:双网卡分工
将虚拟机的"上网"与"被访问"彻底分离,互不干扰:
- 网卡1(NAT 模式):负责 Ubuntu 上网。借用宿主机物理网络,宿主机切换网络时,Ubuntu 端无需任何改动即可持续上网。
- 网卡2(仅主机模式 Host-Only) :负责提供固定 IP。创建一个与外界完全隔离的私有网络,IP 由你固定设定,宿主机通过该 IP 稳定访问 Ubuntu。
三、详细配置步骤
1. VMware 虚拟网络编辑器配置
打开 编辑 -> 虚拟网络编辑器(需管理员权限):
- VMnet1(仅主机模式) :
- 取消勾选"使用本地 DHCP 服务..."。
- 勾选"将主机虚拟适配器连接到此网络"。
- 设置子网 IP:
192.168.93.0,子网掩码:255.255.255.0。
- VMnet8(NAT 模式) :
- 保持默认,勾选 DHCP 和"将主机虚拟适配器连接到此网络"。
- 子网 IP 保持默认(如
192.168.136.0)。
2. VMware 虚拟机硬件设置
- 关闭 Ubuntu 虚拟机。
- 右键 Ubuntu ->
设置:- 网络适配器 :选择
NAT 模式(对应 VMnet8),勾选"启动时连接"。
- 网络适配器 2 :添加新网卡,选择
仅主机模式(对应 VMnet1),勾选"启动时连接"。
- 网络适配器 :选择
3. Ubuntu 系统内网卡配置
-
确认网卡名称 :启动 Ubuntu,执行
ip addr查看网卡名(通常ens33是 NAT,ens37是 Host-Only)。
-
Ubuntu 图形界面配置固定 IP :打开 Ubuntu 网络设置,找到 Host-Only 网卡(如
ens37),将 IPv4 方式改为手动,设置 IP 地址为192.168.93.100,子网掩码为255.255.255.0。

注意:网关和 DNS 必须完全留空!
- Windows 宿主机固定 VMnet1 网卡 IP :Windows 在切换物理网络时,偶尔会把虚拟网卡(VMnet1)的优先级降低、重置路由,或者触发防火墙拦截。因此需要打开 Windows 网络适配器设置,为 VMnet1 手动指定一个与 Ubuntu 同网段的固定 IP(例如
192.168.93.1),子网掩码255.255.255.0,网关留空。

四、验收测试
-
宿主机(Windows)测试 :在
cmd中执行ping 192.168.93.100,必须能通且延迟极低(低于 1ms)。
-
Ubuntu 上网测试 :在 Ubuntu 中执行
ping 8.8.8.8和ping www.baidu.com,应正常响应,确认 NAT 网卡上网功能正常。

-
核心切换测试 :宿主机保持
ping 192.168.93.100 -t持续运行,在 Wi-Fi 与以太网3 之间来回切换(包括以太网3登录/注销)。
ping应始终稳定不掉包 。
- 无论宿主机物理网络如何变化,SSH(
ssh fmsh@192.168.93.100)和 Samba(\\192.168.93.100)始终可用。
五、总结
本方案通过双网卡分工,将虚拟机的上网流量(NAT)与固定访问流量(Host-Only)彻底隔离:NAT 网卡跟随宿主机物理网络自动切换,保证 Ubuntu 随时可上网;Host-Only 网卡则构建了一个独立的私有网络,使宿主机始终可以通过 192.168.93.100 稳定访问 Ubuntu。配置完成后,无论宿主机在以太网和 Wi-Fi 之间如何切换,SSH 和 Samba 的连接都不受影响,无需再频繁查找虚拟机 IP。