现象描述:
今日尝试通过远程开发方式连接 Ubuntu 系统时,发现网络无法正常连接,进一步检查发现 Ubuntu 系统托盘中的有线网络图标已消失。
问题原因:
在 Ubuntu 系统中,NetworkManager 服务负责网络连接的管理与维护。当有线网络图标消失时,通常是由于 NetworkManager 的配置文件或缓存数据出现问题,导致其无法正确显示或管理有线网络连接状态。
删除 NetworkManager 的缓存文件后,该服务将自动重新生成配置文件与缓存,从而恢复正常的网络连接管理功能。这包括检测可用网络接口、配置网络参数以及显示连接状态等操作。因此,清理缓存后,有线网络图标可能会重新显示,系统也能够正常识别和管理有线网络连接。
解决步骤
第一步:清理 NetworkManager 缓存
依次执行以下命令以清理缓存并重启服务:
- 停止 NetworkManager 服务
NetworkManager 是 Linux 系统中管理网络连接(如 Wi-Fi、以太网等)的核心服务。停止该服务后,系统将断开当前网络连接,且无法自动管理网络(需手动干预)。
sudo service NetworkManager stop
# 或在较新系统(如 CentOS 7+/Ubuntu 16.04+)中推荐使用:
sudo systemctl stop NetworkManager
- 删除 NetworkManager 状态文件
该文件(NetworkManager.state
)记录了 NetworkManager 的当前状态(如是否启用联网)。删除此文件将强制重置 NetworkManager 的状态,通常用于解决以下问题:
- 网络状态被错误禁用(如显示
Networking disabled
且无法启用)。 - NetworkManager 自身状态混乱或崩溃。
- 删除后,NetworkManager 将以默认状态重新启动(默认通常启用联网)。
sudo rm /var/lib/NetworkManager/NetworkManager.state
- 重新启动 NetworkManager 服务。
- 重启后,NetworkManager 会重新加载配置并尝试自动连接网络。
sudo service NetworkManager start
# 或在新系统中更推荐使用:
sudo systemctl start NetworkManager
执行上述三条命令后:
- 网络管理服务(NetworkManager)将以“初始状态”重新运行。
- 如果之前因状态文件损坏导致的网络问题,此操作可能修复问题。
第二步:修改 NetworkManager 配置文件
编辑 NetworkManager 的主配置文件以确保其正确管理网络接口:
- 打开配置文件:
sudo vim /etc/NetworkManager/NetworkManager.conf
找到 managed=false
并修改为 managed=true
:
- 若设为
false
,NetworkManager 将忽略/etc/network/interfaces
中定义的非回环接口(默认行为)。 - 若设为
true
,NetworkManager 将接管所有接口。
修改后的配置示例如下:
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=true
[device]
wifi.scan-rand-mac-address=no
第三步:重启 NetworkManager 服务
- 查看当前正在运行的网络服务:
systemctl list-unit-files | grep network
- 根据系统实际使用的网络管理服务,执行对应的重启命令。例如,若系统使用
systemd-networkd
服务,则执行:
sudo systemctl restart systemd-networkd.service
第四步:恢复网络图标并开启连接
- 点击右上角系统托盘中的网络图标,进入 「有线设置」 界面。
- 开启有线连接,确保网络连接恢复正常。
- 如果开启有线后仍然没有网络,那么可以查看 IPv4 地址的获取方式。如果设置为「手动」方式,需要自行切换为「自动」方式。设置完毕后,重新关闭再开启有线连接,以使得设置生效:
总结
通过清理 NetworkManager 缓存、修改配置文件以及重启相关服务,通常可以解决 Ubuntu 系统中网络图标消失及无法连接网络的问题。若问题仍未解决,建议进一步检查系统日志或考虑其他网络配置问题。