centos设置dns无法解析域名

检查/etc/resolv.conf配置,重启network服务,确认防火墙未拦截DNS,确保

CentOS 设置 DNS 无法解析域名的详细排查与解决方案

问题现象描述

CentOS 系统中配置 DNS 后,可能出现以下典型问题:

  • 能访问 IP 地址但无法解析域名(如 ping google.com 提示未知主机)
  • 使用 nslookupdig 命令返回超时或无响应
  • 部分域名可解析,其他域名无法解析
  • 刚配置时正常,后续突然无法解析

常见原因分类

原因分类 触发场景
网络连通性问题 服务器未接入互联网/DNS 服务器不可达
DNS 配置错误 /etc/resolv.conf 文件配置错误或未生效
服务未运行 DNS 客户端服务(如 NetworkManager、systemdresolved)未启动或异常
防火墙拦截 firewalld/iptables 阻止了 DNS 请求端口(UDP 53)
SELinux 限制 SELinux 策略阻止 DNS 查询请求
缓存污染 DNS 缓存中存在错误记录
软件冲突 多个 DNS 服务(如 systemdresolved 与 NetworkManager)冲突

系统性排查步骤

基础网络连通性检查

# 检查默认网关连通性
ping c 3 <默认网关IP>      # ping 192.168.1.1
# 测试外部网络连通性
ping c 3 8.8.8.8           # Google公共DNS IP
ping c 3 www.baidu.com      # 测试域名解析基础功能

故障表现

  • 默认网关无法 ping 通:网络路由配置错误
  • 8.8.8 无法 ping 通:服务器可能处于离线状态或网络阻断
  • www.baidu.com 能 ping 通但其他域名不行:DNS 配置问题

DNS 服务状态检查

# 检查 NetworkManager DNS 配置
nmcli dev show | grep DNS
# 检查 systemdresolved 服务状态
systemctl status systemdresolved
# 查看当前生效的 DNS 配置
cat /etc/resolv.conf

关键检查点

