You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 22.04.4 LTS无头服务器升级后启动出现2分钟网络配置等待延迟的解决办法咨询

Ubuntu 22.04.4 LTS无头服务器升级后启动出现2分钟网络配置等待延迟的解决办法咨询

Hey 老兄,你遇到的这个2分钟启动延迟十有八九是网络相关服务在超时等待,我给你捋几个排查和解决的方向,你一步步试试:

  • 先揪出拖慢启动的元凶
    先跑个命令看看启动时哪个服务耗时最长:sudo systemd-analyze blame,重点盯紧网络相关的服务,比如systemd-networkd-wait-online.service——这个服务经常会因为网络配置不对,硬等2分钟超时,大概率就是它搞的鬼。

  • 处理cloud-init的冲突配置
    你提到的/etc/netplan/50-cloud-init.yaml绝对是个潜在的麻烦点,cloud-init的网络配置很可能和你自己写的静态IP配置打架了:

    1. 先禁用cloud-init的网络管理功能:如果/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg这个文件不存在,就新建它,里面只写一行:network: {config: disabled}
    2. 把那个cloud-init的netplan文件备份起来,避免它继续捣乱:sudo mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
    3. 应用新的网络配置:sudo netplan generate && sudo netplan apply
  • 修复你的netplan配置里的过时语法
    你配置里用的gateway4在新版netplan里已经被废弃了,这很可能触发兼容性问题导致超时,赶紧换掉:
    把原来的gateway4: 10.0.1.1删掉,换成下面的路由配置:

    routes:
      - to: default
        via: 10.0.1.1
    

    另外,你的IPv6地址是/128的单播地址,要是你暂时用不上IPv6,不如先把IPv6的配置段注释掉,看看延迟会不会消失,排除IPv6的问题。

  • 调整systemd-networkd-wait-online服务的等待逻辑
    如果刚才查到就是这个服务在超时,那我们可以给它改改规则,别让它瞎等:

    1. 编辑这个服务的配置:sudo systemctl edit systemd-networkd-wait-online.service
    2. 在弹出的编辑窗口里输入:
      [Service]
      ExecStart=
      ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=enp0s31f6 --ipv4
      
      意思是只等enp0s31f6接口的IPv4就绪,不等其他无关的配置
    3. 保存退出后,重启服务或者直接重启服务器试试
      要是你完全不需要等网络就绪再启动其他服务,也可以直接禁用这个服务:sudo systemctl disable systemd-networkd-wait-online.service,不过这个方法是下策,万一有服务依赖网络就绪的话可能出问题。
  • 验证效果
    改完所有配置后,记得跑sudo netplan generate && sudo netplan apply,然后重启服务器,再用systemd-analyze blame看看启动耗时,应该就能解决那个2分钟的延迟了。

备注:内容来源于stack exchange,提问作者mrob

火山引擎 最新活动