跳到主要内容

ubuntu查询不到ip

问题描述

最近在使用 vmware 中的 ubuntu22.04 版本虚拟机时,发现桌面右上角的网络图标消失不见,通过 ip a 命令查看 ip 也消失不见。

加载中...

问题分析

由于使用的是桌面环境,可能是 NetworkManager 服务出现问题,直接查看状态是否正常

加载中...

服务在正常运行,然后去看 NetworkManager 的状态文件,文件位置在 /var/lib/NetworkManager/NetworkManager.state 可以看到 NetworkingEnabled=false,是否启用整个网络被关掉了,这就是问题所在。

加载中...

解决办法

  1. 执行 systemctl stop NetworkManager 停掉服务,修改 NetworkingEnabled=true

加载中...

  1. 执行 systemctl start NetworkManager 启动服务。

  2. 再次查看,网络恢复。

    加载中...

总结

NetworkManager 本质上是 Linux 系统里的网络管理服务,主要负责统一管理有线、无线、VPN、移动宽带等各种网络连接。作用如下:

  1. 自动管理网络

    • 自动识别网卡、无线网络
    • 自动获取 DHCP 地址、配置 DNS
    • 可以自动在可用网络之间切换(比如 Wi-Fi 和有线网)
  2. 提供统一接口

    • 桌面用户可以用 GUI 工具(如 nm-appletgnome-control-center)管理网络
    • 服务器用户可以用 nmcli 命令行或 nmtui TUI 工具操作
  3. 支持多种网络类型

    • 有线(Ethernet)
    • 无线(Wi-Fi)
    • 移动宽带(WWAN / 3G / 4G / 5G)
    • VPN
    • Bridge / Bond / VLAN 等高级网络配置

/var/lib/NetworkManager/NetworkManager.state 是 NetworkManager 的状态文件,用来记录当前网络管理器的一些持久化状态。

文件内容示例:

[main]
NetworkingEnabled=true
WirelessEnabled=true
WWANEnabled=true
WimaxEnabled=true

字段含义

  • NetworkingEnabled → 控制是否启用整个网络(总开关)。
  • WirelessEnabled → 是否启用无线(Wi-Fi)。
  • WWANEnabled → 是否启用移动宽带(3G/4G)。
  • WimaxEnabled → 是否启用 WiMAX(现在几乎不用了)。

用途

  1. 恢复网络状态 当禁用网络(例如 nmcli networking off),NetworkManager 会写入 NetworkingEnabled=false,下次开机它会记住。

  2. 修复网络无法启动问题 如果网络突然不能启动,可能是这个文件里某个字段被写成了 false

    • 手动编辑文件,把相关字段改成 true

      vim /var/lib/NetworkManager/NetworkManager.state
    • 然后重启 NetworkManager:

      systemctl restart NetworkManager
  3. 命令行修改状态

    nmcli networking on          # 等价于 NetworkingEnabled=true
    nmcli radio wifi on # 等价于 WirelessEnabled=true
    nmcli radio wwan on

注意:

在 服务器环境,有时会关闭 NetworkManager,改用 systemd-networkd 或者直接写网卡配置文件(比如 /etc/network/interfacesnetplan)。

在 桌面环境,一般必须启用 NetworkManager,否则 Wi-Fi、VPN 等功能不好用。