resolvconf 在 Ubuntu 中的更新机制主要依赖于 systemd-resolved 服务。systemd-resolved 是一个用于处理 DNS 解析的服务,它取代了传统的 resolvconf 工具。systemd-resolved 使用一个名为 DNS 的单元文件来管理 DNS 解析设置。
以下是 resolvconf 在 Ubuntu 中的更新机制:
systemd-resolved 会读取 /etc/resolv.conf 文件中的 DNS 服务器设置。systemd-resolved 会根据 /etc/systemd/resolved.conf 文件中的配置以及 /etc/NetworkManager/system-connections/*.nmconnection 文件中的网络连接设置来自动配置 DNS 解析器。NetworkManager 会通知 systemd-resolved 更新 DNS 设置。systemd-resolved 会将更新后的 DNS 设置写入 /run/systemd/resolved/stub-resolv.conf 文件,该文件是 /etc/resolv.conf 文件在系统启动时的临时副本。systemd-resolved 会将 /run/systemd/resolved/stub-resolv.conf 文件中的 DNS 设置复制回 /etc/resolv.conf 文件。resolvconf 命令手动更新 /etc/resolv.conf 文件中的 DNS 设置,但这通常不是推荐的做法,因为它可能导致网络连接问题。相反,建议使用 systemd-resolved 服务来管理 DNS 解析设置。总之,resolvconf 在 Ubuntu 中的更新机制主要依赖于 systemd-resolved 服务。当网络连接状态发生变化时,systemd-resolved 会自动更新 DNS 解析设置,并将这些设置写入 /etc/resolv.conf 文件。