麒麟os网络服务“failed to start”需逐层定位:一、确认服务类型(network或networkmanager);二、用systemctl list-units --state=failed筛查失败单元;三、依类型分别处理配置、ssl库、dns依赖等问题;四、用nmcli、ping、nslookup验证修复效果。

麒麟OS系统启动时网络服务报“Failed to start”错误,说明systemd在加载network或NetworkManager服务过程中被中断,常见于配置冲突、依赖缺失、SSL库版本错位或单元文件损坏。必须按失败路径逐层定位,不能跳过筛查步骤直接重启。
第一步:确认当前网络管理服务类型
执行ip addr查看主网卡名(如ens33);再运行ls /etc/init.d/ | grep -E "(network|networking)"。若输出含network,说明是SysVinit模式;若返回空,但systemctl list-unit-files | grep NetworkManager显示enabled,则为NetworkManager模式。【跳过这步会导致后续命令报“Unit not found”或静默失败】
第二步:筛查所有失败的服务单元
打开终端,执行:
systemctl list-units --state=failed
重点看输出中是否包含network.service、NetworkManager.service、systemd-resolved.service等条目。若出现多个失败项,优先处理最上游的依赖服务(如dbus、systemd-resolved),否则重试network相关操作仍会失败。
第三步:针对不同失败服务分别处理
方法一:network.service失败(SysVinit模式)
1、检查配置文件语法:
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33(将ens33替换为实际网卡名),确认ONBOOT=yes且无多余空格或中文符号。
2、验证IP配置合法性:
若设静态IP,确保IPADDR、NETMASK、GATEWAY三者不冲突;若为DHCP,删除IPADDR等行,仅保留BOOTPROTO=dhcp。
3、强制重启服务:
sudo systemctl restart network
方法二:NetworkManager.service失败(主流模式)
1、先查失败原因摘要:
systemctl status NetworkManager | grep "Failed\|error\|denied"
2、若报ssl version mismatch或libssl.so.1.1: cannot open shared object file,说明OpenSSL路径冲突:
编辑/etc/ld.so.conf,注释掉/usr/local/openssl-1.1.1v/lib这一行;
执行sudo ldconfig刷新动态库缓存;
再执行sudo systemctl restart NetworkManager。
3、若报Connection 'Wired connection 1' is not available,说明连接定义文件损坏:
删掉/etc/NetworkManager/system-connections/下对应连接的文件(如Wired\ connection\ 1),然后重新通过图形界面创建连接。
方法三:systemd-resolved.service失败
该服务失败会导致DNS解析链断裂,连带NetworkManager无法完成连通性检测。
执行sudo systemctl stop systemd-resolved → sudo systemctl disable systemd-resolved → 编辑/etc/NetworkManager/NetworkManager.conf,在[main]段下添加dns=none → 保存后执行sudo systemctl restart NetworkManager。
第四步:验证修复效果
执行nmcli device show ens33 | grep IP4.ADDRESS确认已获取有效IP;
执行ping -c 2 114.114.114.114测试网络层连通性;
执行nslookup www.baidu.com验证DNS解析是否生效。











