做网站的,十个人里至少有八个被DNS坑过:改了解析半天不生效,域名突然打不开,邮箱收不到信,一通排查下来发现全是DNS的锅。我这些年处理过不少DNS相关的故障,把最常见的几类问题整理成问答,下次再遇到,照着这个思路查就行。
Q1:改了DNS解析,为什么半天不生效?
这是最普遍的问题。DNS解析生效受两个因素影响:一是你改动的DNS服务器上的记录更新,二是全世界各地DNS缓存服务器的刷新。第二个因素是主要瓶颈,各地递归服务器缓存了旧记录,TTL(生存时间)没到就不会重新查询。如果你原来那条记录的TTL设成了86400秒(24小时),那改动后最长可能要等一天。
解决办法:改解析之前,先把要改的记录的TTL调小,比如调到300秒,等24小时让旧缓存过期,再正式改解析,这样生效就快得多。另外,改完可以用在线DNS检测工具查不同地区的解析结果,确认全球生效情况,别只盯着自己本地。
Q2:域名打不开,怎么判断是不是DNS的问题?
三步判断法。第一步,用nslookup或者dig查一下域名当前的解析结果,看返回的IP是不是你预期的,不是的话就是解析问题。第二步,ping一下域名,能通说明解析正常,不通再查解析。第三步,用手机流量访问一下,如果流量能打开、WiFi打不开,大概率是你本地网络或路由器的DNS缓存问题,重启路由器或者手动改DNS为公共DNS(223.5.5.5或8.8.8.8)就能解决。
还有一种情况:域名解析正常,但就是打不开网站。这时候查一下服务器端,可能是服务器挂了、防火墙拦了、或者网站配置有问题,别把锅全甩给DNS。
Q3:什么是A记录、CNAME记录?到底该用哪个?
A记录是把域名指向一个IPv4地址,最常用,比如把www指向服务器的公网IP。CNAME记录是把域名指向另一个域名,让目标域名帮你解析,适合指向CDN、云服务商提供的域名。简单的区分:你知道服务器的IP,用A记录;你的服务商给你一个域名让你填,用CNAME。
注意一个坑:CNAME记录不能用在域名根上(就是不带www的那个裸域名),根域名只能用A记录或者用某些服务商支持的ALIAS/ANAME记录,不然会解析失败。
Q4:网站能打开,但邮箱收不到信,跟DNS有关吗?
很可能有关。邮件服务依赖MX记录,MX记录指向邮件服务器,如果MX记录配置错误或者缺失,别人给你发的邮件根本找不到你的邮件服务器。检查方法:用在线工具查一下域名的MX记录,确认指向的邮件服务器地址正确,再检查邮件服务器的SPF记录,SPF记录是防止别人冒用你的域名发邮件的,配置不对的话,你的邮件容易被对方当成垃圾邮件拒收。
这类问题排查起来不复杂,但经常被忽略。收不到信先查MX和SPF,别一上来就重装邮箱系统。
Q5:怎么判断域名被劫持了?
域名劫持是指攻击者拿到了你域名的控制权,把解析指向了恶意服务器。典型症状:域名突然打不开,或者打开后页面不是你的站;后台登录不了,密码提示错误。判断方法:用dig查域名的解析结果,如果指向的IP不是你配置的,基本就是被劫持了。
应对措施:立即登录域名注册商后台改密码,开启两步验证,检查域名的DNS服务器是否被改动,把解析记录改回来。如果是通过邮箱盗号实现的劫持,还要检查绑定邮箱的安全。平时做好防护:注册商账号用强密码加二次验证,域名开启转移锁,这是最有效的两道防线。
Q6:DNS解析配置了为什么还是报SSL证书错误?
这个跟DNS本身关系不大,是流程问题。SSL证书签发时要验证域名所有权,验证方式之一是DNS验证,要求你在DNS里加一条指定的TXT记录。如果你把TXT记录加错了位置或者没生效就去申请,证书就签不下来。另外,证书签发后,如果你的DNS解析指向的服务器跟证书申请时验证的域名不一致,也会报错。
处理办法:证书验证用的TXT记录,加完之后等它生效再提交验证;证书部署后,确认访问的域名跟证书上的域名完全一致,包括www和不带www的区别。
DNS这东西,配置起来就几分钟,但出错影响的是整个站的可用性。建议每半年检查一次域名解析记录,该清理的清理,该加固的加固,比出了问题再手忙脚乱强得多。
还木有评论哦,快来抢沙发吧~