Linux

為什麼不使用我的本地 DNS?

  • February 21, 2021

我剛剛安裝bind在 CentOS 8 上,使用:linuxapt.com/blog/caching-dns-server-on-centos-8 和 nslookup google.com` 顯示:

Server:         169.254.169.254
Address:        169.254.169.254#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.15.78
Name:   google.com
Address: 2607:f8b0:4004:810::200e

綁定配置:

listen-on port 53 { 127.0.0.1; any; };
allow-query { localhost; any; };
allow-query-cache { localhost; any; };
recursion yes;

169.254.169.254 不是我的 IP。我錯過了什麼嗎?

編輯我的 /etc/hosts 中有這個169.254.169.254 metadata.google.internal # Added by Google- 我不明白它如何影響 dns

解析配置:


# Generated by NetworkManager
search us-east4-c.c.haawks.internal c.haawks.internal google.internal
nameserver 169.254.169.254

預設情況下,NetorkManager 正在執行,它將/etc/resolv.conf使用通過 DHCP 接收到的設置進行寫入。

當您執行本地 DNS 伺服器時,您不希望這樣,並且您基本上希望始終使用 127.0.0.1 作為名稱伺服器。你需要告訴 NetworkManager 你想要這樣:

添加/etc/NetworkManager/conf.d/90-dns-none.conf

[main]
dns=none

和問題systemctl reload NetworkManager。另請參閱man NetworkManager.conf

之後/etc/resolv.conf根據自己的喜好進行編輯。


順便說一句,您也可以將文件標記為只讀,chattr -i /etc/resolv.conf後跟systemctl reload NetworkManager. 類似的結果。

或者,您可以將/etc/resolv.conf實際文件的符號連結替換為nameserver 127.0.0.1,後跟systemctl reload NetworkManager. 這也告訴 NetworkManager 遠離。

引用自:https://serverfault.com/questions/1051179