Arch VPS重启后断网
By swhr • 3 minutes read •
bug
大妈的一台vps安装的是面板提供的arch镜像,一直在滚动更新。2026年4月10日维护后发现连不上,只能通过后台console进入。发现没有获取到ip。
tldr
1.2-1版本的netplan包1 引入了两个有影响的改动2:
- generate/configure 被分开,导致需要手动enable
netplan-configure.service,否则不会生成networkd的运行时配置 systemd-networkd-wait-online增加了--dnsflag,导致其依赖于system-resolved.service
解决方法:
sudo systemctl enable --now netplan-configure.service
sudo systemctl unmask systemd-resolved && sudo systemctl enable --now systemd-resolved解决过程
- 检查网卡名字变化
- 没有变化
- 检查失败的systemd服务
- 只有
systemd-networkd-wait-online.service
- 只有
- 手动写了
/etc/systemd/network/20-wired.network,通过DHCP获取了地址- 后缀名重要
- 奇怪之前的配置为什么不需要手动干预
- 发现cloud-init
/var/lib/cloud/下有获取的配置信息- 之前是静态分配的ip
- 知道了 datasource 和 renderer 的概念
- 为什么现在没有被render
systemd-networkd-wait-online.service的log里有Failed to connect to io.systemd.Resolve.Monitorsystemctl cat和 service 文件不一致- 发现 systemctl generator 和 drop-in
- 被
netplan的generator修改了,增加了--dns的flag - enable 了
systemd-resolvd.service - 知道了 netplan,发现
/etc/netplan/50-cloud-init.yaml,之前的 renderer 应该是 netplannetplan apply后成功生成/run/systemd/network/下的配置,- 但是重启后不会自动生成
paru -Ql netplan | rg service发现netplan-configure.service- 启用后正常,问题解决
- 去netplan项目页找更新日志,结合vps的重启记录,发现是4月2日的更新引入新版 netplan,而
netplan-configure.service当时未启用,4月10号维护的重启只不过是提前暴露了问题
- 发现cloud-init