当前位置: 首页 > article >正文

Bug日记:Linux中systemctl restart network失败问题,网络故障

日期

2023年10月25日


问题描述

在尝试使用 systemctl restart network 重启网络服务时,出现以下错误:

Job for network.service failed because the control process exited with error code.
See "systemctl status network.service" and "journalctl -xe" for details.

环境信息
  • 操作系统:CentOS 7.9
  • 网络服务network.service(传统网络服务)
  • 冲突服务NetworkManager(现代网络管理工具)

错误日志
  1. 查看服务状态

    $ systemctl status network.service
    ● network.service - LSB: Bring up/down networking
       Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
       Active: failed (Result: exit-code) since Wed 2023-10-25 10:00:00 CST; 5min ago
    
  2. 查看详细日志

    $ journalctl -u network.service -xe
    Oct 25 10:00:00 localhost network[1234]: RTNETLINK answers: File exists
    Oct 25 10:00:00 localhost systemd[1]: network.service: control process exited, code=exited status=1
    

分析过程
  1. 初步猜测

    • 网络配置文件错误(如IP冲突、接口名称不匹配)。
    • 服务冲突(networkNetworkManager同时运行)。
  2. 排查步骤

    • 检查配置文件
      cat /etc/sysconfig/network-scripts/ifcfg-eth0
      # 确认ONBOOT=yes,且接口名称与实际一致(如eth0、ens33)
      
    • 查看当前网络接口
      ip a  # 发现实际接口为ens33,但配置文件中仍为eth0
      
    • 检查服务状态
      systemctl is-active NetworkManager  # 发现NetworkManager正在运行
      
  3. 锁定原因

    • NetworkManagernetwork服务同时运行,争夺网络接口控制权。
    • 配置文件中的接口名称(eth0)与实际接口名称(ens33)不一致。

解决方案
  1. 临时解决冲突

    # 停止NetworkManager服务
    sudo systemctl stop NetworkManager
    
    # 重启network服务
    sudo systemctl restart network
    
  2. 修复配置文件

    # 修改接口名称(将eth0改为ens33)
    sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
    
  3. 永久禁用冲突服务(二选一)

    • 方案A:禁用NetworkManager(适合服务器环境)
      sudo systemctl disable NetworkManager
      sudo systemctl enable network
      
    • 方案B:禁用network(适合桌面环境)
      sudo systemctl disable network
      sudo systemctl enable NetworkManager
      

验证结果
  1. 确认服务状态
    systemctl status network.service  # 显示active (running)
    
  2. 测试网络连接
    ping 8.8.8.8  # 成功收到响应
    

预防措施
  1. 统一网络管理工具

    • 服务器环境:使用network.service,禁用NetworkManager
    • 桌面环境:使用NetworkManager,禁用network.service
  2. 配置文件检查清单

    • 接口名称与实际一致(使用ip anmcli device查看)。
    • 确保ONBOOT=yes,避免重启后网络未激活。
  3. 操作前备份

    cp /etc/sysconfig/network-scripts/ifcfg-ens33{,.bak}
    

相关参考资料
  • Red Hat Network Configuration Guide
  • man systemctl:查看服务管理命令详解

备注:下次遇到类似问题,优先检查服务冲突和接口名称一致性!


http://www.kler.cn/a/548370.html

相关文章:

  • IP属地:是否等同于当前登录位置?
  • 【Deepseek】解决Deepseek服务器繁忙的问题
  • leetcode_二叉树 404.左叶子之和
  • Qt文本高亮显示QSyntaxHighlighter
  • python defaultdict用法
  • 【开源免费】基于SpringBoot+Vue.JS文理医院预约挂号系统(JAVA毕业设计)
  • 清华大学:DeepSeek 如何赋能职场应用(35 页 PDF)
  • Flask从基础结构到工作原理的解析
  • Flutter使用gen_l10n实现多语言支持
  • Autojs: 使用 SQLite
  • Spring Boot 原理分析
  • [AI]从零开始的llama.cpp部署与DeepSeek格式转换、量化、运行教程
  • 排序算法之自定义排序函数的含义
  • 闲鱼IP属地是通过电话号码吗?
  • Hami项目开发笔记
  • 使用grafana v11 建立k线(蜡烛图)仪表板
  • 为什么innodb支持事务
  • tkinter-TinUI-xml实战(12)应用组启动器
  • vue-model如何自定义指令,及批量注册自定义指令
  • 【CS.SE】优化 Redis 商户号池分配设计:高并发与内存管理