Systemd

如何使用 systemd-resolved 對 DNS 進行故障排除?

  • April 4, 2022

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 statussystemd-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.confsystemd-resolved

sudo systemctl edit systemd-resolved

重啟生效:

sudo systemctl restart systemd-resolved

編輯2:

不要忘記事後回复這一點,因為@bmaupin 和@Aminovic 在評論中很有幫助地指出。

sudo systemctl revert systemd-resolved
sudo systemctl restart systemd-resolved

引用自:https://unix.stackexchange.com/questions/328131