centos设置dns无法解析域名

  • /etc/resolv.conf 是否包含有效 DNS 服务器(如 nameserver 8.8.8.8
  • NetworkManager 管理的 DNS 配置是否被覆盖
  • systemdresolved 服务是否正常运行(推荐启用)

防火墙规则验证

# 查看 firewalld 配置
firewallcmd listall
# 测试 UDP 53 端口连通性
nc z u <DNS服务器IP> 53       # nc z u 8.8.8.8 53

典型问题

  • firewalld 默认可能未开放 UDP 53 端口
  • 自定义防火墙规则误拦截 DNS 请求
  • 云服务器安全组未放行 DNS 端口

SELinux 策略检查

# 查看 SELinux 模式
getenforce
# 检查 DNS 相关策略布尔值
sesearch s dns_

关键策略

  • dns_use_nftables:允许使用 nftables 进行 DNS 转发
  • nis_enabled:影响 YP/NIS 服务(可能间接影响 DNS)
  • httpd_can_network_connect:影响 Web 服务发起的 DNS 查询

DNS 缓存清理

# 清理 systemdresolved 缓存
systemdresolve flushcaches
# 清理 NetworkManager 缓存(需重启服务)
systemctl restart NetworkManager

解决方案汇总

手动配置 /etc/resolv.conf

# 编辑配置文件
cat <<EOF > /etc/resolv.conf
nameserver 8.8.8.8          # Google公共DNS
nameserver 8.8.4.4          # Google备用DNS
nameserver 114.114.114.114  # 阿里DNS
EOF

注意事项

centos设置dns无法解析域名

  • 确保文件权限为 644,属主为 root:root
  • 如果使用 NetworkManager,需禁用其自动管理:
    nmcli general hostname "yourhostname"
    nmcli con mod "yourconnection" ipv4.dns ""
    nmcli con mod "yourconnection" ipv4.ignoreautodns yes

启用并配置 systemdresolved

# 安装并启动服务
yum install y systemdresolved
systemctl enable now systemdresolved
# 配置监听范围(可选)
echo "[Resolve]
DNS=8.8.8.8 114.114.114.114" > /etc/systemd/resolved.conf
systemctl restart systemdresolved

优势

  • 支持加密的 DNSoverTLS (DoT)
  • 提供本地缓存加速
  • 与 NetworkManager 兼容性好

防火墙规则配置

# 添加 UDP/TCP 53 端口规则
firewallcmd permanent addport=53/udp
firewallcmd permanent addport=53/tcp
firewallcmd reload

特殊场景处理

场景1:虚拟机/容器环境

  • 问题:宿主机网络策略影响容器内 DNS
  • 解决:在宿主机 /etc/resolv.conf 中添加公共 DNS,或为容器单独配置 dns 参数

场景2:高可用集群环境

  • 问题:多节点间 DNS 配置不一致导致解析失败
  • 解决:通过 Ansible/Puppet 统一管理 /etc/resolv.conf,或部署内部 DNS 服务器(如 bind)

最佳实践建议

最佳实践 实施方法
使用冗余DNS配置 /etc/resolv.conf 中配置至少2个可靠DNS服务器
定期清理DNS缓存 每周执行 systemdresolve flushcaches
监控DNS可用性 使用 Nagios/Zabbix 监控 ntpqdig 命令返回值
限制SELinux策略 根据实际需求关闭非必要的 SELinux 布尔值(谨慎操作)
版本控制配置文件 /etc/resolv.conf 纳入版本管理系统(如 Git)

相关问题与解答

Q1:如何测试当前系统的DNS解析优先级?

A:使用 systemdresolve 工具查询:

# 查询域名解析路径
systemdresolve query www.example.com preferfamily=ipv4

输出示例:

centos设置dns无法解析域名


www.example.com: Succeeded with IPv4 address: [...IP...] via L3 cache (systemdresolved)
Link: enp0s3 [inet6 fe80::...] [route] [mng] [link/ether] [udp_support] [ipv6_support] [multicast] [dns_support] [arp_support] [lldp] [mdns] [ndisc] [router] [timesync] [vlan] [tls] [quic] [https] [http] [ftp] [ssh] [telnet] [ldap] [sip] [rtsp] [rtmp] [pop3] [imap] [smtp] [ftps] [sftp] [imaps] [pop3s] [sieve] [submit] [autoconfig] [autodiscover] [carddav] [caldav] [device] [printer] [scanner] [fax] [modem] [isdn] [bluetooth] [irda] [fido] [h323] [sipx] [mgcp] [rtpproxy] [rtspproxy] [sipgateway] [iax2] [asterisk] [freepbx] [trixbox] [elastix] [3cx] [pbxinaflash] [ippbx] [voipgrid] [skypeforbusiness] [teams] [zoom] [webex] [gotomeeting] [ringcentral] [8x8] [fuze] [grameen] [flowroute] [bandwidth] [twillo] [nexmo] [plivo] [tropo] [voxeo] [telesign] [apilayer] [msg91] [infobip] [smscentral] [clickatell] [clayys] [mocean] [mmg] [axiom] [diametriq] [dialogic] [portaone] [sipwise] [sippy] [opensips] [kamailio] [freeswitch] [asteriskari] [respoke] [plugx] [sipcapture] [rtpengine] [webrtc] [kurento] [janus] [jireh] [medooze] [licode] [openvidu] [kurento] [sproutvideo] [antmedia] [nginx] [apache] [haproxy] [varnish] [traefik] [caddy] [deimos] [rock] [kong] [traefik2] [oauth2proxy] [alb] [elb] [clb] [slb] [glb] [lb] [f5] [bigip] [radware] [citrix] [netscaler] [avivantage] [kemp] [loadbalancer.org] [percona] [mariadb] [mysql] [postgresql] [oracle] [sqlserver] [sybase] [db2] [sqlite] [firebird] [interbase] [frontbase] [informix] [greenplum] [netezza] [exasol] [vertica] [teradata] [parallel] [vectorwise] [actian] [paraccel] [kumo] [memsql] [couchbase] [cassandra] [mongodb] [redis] [memcached] [riak] [hbase] [dynamodb] [azurecosmosdb] [cockroachdb] [yugabytedb] [tidb] [oceanbase] [gaussdb] [polardb] [aurora] [redshift] [snowflake] [bigquery] [presto] [impala] [sparksql] [clickhouse] [druid] [pinot] [kylin] [hive] [hadoop] [flume] [kafka] [nifi] [logstash] [elasticsearch] [kibana] [beats] [prometheus] [grafana] [influxdb] [telegraf] [chronograf] [kapacitor] [victoriametrics] [timescaledb] [graphite] [carbon] [riemann] [collectd] [statsd] [librato] [datadog] [newrelic] [dynatrace] [appdynamics] [sumologic] [splunk] [elasticstack] [observability] [monitoring] [alerting] [tracing] [logging] [auditing] [compliance] [security] [encryption] [keymanagement] [certificatemanagement] [pki] [acme] [letsencrypt] [zerossl] [buypass] [comodo] [geotrust] [symantec] [thawte] [globalsign

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/202414.html

Like (0)
小编小编
Previous 2025年5月11日 21:08
Next 2025年5月11日 21:29

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注