Ubuntu 16.10 启动时 networking.service 缓慢问题

一、问题概述

  • 现象 :Ubuntu 16.10 系统启动时,networking.service 耗时超 5 分钟,导致整体开机流程严重延迟。
  • 定位工具 :通过 systemd-analyze blame 命令确认,networking.service 是启动过程中的主要耗时服务。

二、核心原因

  1. 接口配置模式冲突 :/etc/network/interfaces 中接口配置为 auto(开机强制启动该接口),若接口未物理连接(如网线未插)或无法就绪,系统会等待超时(默认5分钟)。
  2. 默认超时时间过长 :networking.service 默认 TimeoutStartSec=5min,即使无实际网络需求,也会等待超时后才继续启动流程。
  3. 特定接口阻塞 :未配置或非关键的网络接口(如未设置的无线接口)导致 systemd-networkd-wait-online.service 等待所有接口就绪,引发阻塞。

三、解决方案(按有效性优先级排序)

方案1:修改接口配置(推荐,最高用户验证率)

  • 操作步骤 :
    1. 编辑网络配置文件:sudo nano /etc/network/interfaces
    2. 将接口配置中的 auto 改为 allow-hotplug(例:auto eth0 → allow-hotplug eth0)
    3. 保存退出,无需重启即可生效(下次启动自动应用)。
  • 原理 :allow-hotplug 仅在接口物理连接时启动,避免无连接时的超时等待。
  • 效果 :多个用户反馈,networking.service 耗时从 5 分钟降至 1~41 秒,适用于 Ubuntu 16.10/18.04/20.04/22.04 等版本。

方案2:缩短服务超时时间(快速 workaround)

  • 操作步骤 :
    1. 编辑 networking.service 配置:sudo systemctl edit networking.service

    2. 在打开的文件中添加以下内容(确保在 [Service] 段下):

      ini 复制代码
      [Service]
      TimeoutStartSec=10sec
    3. 保存退出,执行 sudo systemctl daemon-reload 生效。

  • 原理:将默认 5 分钟超时缩短为 10 秒,强制终止无响应的等待流程。
  • 注意 :避免直接编辑 /lib/systemd/system/networking.service,否则系统更新会覆盖修改。

方案3:优化 systemd-networkd-wait-online.service(针对特定接口阻塞)

  • 适用场景:因未配置的无线接口等非关键接口导致阻塞。
  • 操作步骤 :
    1. 编辑服务配置文件:sudo nano /lib/systemd/system/systemd-networkd-wait-online.service
    2. 修改 ExecStart 行,添加以下参数之一:
      • 缩短超时:ExecStart=/lib/systemd/systemd-networkd-wait-online --timeout=10(超时设为10秒)
      • 忽略特定接口:ExecStart=/lib/systemd/systemd-networkd-wait-online --ignore=接口名(例:--ignore=int_wlan0)
    3. 保存退出,执行 sudo systemctl daemon-reload 生效。
  • 原理:要么缩短等待超时,要么忽略非关键接口,避免阻塞启动流程。

四、验证方法

  1. 查看启动总耗时:systemd-analyze time
  2. 定位耗时服务:systemd-analyze blame(确认 networking.service 耗时是否降低)
  3. 观察启动流程:重启系统,验证是否无明显延迟。

五、关键结论

  • 最优解为 方案1 (auto 改 allow-hotplug),从根源解决接口等待问题,兼容性强。
  • 方案2 适合快速临时解决,方案3 针对特定接口阻塞场景。
  • 该问题在 Ubuntu 16.10 及后续多个版本中存在,解决方案可跨版本复用。
相关推荐
爱吃香菜的初学者26 分钟前
十四.Linux——消息队列
linux·运维·开发语言
缘友一世1 小时前
GLM5.3 flash cybersec本地部署[5]:生产运维与故障恢复
ubuntu·vllm·glm5.3 flash
Apipi*7 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP8 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
广州浮点FLOATLIC11 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
BLUcoding11 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
AIgorithmGEEK11 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil20811 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)11 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障
mounter62511 小时前
从硬件互连到操作系统变革:CXL 技术演进与 Linux 内核工程挑战
linux·运维·服务器