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