我刚刚安装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
显然(在 GCP 机器上)命令每次都会
sudo systemctl restart NetworkManager.service
覆盖并且我的名称服务器丢失了。不知道为什么,但这是一个不同的问题。/etc/resolv.conf
默认情况下,NetorkManager 正在运行,它将
/etc/resolv.conf
使用通过 DHCP 接收到的设置进行写入。当您运行本地 DNS 服务器时,您不希望这样,并且您基本上希望始终使用 127.0.0.1 作为名称服务器。你需要告诉 NetworkManager 你想要这样:
添加
/etc/NetworkManager/conf.d/90-dns-none.conf
与和问题
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 远离。确保您的本地 DNS 可以解析域。
dig
您可以通过以下命令测试您的本地 DNS 服务器:如果它有效,请打开此文件:
/etc/sysconfig/network-scripts/ifcfg-eXX
并将您的本地 DNS 服务器添加到此文件:
然后重新启动您的 NetworkManager。它将更新您的 /etc/resolv.conf 文件。
在 Centos7 上重新启动时保留 /etc/resolve.conf 添加#prevents DHCP 覆盖 /etc/resolv.conf 文件
对等DNS=否
到 /etc/sysconfig/network-scripts/ifcfg-adapter_name_file
来源:Negus 的 Linux 圣经