
我的 Debian 安裝使用的是systemd-resolved
NetworkManager。對於我的家庭連接,我已配置 NetworkManager 以設定要使用的 DNS 伺服器:
$cat /etc/NetworkManager/system-connections/my-wifi-ssid.nmconnection
...
[ipv4]
dns=10.30.20.1;1.1.1.1;8.8.8.8;
ignore-auto-dns=true
method=auto
...
基本上我想10.30.20.1
預設使用我的現場 DNS 伺服器,並讓其他兩個伺服器僅用於後備。
問題是,活動/使用的伺服器似乎是隨機選擇的:
$resolvectl status
Link 4 (wlp3s0)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 1.1.1.1
DNS Servers: 10.30.20.1 1.1.1.1 8.8.8.8
請注意,我發現這三個都處於活動狀態,但並不一致。有沒有辦法強制 systemd-resolved 優先選擇 NetworkManager 先列出的伺服器?
答案1
即使配置了靜態 DNS 伺服器,NetworkManager 偶爾也會刪除所有這些伺服器並且使它們不再運作。此外,它還會隨著網路介面的開啟和關閉而更改您的 DNS 伺服器。 NetworkManager 中似乎沒有辦法關閉其動態管理。
另一個解決方案是完全停用 DNS 的動態管理。您可以透過刪除/etc/resolv.conf
符號連結並將其替換為靜態的真實檔案來完成此操作。像這樣的事情會起作用:
nameserver 10.30.20.1
nameserver 1.1.1.1
nameserver 8.8.8.8
此文件中還有 NetworkManager 自動新增的其他設置,您可能還需要複製這些設定。