VMware 虚拟机突然断网:NetworkManager 全局网络被状态文件禁用的排查与恢复

ubuntu VMware虚拟机突然开机没网IP了,断网

bash 复制代码
› 看下为什么vmware里的网络突然没了:[alientek@alientek-virtual-machine 桌面]$ ip a
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 scope host lo
         valid_lft forever preferred_lft forever
      inet6 ::1/128 scope host
         valid_lft forever preferred_lft forever
  2: ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
      link/ether 00:0c:29:81:96:71 brd ff:ff:ff:ff:ff:ff
      altname enp2s1
  [alientek@alientek-virtual-machine 桌面]$


⚠ Skill descriptions were shortened to fit the skills context budget. Codex can still see every skill, but some descriptions are shorter. Disable unused skills or plugins to leave more room for the rest.

• 我会按"先定位链路层,再查 NetworkManager 和 VMware 虚拟网卡"的顺序排查。你这份输出已经说明关键点:ens33 还存在,但处于管理关闭状态(state DOWN,并且 flags 里没有 UP),所以目前不是单纯 DNS 故障。接下来先不要改配置文件。

• Explored
  └ Read SKILL.md (systematic-debugging skill)

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

• 从这份 ip a 可以先确定一件事:

  ens33: <BROADCAST,MULTICAST> ... qdisc noop state DOWN

  ens33 网卡设备仍然存在,说明 VMware 虚拟网卡没有从虚拟机硬件中消失;但它现在是"管理状态关闭"。关键证据是 flags 中没有 UP。这还不是 DNS、路由或 DHCP 问题,因为系统根本还没把网卡启起来。

  先在虚拟机里执行下面这组只读诊断命令,把完整输出发我:

  nmcli general status
  nmcli device status
  nmcli connection show
  systemctl status NetworkManager --no-pager -l
  journalctl -b -u NetworkManager --no-pager -n 100

  再检查 VMware 界面:

  1. 虚拟机 → 设置 → 网络适配器。
  2. 确认"已连接/Connected"已勾选。
  3. 确认"启动时连接/Connect at power on"已勾选。
  4. 确认网络模式仍是 NAT 或"桥接";一般先用 NAT 排查最简单。

  目前最可能的情况及其证据如下:

   诊断结果                                        根因
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   NetworkManager 显示 inactive 或 failed          网络管理服务停止或启动失败
  ──────────────────────────────────────────────  ───────────────────────────────────────────────────────
   nmcli device status 中 ens33 是 disconnected    连接配置存在但没有激活
  ──────────────────────────────────────────────  ───────────────────────────────────────────────────────
   ens33 是 unmanaged                              NetworkManager 没有管理该网卡
  ──────────────────────────────────────────────  ───────────────────────────────────────────────────────
   没有任何对应 ens33 的连接配置                   配置被删除、重命名或升级后没有匹配
  ──────────────────────────────────────────────  ───────────────────────────────────────────────────────
   启动连接后显示 carrier unavailable              VMware 中虚拟网线未连接,或宿主机 VMware 网络服务异常
  ──────────────────────────────────────────────  ───────────────────────────────────────────────────────
   能取得 IP,但无法访问域名                       才进入路由或 DNS 排查

  如果你现在急着恢复网络,可以先做一个最小测试:

  sudo ip link set ens33 up
  ip link show ens33

  然后观察:

  - 若变成 NO-CARRIER ... UP:虚拟机内部已经启用网卡,但 VMware 外部链路没接上,重点检查"已连接"复选框和宿主机 VMware 网络服务。
  - 若变成 UP,LOWER_UP:虚拟链路正常,接下来是 NetworkManager/DHCP 配置问题。
  - 若执行时报错:把原始报错发来。

  如果系统使用 NetworkManager,并且 nmcli connection show 中已经有类似 ens33、Wired connection 1 或"有线连接 1"的配置,可以用实际连接名激活:

  sudo nmcli connection up "实际连接名"

  也可以让 NetworkManager自动选择:

  sudo nmcli device connect ens33

  成功后验证:

  ip -4 address show ens33
  ip route
  ping -c 3 你的默认网关地址
  ping -c 3 1.1.1.1
  ping -c 3 www.baidu.com

  不要一开始就改 /etc/resolv.conf,因为当前网卡连 UP 都没有,改 DNS 不会解决这个问题。最有价值的是把上面五条只读诊断命令的输出贴出来,我可以据此判断究竟是 NetworkManager、连接配置、VMware 虚拟网线,还是宿主机的 NAT/桥接服务出了问题。

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────


