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
文件。