Systemd
如何使用 systemd-resolved 對 DNS 進行故障排除?
systemd-resolved
為了排除故障,您將如何查找 使用的 DNS 伺服器?一般來說,我可以使用
dig
和測試中所示的 DNS 伺服器/etc/resolv.conf
。(或視窗 -ipconfig /all
+nslookup
)。但是,當 resolv.conf 僅指向環回地址上的本地解析程序守護程序時,該方法不起作用。在 systemd-resolved 下使用什麼方法來顯示它使用的 DNS 伺服器?(
unbound
有我可以查看的配置文件。dnsmasq
也有,但我不確定是否可以在沒有配置文件的情況下動態添加伺服器。即使是 NetworkManager,現在也有nmcli
,我看到您可以查詢nmcli d show wlan0
以顯示介面的 DNS 配置。 )
使用
resolvectl status
(systemd-resolve --status
當使用早於239的 systemd 版本時)顯示您的全域和每個連結的 DNS 設置。
對故障排除非常有幫助的還有:
journalctl -u systemd-resolved -f
在那裡你可以看到
systemd-resolved
真正在做什麼。就我而言,它根本沒有聯繫通過報告的 DNS 伺服器systemd-resolve --status
。如果它正在做這樣奇怪的事情,那麼有時通過重啟sudo systemctl restart systemd-resolved
是個好主意。編輯:
為了從您那裡獲得更多資訊,
resolved
您需要輸入[Service] Environment=SYSTEMD_LOG_LEVEL=debug
進入
override.conf
通systemd-resolved
孔sudo systemctl edit systemd-resolved
重啟生效:
sudo systemctl restart systemd-resolved
編輯2:
不要忘記事後回复這一點,因為@bmaupin 和@Aminovic 在評論中很有幫助地指出。
sudo systemctl revert systemd-resolved sudo systemctl restart systemd-resolved