› [alientek@alientek-virtual-machine 桌面]$ nmcli general status

  STATE   CONNECTIVITY  WIFI-HW  WIFI    WWAN-HW  WWAN
  已断开  未知          已启用   已启用  已启用   已启用
  [alientek@alientek-virtual-machine 桌面]$   nmcli device status
  DEVICE  TYPE      STATE   CONNECTION
  ens33   ethernet  未托管  --
  lo      loopback  未托管  --
  [alientek@alientek-virtual-machine 桌面]$   nmcli connection show
  NAME        UUID                                  TYPE      DEVICE
  有线连接 1  595c591f-a346-3374-b49a-ce379d617d90  ethernet  --
  [alientek@alientek-virtual-machine 桌面]$   systemctl status NetworkManager --no-pager -l
  ● NetworkManager.service - Network Manager
       Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
       Active: active (running) since Tue 2026-09-08 22:18:23 CST; 5min ago
         Docs: man:NetworkManager(8)
     Main PID: 916 (NetworkManager)
        Tasks: 3 (limit: 19061)
       Memory: 13.2M
       CGroup: /system.slice/NetworkManager.service
               └─916 /usr/sbin/NetworkManager --no-daemon

  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3592] settings: Loaded settings plugin: keyfile (internal)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3592] ifupdown: management mode: unmanaged
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <warn>  [1788877103.3594] ifupdown: interfaces file /etc/network/interfaces doesn't exist
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3642] device (lo): carrier: link connected
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3645] manager: (lo): new Generic device (/org/freedesktop/NetworkManager/Devices/1)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3657] manager: (ens33): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <warn>  [1788877103.3670] Error: failed to open /run/network/ifstate
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3746] manager: startup complete
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3758] modem-manager: ModemManager available
  9月 08 22:19:28 alientek-virtual-machine NetworkManager[916]: <info>  [1788877168.0598] agent-manager: agent[85cb92b973d80e22,:1.84/org.gnome.Shell.NetworkAgent/1000]: agent registered
  [alientek@alientek-virtual-machine 桌面]$   journalctl -b -u NetworkManager --no-pager -n 100
  -- Logs begin at Sat 2023-07-15 13:45:50 CST, end at Tue 2026-09-08 22:23:58 CST. --
  9月 08 22:18:23 alientek-virtual-machine systemd[1]: Starting Network Manager...
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.1913] NetworkManager (version 1.22.10) is starting... (for the first time)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.1913] Read config: /etc/NetworkManager/NetworkManager.conf (lib: 10-dns-resolved.conf, 20-connectivity-ubuntu.conf, no-mac-addr-change.conf) (run: 10-globally-managed-
  devices.conf) (etc: default-wifi-powersave-on.conf)
  9月 08 22:18:23 alientek-virtual-machine systemd[1]: Started Network Manager.
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.2175] bus-manager: acquired D-Bus service "org.freedesktop.NetworkManager"
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.2264] manager[0x55cfc484d030]: monitoring kernel firmware directory '/lib/firmware'.
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.2264] monitoring ifupdown state file '/run/network/ifstate'.
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3361] hostname: hostname: using hostnamed
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3362] hostname: hostname changed from (none) to "alientek-virtual-machine"
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3364] dns-mgr[0x55cfc4837290]: init: dns=systemd-resolved rc-manager=symlink, plugin=systemd-resolved
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3370] manager[0x55cfc484d030]: rfkill: Wi-Fi hardware radio set enabled
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3370] manager[0x55cfc484d030]: rfkill: WWAN hardware radio set enabled
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3467] Loaded device plugin: NMWwanFactory (/usr/lib/x86_64-linux-gnu/NetworkManager/1.22.10/libnm-device-plugin-wwan.so)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3479] Loaded device plugin: NMAtmManager (/usr/lib/x86_64-linux-gnu/NetworkManager/1.22.10/libnm-device-plugin-adsl.so)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3506] Loaded device plugin: NMWifiFactory (/usr/lib/x86_64-linux-gnu/NetworkManager/1.22.10/libnm-device-plugin-wifi.so)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3539] Loaded device plugin: NMTeamFactory (/usr/lib/x86_64-linux-gnu/NetworkManager/1.22.10/libnm-device-plugin-team.so)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3573] Loaded device plugin: NMBluezManager (/usr/lib/x86_64-linux-gnu/NetworkManager/1.22.10/libnm-device-plugin-bluetooth.so)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3575] manager: rfkill: Wi-Fi enabled by radio killswitch; enabled by state file
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3576] manager: rfkill: WWAN enabled by radio killswitch; enabled by state file
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3577] manager: Networking is disabled by state file
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3579] dhcp-init: Using DHCP client 'internal'
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3591] settings: Loaded settings plugin: ifupdown ("/usr/lib/x86_64-linux-gnu/NetworkManager/1.22.10/libnm-settings-plugin-ifupdown.so")
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3592] settings: Loaded settings plugin: keyfile (internal)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3592] ifupdown: management mode: unmanaged
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <warn>  [1788877103.3594] ifupdown: interfaces file /etc/network/interfaces doesn't exist
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3642] device (lo): carrier: link connected
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3645] manager: (lo): new Generic device (/org/freedesktop/NetworkManager/Devices/1)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3657] manager: (ens33): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2)
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <warn>  [1788877103.3670] Error: failed to open /run/network/ifstate
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3746] manager: startup complete
  9月 08 22:18:23 alientek-virtual-machine NetworkManager[916]: <info>  [1788877103.3758] modem-manager: ModemManager available
  9月 08 22:19:28 alientek-virtual-machine NetworkManager[916]: <info>  [1788877168.0598] agent-manager: agent[85cb92b973d80e22,:1.84/org.gnome.Shell.NetworkAgent/1000]: agent registered
  [alientek@alientek-virtual-machine 桌面]$


