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。