帮助中心

如何解决域名解析不生效问题?

时间 : 2017-06-27编辑 : DNS智能解析专家
分享 : 

域名解析不生效产生的原因

1.域名状态是否正常

先检查域名的状态,可以查看注册服务商提供的 whois 域名信息,如果域名状态为 clienthold 或 serverhold 状态,说明域名是被禁止解析的。这种状态下,即使设置了域名解析,也无法生效,域名无法被访问到,需要联系域名注册商取消这个状态。


2. 权威修改是否已经修改生效

请确认权威DNS的域名解析记录已修改成功。


3.递归DNS缓存记录是否已更新

修改域名解析后,还取决于各运营商递归DNS的缓存是否生效。


4.客户端DNS缓存记录是否已更新

客户端在老的解析记录TTL过期前无法更新。


其中3,4是常见不生效原因,长时间无法生效大多由于3导致。


域名解析不生效解决办法

方法一:使用HTTPDNS


HTTPDNS简介

HTTPDNS使用HTTP协议进行域名解析,代替现有基于UDP的DNS协议,域名解析请求直接发送到HTTPDNS服务器,从而绕过运营商的Local DNS,能够解决Local DNS造成的域名劫持、调度不准确、域名解析不生效三方面问题,并且能够提升域名解析效率。


HTTPDNS原理

HTTPDNS与传统的域名解析流程对比如下图所示。

httpdns区别


使用HTTPDNS有什么限制?

HTTPDNS需要修改应用的DNS解析过程,因此主要适用于C/S架构的场景。

对于无法修改域名解析过程的场景,如PC浏览器访问、微信H5页面访问都无法使用HTTPDNS。



方法二:使用公共DNS


上面提到,由于ISP提供的递归域名服务器质量参差不齐,导致比较容易出现解析失败、解析不生效等问题,因此部分厂商提供了公共DNS解决这个问题。


常见的公共dns有:

常见的公共dns


Windows系统电脑设置公共DNS 请参照  Windows设置使用公共DNS


两种方法优劣对比

httpdns优劣对比


备注:满分10分,分数越高说明方法优势越大

对上面对比做一个说明:


(1)HTTPDNS使用时需要开发者修改DNS解析流程,因此只适用于C/S架构的应用,对于PC浏览器、微信H5等场景不适用,程序编写也有一定的工作量,好在国内的HTTPDNS厂商都提供了封装好的SDK和示例代码供开发者使用和参考,大大降低了实现难度。

(2)使用public dns的方法通用性很低,因为需要每个客户都对自己终端的DNS服务器配置进行修改,由于需要面向庞大的、水平参差不齐的终端用户,这种方式对于开发者而言实施难度非常大。


通过客户端自身解决

对于客户端缓存结果不能更新的问题,可以通过强制刷新系统DNS缓存来删除老的解析结果。以windows系统为例,方法如下:

打开windows命令行,执行ipconfig/flushdns命令清空DNS缓存

flushdns