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。
相关推荐
QXWZ_IA4 小时前
定位数据怎么推给 IoT 平台?消息协议选型与接入准备
网络·人工智能·物联网·安全
wdeok4 小时前
Socket编程Tcp
服务器·网络·tcp
xiaoye-duck20 小时前
《C++ 项目:手写大模型接入 SDK》Ollama接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
无足鸟ICT1 天前
【RHCA+】iptraf-ng(网络监控分析)
linux·网络
坤坤子吖1 天前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
xiaoye-duck1 天前
《C++ 项目:手写大模型接入 SDK》LLMManager架构设计与实现
开发语言·网络·c++·语言模型
andxe1 天前
工业级 PoE 交换机选型指南:破解边缘部署四大核心难题
运维·网络·安全·光通信·交换机
say_fall1 天前
【Linux网络编程】计算机网络基础:局域网与广域网、OSI七层模型与TCP/IP五层模型、封装解包与MAC/IP地址、端口号与socket编程接口
linux·网络·tcp/ip·计算机网络·信息与通信
Joy T1 天前
Gzip 压缩原理与实践:HTTP 响应压缩、性能收益与工程配置
网络·网络协议·http
叼烟扛炮1 天前
Linux 学习笔记(五十四):内网穿透实战——用 frp 让外网访问你的私人电脑
linux·服务器·网络·笔记·学习