VMware Workstation + 银河麒麟V10 网络踩坑完整记录(NAT/桥接、局域网访问问题)
场景:Windows宿主机,VMware Workstation,虚拟机银河麒麟V10 SP1;目标:同一WiFi局域网其他设备访问虚拟机服务。
现象回顾
- 手动给虚拟机配置静态IP:
10.110.201.198/24,网关10.110.201.1 - 虚拟机内部 ping 本机IP正常;ping网关提示
Destination Host Unreachable(目标主机不可达) - Windows宿主机、同WiFi手机/其他电脑,完全访问不到虚拟机这个10段IP
- 切换桥接模式(笔记本只用WiFi,未插网线),网卡出现
NO‑CARRIER state DOWN,网卡无链路信号,直接断网。
核心根因分析
1、网段规划错误(最容易踩坑)
家里路由器实际局域网网段:192.168.0.0/24,Windows宿主机WiFi IP:192.168.0.19。
VMware NAT模式VMnet8虚拟网卡网段:192.168.37.0/24,宿主机VMnet8地址:192.168.37.1。
❌误区:直接在虚拟机随便写一个10段私网IP,以为就能被局域网访问。
事实:家用路由器没有
10.110.201.0/24这条路由,同WiFi设备不知道数据包该转发到哪里,永远无法访问该IP 。就算虚拟机内部网卡配置生效,也只存在虚拟机内部协议栈,外部物理网络路由不存在。
2、桥接模式对笔记本WiFi兼容性很差
VMware桥接模式,原生对无线Wi‑Fi网卡支持非常差。
- 笔记本只连WiFi、不插网线,切换桥接后经常出现:
ens33 NO‑CARRIER state DOWN,虚拟网卡没有物理链路信号。 - ✅桥接模式想要稳定工作:笔记本必须插有线网线接入路由器,关闭WiFi。
3、NAT模式网络隔离特性
NAT模式下,虚拟机处在VMnet8独立子网:
- ✅Windows宿主机本机:可以直接访问虚拟机IP。
- ❌同一WiFi下其他手机、其他电脑 :不能直接访问虚拟机内部IP(
192.168.37.100),子网隔离。
NAT模式不是路由器,不会自动把VMnet8网段广播给家里局域网。
环境正确配置方案
方案A:NAT模式(笔记本只用WiFi,不用插网线,推荐开发调试)
现状:VMware网络适配器选择NAT模式,VMnet8网段
192.168.37.*,NAT网关固定为192.168.37.2。
虚拟机(银河麒麟V10)nmcli设置静态IP
bash
# 修改连接,设置NAT网段静态IP
sudo nmcli connection modify "有线连接 1" \
ipv4.method manual \
ipv4.addresses 192.168.37.100/24 \
ipv4.gateway 192.168.37.2 \
ipv4.dns "223.5.5.5,114.114.114.114"
# 重载激活网络配置
sudo nmcli connection down "有线连接 1"
sudo nmcli connection up "有线连接 1"
验证连通性(虚拟机内)
bash
ip a # ens33 应当 state UP,IP=192.168.37.100
ip route # 默认网关 192.168.37.2
ping 223.5.5.5 # 测试外网连通
Windows宿主机验证
cmd执行:
cmd
ping 192.168.37.100
ssh cui@192.168.37.100
此时Windows本机可以正常ping、ssh登录虚拟机。
【重点】同WiFi其他设备如何访问NAT模式虚拟机
NAT模式下别的设备不能直接访问虚拟机IP ,需要配置VMware端口转发:
- VMware顶部菜单:编辑 →【虚拟网络编辑器】(管理员权限打开)
- 选中
VMnet8(NAT)→ 点击【NAT设置】→【端口转发】→【添加】
- 主机端口:
8080(Windows主机监听端口) - 虚拟机IP:
192.168.37.100 - 虚拟机端口:
8080(虚拟机内部服务端口)
- Windows防火墙高级设置,新建入站规则,放行对应TCP端口,允许局域网访问。
✅同WiFi其他设备访问地址:192.168.0.19:8080(Windows宿主机WiFi IP + 转发端口)
访问的是Windows主机IP,不是虚拟机的192.168.37.100。
方案B:桥接模式(需要笔记本插网线,同局域网设备直接访问虚拟机IP)
适用场景:需要手机、其他电脑直接访问虚拟机独立IP ,不做端口转发。
⚠️硬性条件:笔记本必须插网线连接路由器,关闭WiFi,否则大概率NO‑CARRIER断网。
- 虚拟机关机,VMware虚拟机设置 → 网络适配器,选择【桥接模式(复制物理网络连接状态)】。
- 开机,配置路由器真实局域网网段静态IP(家里路由器网关
192.168.0.1)
bash
sudo nmcli connection modify "有线连接 1" \
ipv4.method manual \
ipv4.addresses 192.168.0.100/24 \
ipv4.gateway 192.168.0.1 \
ipv4.dns "223.5.5.5,114.114.114.114"
sudo nmcli connection down "有线连接 1"
sudo nmcli connection up "有线连接 1"
- 验证:
虚拟机:ping 192.168.0.1(网关通)
Windows/同WiFi设备:直接访问192.168.0.100。
❗桥接模式IP必须和路由器WiFi网段一致,不能写不存在的网段。
误区澄清:能不能强行使用10.110.201.198让同WiFi设备访问?
普通家用环境不建议折腾,代价很高,需要全部满足下面条件:
- 路由器添加静态路由:
10.110.201.0/24,下一跳指向Windows宿主机WiFi IP192.168.0.19; - Windows系统开启IP转发注册表开关;
- 虚拟机网络模式切换为桥接模式,笔记本插网线;
绝大多数家用路由器没有静态路由配置功能,实操几乎不可行,开发环境不推荐这么做。
银河麒麟防火墙小提示
银河麒麟桌面版,默认不是firewalld、也不是ufw,使用自研kylin‑firewall:
bash
# 查看防火墙状态
sudo kylin-firewall -g
# 关闭私有网络防护(测试调试)
sudo kylin-firewall -s private off
本次问题不是防火墙拦截,完全是VM网络与路由规划问题。
排错自查清单(遇到网络不通按顺序检查)
ip a:看ens33网卡状态,是否state UP,是否有正确IP;出现NO‑CARRIER代表虚拟链路断开。ip route:检查默认网关是否真实存在,ping网关是否通。- 确认IP网段:虚拟机IP必须和VM网络模式匹配,不能写物理网络不存在的网段。
- NAT模式:宿主机可以通,别的设备不通 → 使用VMware端口转发。
- 桥接模式WiFi下NO‑CARRIER → 优先插网线;笔记本无线网卡桥接兼容性硬限制。
NAT与桥接模式选型对比
| 模式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| NAT模式 | 笔记本WiFi可用,配置简单稳定;虚拟机可正常上网 | 仅宿主机直连;其他设备需要端口转发 | 日常开发调试,笔记本不方便插网线 |
| 桥接模式 | 局域网所有设备直接访问虚拟机独立IP | 笔记本必须插网线;WiFi环境容易NO‑CARRIER断网 | 需要多设备频繁访问虚拟机服务,有线环境 |