这是/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/