Linux
為什麼不使用我的本地 DNS?
我剛剛安裝
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 遠離。