Centos9 Name or service not known
在 CentOS 9 中,出现 Name or service not known 的错误通常与 DNS 解析或主机名配置有关。以下是可能的原因及解决方法:
- 检查网络连接
- 确认你的机器是否有正常的网络连接:
ping 8.8.8.8
-
如果可以 ping 通,说明网络连接正常,问题可能出在 DNS 配置。
-
检查 DNS 配置
- 确认 /etc/resolv.conf 文件是否正确配置了 DNS 服务器:
cat /etc/resolv.conf
- 如果 DNS 服务器不可用,可以将其更改为公共 DNS,例如 Google DNS:
nameserver 8.8.8.8
nameserver 8.8.4.4
# 或者使用阿里云的公共 DNS
nameserver 223.5.5.5
nameserver 223.6.6.6
- 保存后,测试解析:
ping www.google.com
- 检查主机名解析
- 确保 /etc/hosts 文件中正确配置了本地主机名:
cat /etc/hosts
- 至少应该有类似以下的内容:
127.0.0.1 localhost
::1 localhost
- 检查主机名配置
- 查看当前主机名:
hostnamectl status
- 如果主机名设置错误或未解析,修改为有效主机名:
sudo hostnamectl set-hostname your-hostname
- 检查防火墙和 SELinux
- 确认防火墙或 SELinux 没有阻止 DNS 流量:
sudo firewall-cmd --list-all
sudo getenforce
- 如果启用了 SELinux,临时将其设置为宽松模式,测试问题是否解决:
sudo setenforce 0
- 如果是防火墙问题,允许 DNS 流量通过:
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload
- 检查系统包
- 确保必要的软件包已安装:
sudo dnf install -y glibc glibc-common bind-utils
- 测试具体域名解析
- 使用 nslookup 或 dig 检查域名解析:
nslookup www.google.com
dig www.google.com
如果解析失败,问题通常与 DNS 配置相关。
- 重启网络服务
- 如果修改了配置文件,重启网络服务:
sudo systemctl restart NetworkManager
sudo systemctl restart systemd-resolved