Ubuntu 22.04 - 8.8.8.8 DNS 已在服务器上设置,但未在 resolve.cnf 中设置

Ubuntu 22.04 - 8.8.8.8 DNS 已在服务器上设置,但未在 resolve.cnf 中设置

这是/etc/resolv.conf

nameserver 127.0.0.53
options edns0 trust-ad
search .

resolvectl status然而,

Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub

Link 2 (ens160)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 8.8.8.8
       DNS Servers: 8.8.8.8

我没有设置任何东西,但它打印了8.8.8.8。我想知道为什么会发生这样的事情。服务器必须向仅接受某些 IP 范围的域发送请求,而我无法做到这一点。它报告错误AWS HTTP error: cURL error 28: Failed to connect to xxxxx.com

答案1

看起来您正在使用 systemd 解析为本地 DNS 缓存。这就是 /etc/resolv.conf 的内容指向环回设备的原因。这是 systemd 守护进程监听 DNS 请求的地方。

这是 Ubuntu 桌面版的标准行为,我想,也适用于服务器吧?有谁能在这里详细说明一下。

这与其他守护进程(例如 dnsmasq)的设置类似,与 resolvconf 脚本结合可以执行相同的操作。

我猜测您的服务器已经通过网络上的 DHCP 获得了其配置。

但是请尝试查看 /etc/systemd 中 systemd 的配置文件,以查看 Googles 8.8.8.8 是否在某处设置。

在这样的讨论线程中进入 systemd 中的网络配置可能会适得其反 - 这是一个相当大的话题。我建议您从 linode 上的此类资源开始,并将其与您当前的配置进行比较。

https://www.linode.com/docs/products/compute/compute-instances/guides/systemd-networkd/

相关内容