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配置打架了:- 先禁用cloud-init的网络管理功能:如果
/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg这个文件不存在,就新建它,里面只写一行:network: {config: disabled} - 把那个cloud-init的netplan文件备份起来,避免它继续捣乱:
sudo mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak - 应用新的网络配置:
sudo netplan generate && sudo netplan apply
- 先禁用cloud-init的网络管理功能:如果
修复你的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服务的等待逻辑
如果刚才查到就是这个服务在超时,那我们可以给它改改规则,别让它瞎等:- 编辑这个服务的配置:
sudo systemctl edit systemd-networkd-wait-online.service - 在弹出的编辑窗口里输入:
意思是只等enp0s31f6接口的IPv4就绪,不等其他无关的配置[Service] ExecStart= ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=enp0s31f6 --ipv4 - 保存退出后,重启服务或者直接重启服务器试试
要是你完全不需要等网络就绪再启动其他服务,也可以直接禁用这个服务:sudo systemctl disable systemd-networkd-wait-online.service,不过这个方法是下策,万一有服务依赖网络就绪的话可能出问题。
- 编辑这个服务的配置:
验证效果
改完所有配置后,记得跑sudo netplan generate && sudo netplan apply,然后重启服务器,再用systemd-analyze blame看看启动耗时,应该就能解决那个2分钟的延迟了。
备注:内容来源于stack exchange,提问作者mrob




