Linux服务器系统的 /etc/resolv.conf指向错误,无法访问外部域名(有z.ai回答)

服务器报错如下:

[root@VM-0-6-opencloudos ~]# sudo dnf install -y nsd
BaseOS 9 - x86_64                                                                                                   0.0  B/s |   0  B     00:00    
Errors during downloading metadata for repository 'BaseOS':
  - Curl error (6): Couldn't resolve host name for https://mirrors.opencloudos.tech/opencloudos/9/BaseOS/x86_64/os/repodata/repomd.xml [Could not resolve host: mirrors.opencloudos.tech]
  - Curl error (6): Couldn't resolve host name for http://mirrors.tencentyun.com/opencloudos/9/BaseOS/x86_64/os/repodata/repomd.xml [Could not resolve host: mirrors.tencentyun.com]
Error: Failed to download metadata for repo 'BaseOS': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

Z.AI回答如下:

这个报错和 NSD 没有任何关系,核心问题是:你的服务器本身的 DNS 解析功能瘫痪了
服务器无法把 mirrors.opencloudos.tech 翻译成 IP 地址,所以 dnf 无法下载软件包。

原因分析

之前你安装并运行了 Technitium DNS,它接管了服务器的 53 端口,同时系统的 /etc/resolv.conf 很可能指向了 127.0.0.1(让本机的 Technitium 来负责解析)。
现在 Technitium 被卸载了,本机 53 端口已经没有程序在监听了,但 /etc/resolv.conf 还在傻傻地问本地要答案,所以所有域名都解析不了。

修复方法(30秒搞定)

让服务器临时使用公共 DNS(如腾讯云内网 DNS 或 Google DNS)来解析:
第一步:检查当前配置

cat /etc/resolv.conf

你大概率会看到里面只有 nameserver 127.0.0.1 或者内容为空。
第二步:写入公共 DNS

sudo bash -c 'echo -e "nameserver 10.53.53.53\nnameserver 223.5.5.5" > /etc/resolv.conf'

注:10.53.53.53 是腾讯云内网 DNS,在你的腾讯云服务器上解析最快、最稳定。223.5.5.5 是阿里云公共 DNS 作为备用。
第三步:验证网络是否恢复

ping -c 3 baidu.com

如果能通,说明 DNS 已恢复。
第四步:重新安装 NSD

sudo dnf install -y nsd

第五步:防止重启后再出问题(关键)
OpenCloudOS 9 默认使用 NetworkManager 管理网络,重启后可能会覆盖你手动写的 resolv.conf。需要固化 DNS 设置:

# 查看你的网卡名称(通常是 eth0 或 ens33)
nmcli connection show
# 假设网卡名是 eth0,设置 DNS(如果不是 eth0,请替换)
sudo nmcli connection modify eth0 ipv4.dns "10.53.53.53 223.5.5.5"
sudo nmcli connection modify eth0 ipv4.ignore-auto-dns yes
sudo nmcli connection up eth0

安装完 NSD 后的注意事项

NSD 是权威 DNS 服务器,它只负责回答"我管理的域名怎么解析",不负责帮你解析百度、淘宝等互联网域名
所以安装完 NSD 后,/etc/resolv.conf 必须保持指向公共 DNS(如 10.53.53.53),不能改成 127.0.0.1,否则你的服务器又会无法上网。
两者分工如下:

角色 负责什么 监听端口
NSD 解析你自己的 300 个域名 53 端口(对外的)
公共 DNS 服务器自己上网查资料 写在 resolv.conf 里
现在去执行第二步和第四步吧,应该能顺利装上 NSD 了。
posted @ 2026-05-02 19:16  POTUS88  阅读(5)  评论(0)    收藏  举报