• 已经定位到了,根因非常明确:NetworkManager 的全局联网开关被关闭了,不是 VMware NAT、网卡驱动、DNS 或网卡配置丢失。

  日志里的决定性证据是:

  manager: Networking is disabled by state file

  这会导致:

  nmcli general status  → 已断开
  nmcli device status   → ens33 未托管
  ip a                  → ens33 state DOWN

  也就是说,NetworkManager 服务本身虽然正常运行,但它读取了自己的状态文件,发现"NetworkingEnabled=false",所以没有接管并启用 ens33。

  直接恢复全局网络:

  sudo nmcli networking on

  等待两三秒,然后检查:

  nmcli general status
  nmcli device status
  ip -4 address show ens33
  ip route

  正常情况下,已有的"有线连接 1"会自动连接,预计看到类似:

  DEVICE  TYPE      STATE   CONNECTION
  ens33   ethernet  已连接  有线连接 1

  并且 ens33 会出现 DHCP 分配的 IPv4 地址。

  如果全局网络已经打开,但没有自动连接,再手动激活现有连接:

  sudo nmcli connection up "有线连接 1"

  然后验证完整链路:

  nmcli device status
  ip -4 address show ens33
  ip route
  ping -c 3 1.1.1.1
  ping -c 3 www.baidu.com

  判断方式:

  - 1.1.1.1 和 www.baidu.com 都通:已经完全恢复。
  - 1.1.1.1 通、域名不通:网络已恢复,仅剩 DNS 问题。
  - 激活时报 carrier unavailable 或"载波不可用":再检查 VMware 设置中的网络适配器是否勾选了"已连接"。
  - 激活时报 DHCP 超时:再排查 VMware NAT/桥接服务。

  也可以查看造成问题的持久状态:

  sudo grep -n . /var/lib/NetworkManager/NetworkManager.state

  此前很可能会看到:

  [main]
  NetworkingEnabled=false

  运行 nmcli networking on 后应该变成:

  NetworkingEnabled=true

  这里日志中的另外两个警告不是本次断网主因:

  interfaces file /etc/network/interfaces doesn't exist
  failed to open /run/network/ifstate

  你的系统正在使用 NetworkManager 的 keyfile 配置,而且"有线连接 1"已经成功加载,所以不要为了这两个警告手工创建 /etc/network/interfaces,否则反而可能造成 NetworkManager 与传统 ifupdown 配置冲突。

  至于为什么会"突然"关闭,常见原因是:

  - 桌面网络菜单里误点了"关闭网络";
  - 曾执行过 nmcli networking off;
  - 系统关机前把关闭状态写进了 /var/lib/NetworkManager/NetworkManager.state,重启后继续沿用;
  - 某个网络管理脚本或桌面组件修改了全局开关。

  最关键的一条命令就是:

  sudo nmcli networking on


› 牛逼


• 哈哈,日志这次挺诚实,关键一句直接把根因供出来了:

  Networking is disabled by state file

  以后再碰到 VMware 虚拟机突然没网,可以先用这套"三板斧":

  nmcli general status
  nmcli device status
  journalctl -b -u NetworkManager --no-pager -n 50

  如果又看到"全局网络关闭",直接恢复:

  sudo nmcli networking on

  若网卡仍没自动连接:

  sudo nmcli connection up "有线连接 1"

  这次的问题完全在虚拟机内部的 NetworkManager 开关,不需要折腾 VMware NAT、桥接或 DNS。
相关推荐
QYRdata1 小时前
24.8%复合增速!用量付费办公IT服务2026-2032年发展势头强劲
网络·人工智能·服务发现
小此方1 小时前
Linux网络(七):从 Socket 封装到应用层协议:手写网络版计算器,彻底搞懂 TCP 通信、序列化与反序列化
linux·网络·tcp/ip
captain3762 小时前
网络初 识
运维·服务器·网络
ZzzZZzzzZZZzzzz…2 小时前
K8s---网络:从 Pod 网络模型到 Calico 三种模式
运维·网络·云原生·容器·kubernetes·calico·pod网络模型
国科安芯2 小时前
基于抗辐射MCU的卫星分布式控制系统CANFD总线架构研究
网络·人工智能·分布式·单片机·嵌入式硬件·架构·抗辐射
春风解人意10 小时前
从零开始学习嵌入式P32----网络基础之TCP
c语言·网络·学习·tcp/ip
云絮.11 小时前
网络原理---- 网络层,数据链路层,应用层
网络
Johny_Zhao12 小时前
网络安全等级保护测评实施方案
linux·网络·人工智能·网络安全·信息安全·云计算·等保测评·系统运维·itsm
虹科网络安全14 小时前
使用艾体宝 IOTA 10 CORE+ 监控企业网络中的 AI 流量
网络·人工智能