Linux系统的ECS实例内部无法正常解析域名

说明

本文可能由社区贡献或涉及第三方产品信息,建议您访问社区或第三方产品的官方网站获取帮助与支持。第三方产品不在阿里云售后支持范围。本文仅供参考,阿里云不做任何暗示或其他形式的承诺。

问题描述

在Linux系统的ECS实例中,出现无法正常解析域名的情况。

问题原因

  • 没有正确配置DNS服务器。

  • 防火墙设置了53端口的相关规则。

  • 开启了DNS的NSCD缓存服务。

解决方案

说明
  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。

  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

请按照以下方法进行排查并定位问题,然后根据现场实际情况,选择对应的处理方式:

  1. 执行以下命令,查看是否正确配置DNS服务器。

    cat /etc/resolv.conf

    若没有正确配置DNS服务器,则需要修改DNS服务器地址,建议您使用以下阿里云提供的DNS服务器地址,DNS配置完成之后,需要将/etc/resolv.conf文件锁定,避免因为重启系统配置还原,具体步骤请参见如何在Linux实例中自定义配置DNS

    • 公网地址的DNS服务器

      nameserver 223.5.5.5
      nameserver 223.6.6.6

    • 内网地址的DNS服务器

      nameserver 100.100.2.136
      nameserver 100.100.2.138

  2. 执行以下命令,查看防火墙是否添加了53端口的相关规则。

    iptables -L

    若防火墙存在53端口的相关规则,请关闭防火墙,或者删除该相关规则,具体步骤参见如何在CentOS7系统中使用iptables

  3. 执行以下命令,查看是否启动了DNS的NSCD缓存服务。

    systemctl status nscd

    若启动了NSCD缓存服务,请执行systemctl stop nscd命令,关闭NSCD缓存服务。

适用于

  • 云服务器ECS