找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3269

积分

0

好友

435

主题
发表于 昨天 10:48 | 查看: 4| 回复: 0

在进行云原生环境搭建时,尤其是在虚拟机中操作,偶尔会遇到非正常关机(如强制断电)的情况。最近就遇到了这样一个问题:一台 CentOS 7 虚拟机在异常断电重启后,桌面右上角的网络连接图标消失了。使用 ifconfig 命令检查,发现本应存在的 ens32 网卡也不见了,这直接导致了 SSH 无法连接,给后续操作带来了不便。

别担心,这个问题通常是由于异常关机导致 NetworkManager 的服务状态或网卡配置文件损坏所致。下面是一套行之有效的修复步骤,你可以逐条执行来恢复网络连接。

核心修复步骤

以下命令需要以 root 权限执行。如果当前无法通过 SSH 连接,请直接在虚拟机本地终端操作。

# 1. 停止NetworkManager,清理旧配置
sudo systemctl stop NetworkManager
sudo rm -rf /var/lib/NetworkManager/*
sudo rm -f /etc/udev/rules.d/70-persistent-net.rules

# 2. 强制修改NetworkManager主配置,取消所有未托管限制
sudo tee /etc/NetworkManager/NetworkManager.conf << EOF
[main]
plugins=ifcfg-rh,keyfile
dns=none
managed=true
[ifcfg-rh]
[keyfile]
unmanaged-devices=none
EOF

# 3. 重新加载udev规则,修复硬件识别
sudo udevadm control --reload-rules && sudo udevadm trigger
sudo modprobe -r e1000e && sudo modprobe e1000e

# 4. 启动NetworkManager,强制标记ens32为托管
sudo systemctl start NetworkManager && sudo systemctl enable NetworkManager
sudo nmcli device set ens32 managed yes

# 5. 删除旧无效连接,重建ens32并启动
sudo nmcli connection delete ens32 2>/dev/null
sudo nmcli connection add type ethernet con-name ens32 ifname ens32 autoconnect yes ipv4.method auto ipv6.method ignore
sudo nmcli connection up ens32

# 6. 验证修复结果
nmcli device status | grep ens32
ip addr show ens32

步骤解读与注意事项

  1. 停止与清理:第一步是停止 NetworkManager 服务,并清除其可能已损坏的运行时状态文件和旧的网络设备持久化规则。这为后续的重建提供了一个干净的环境。

  2. 重置配置:通过写入一个新的 NetworkManager.conf 配置文件,我们确保 managed=trueunmanaged-devices=none。这强制 NetworkManager 接管所有网络设备,包括可能因配置错误而被标记为“未托管”的 ens32 网卡。对于不熟悉 Linux 网络/系统管理的用户,理解 NetworkManager 的“托管”状态是关键。

  3. 重载硬件udev 是管理设备节点的系统服务。重载其规则并重新触发,可以确保系统重新识别网卡硬件。随后卸载并重新加载网卡驱动模块(例如 e1000e,这是虚拟机和部分物理机常见的驱动),相当于对网卡进行了一次“软重启”。

  4. 启用并托管:重新启动并设置开机自启 NetworkManager 服务。紧接着,使用 nmcli 命令明确告诉 NetworkManager:“请托管 ens32 这个设备”。nmcli 是管理 NetworkManager 的强大命令行工具,掌握它对于运维/DevOps/SRE工作非常有帮助。

  5. 重建连接:删除可能残留的、无效的 ens32 连接配置(如果存在),然后创建一个新的以太网连接。这里我们配置为自动获取IP(DHCP),并忽略IPv6以简化过程。最后,立即启动这个新连接。

  6. 结果验证:最后两条命令用于确认修复是否成功。第一条查看 ens32 设备的状态,应该是 connected;第二条则显示 ens32 网卡是否成功获取到了IP地址。

执行完上述所有步骤后,桌面右上角的网络图标通常就会重新出现,SSH 服务也可以正常连接了。不过需要注意,由于网络连接被重建,系统获取的IP地址可能和之前的不一样,记得使用 ip addr 命令查看一下新的IP。

如果在操作过程中遇到其他问题,或者想探讨更多关于系统稳定性和故障排查的经验,欢迎来 云栈社区 的技术论坛交流讨论。




上一篇:网络工程师软考核心:TCP三次握手与四次挥手详解及故障排查指南
下一篇:内推求职避坑指南:如何高效找到对的人,避开常见误区
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-25 07:36 , Processed in 0.422832 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表