在CentOS中,SELinux可能通过限制网络访问或文件权限导致域名解析问题,以下是排查及解决方法:
一、检查SELinux状态
- 查看当前SELinux模式:
sestatus
若显示Enforcing,表示处于强制模式,可能限制DNS解析。
二、临时调整SELinux策略
- 临时关闭SELinux(仅用于测试):
sudo setenforce 0
若关闭后域名解析正常,说明问题由SELinux引起。
三、永久修改SELinux配置
- 编辑配置文件:
sudo vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=permissive或SELINUX=disabled,重启后生效。
注意:生产环境建议保留permissive模式,避免完全关闭安全机制。
四、针对DNS解析的SELinux策略调整
- 若需保留
Enforcing模式,可添加特定策略允许DNS请求:
sudo setsebool -P httpd_can_network_connect 1
(适用于Web服务相关的DNS解析场景)。
五、验证DNS解析
- 使用命令测试解析是否正常:
nslookup example.com或dig example.com
若解析成功,说明问题已解决。
其他注意事项
- 检查
/etc/resolv.conf文件,确保DNS服务器配置正确。 - 确保防火墙允许DNS流量(UDP/TCP 53端口)。
- 若使用
NetworkManager管理网络,需通过nmcli工具配置永久DNS。
参考来源: