把域名通过DNS的A记录或CNAME记录指向服务器公网IP,同时完成服务器端端口放行和网站配置,整个过程涉及DNS控制台操作、解析生效等待、本地环境验证三个环节。 下面我把自己实际操作中踩过的坑和验证过的步骤一并写出来,希望对第一次做这件事的朋友有帮助。
准备工作:先搞清楚解析需要哪些信息
动手之前,先把三样东西准备好:域名管理权限、服务器公网IP地址、网站服务类型,域名管理权限通常在简米云、酷番云、GoDaddy或Namecheap这类注册商的后台,服务器公网IP在云服务商控制台的实例列表里能找到,网站服务类型则决定了你最终要填A记录还是CNAME记录。
举个例子,如果你用的是Nginx部署的静态博客或LNMP架构的WordPress,通常需要A记录直接指向服务器IPv4地址,如果你用的是Cloudflare这类CDN加速服务,那就要用CNAME记录指向CDN分配的别名地址,这一步没搞清楚,后面容易白忙活。
国内服务器还有个绕不开的环节:ICP备案,据工信部规定,域名解析到大陆地区服务器必须完成备案,未备案域名会被拦截,如果你的服务器在香港、新加坡或海外,则不需要备案,但访问速度会受物理距离影响。
具体操作步骤:从拿到IP到验证生效
以简米云和酷番云为例,操作路径基本一致。先在云控制台找到服务器公网IP,然后进入域名解析控制台添加记录。
第一步,登录域名注册商后台,找到”域名解析”或”DNS管理”入口,简米云在”域名控制台-解析设置”里,酷番云在”DNSPod控制台-解析管理”里,两者都提供可视化操作界面。
第二步,添加解析记录,主机记录填”@”表示主域名,填”www”表示www子域名,记录类型选A,记录值填服务器公网IP,TTL默认600秒即可,初次调试可以改成120秒加快生效速度,如果还需要邮箱服务,另外添加MX记录指向邮件服务器地址。
第三步,服务器端放行端口。多数云服务商的安全组规则默认只开放22端口(SSH)和3389端口(Windows远程),80端口和443端口需要手动添加。 登录云控制台,找到安全组或防火墙配置,添加入方向规则,端口填80/443,源IP填0.0.0.0/0,协议选TCP,保存即可。
第四步,配置网站服务,Nginx配置文件的server_name改成你的域名,Apache的VirtualHost也要同步修改,改完后别忘执行Nginx的
nginx -t校验语法,然后systemctl reload nginx重载服务。
第五步,验证是否生效,本地打开命令行,Windows用ping 你的域名看返回的IP是不是服务器公网IP,Linux或macOS用dig 你的域名 +short同样能查询解析结果,如果显示的是之前解析到的旧IP或找不到记录,说明还没生效。
TTL时间决定解析多久能全球生效。 例如设置600秒,那么所有DNS缓存节点最多10分钟就会刷新一次,绝大多数情况下从修改到生效只需要几分钟到十几分钟,如果你急用,可以先用nslookup命令查询权威DNS服务器的记录来判断是否已同步。
域名解析不生效的原因排查
解析配置完成但网站打不开,这个场景太常见了,我自己遇到过几次,总结下来主要集中在这几个方面。
DNS缓存问题占据最大比例。浏览器、操作系统、路由器、本地DNS服务器都可能会缓存旧记录。 优先尝试清空浏览器缓存,Windows执行ipconfig /flushdns刷新本地DNS解析缓存,路由器重启也能清空一层缓存,如果是公司网络环境,稍等片刻再试。
再检查解析记录本身有没有填错,A记录值是不是多打了一位或漏了小数点,主机记录是”@”还是”www”也要区分清楚,很多人只添加了www子域名,结果直接访问不带www的主域名发现解析不生效,其实就是没添加”@”记录。
服务器端安全组或防火墙误拦截也是常见原因,如果你能ping通IP但浏览器访问超时,大概率是80/443端口没放行,酷番云和简米云的安全组规则里,80端口和443端口必须显式添加,任何云服务商默认都不会自动开放这些端口。
还有一种情况是服务器内部的系统防火墙拦截,CentOS的firewalld和Ubuntu的ufw都可能默认拒绝外部HTTP请求,执行firewall-cmd --zone=public --add-port=80/tcp --permanent(CentOS)或ufw allow 80/tcp(Ubuntu)先放行再测试。
如果以上都没有问题,那就是域名注册商的DNS服务器被劫持或污染的概率较低,但也不排除,可以换用dig 域名 +trace逐级查询,看看哪一层返回了异常结果。
怎么把域名解析到自己服务器:场景与配置选型
不同使用场景下解析配置的策略差异很大。个人博客网站、企业官网、电商业务这三类对解析要求完全不一样。
个人博客或作品集这类低并发场景,A记录+单IP足够,成本最低,配置简单,出问题排查也快,如果还想多一层安全防护,可以加上CDN的CNAME记录,但免费CDN节点质量参差不齐,配置不当反而拖慢速度,非必要不推荐。
企业官网或小程序后端这类业务场景,考虑的是可用性和容灾能力,行业共识是使用多A记录轮询,在DNS控制台添加两条以上指向不同机房IP的A记录,DNS解析器自动轮询分配请求,达到负载分担和单点故障规避的效果,如果预算允许,再搭配云负载均衡器的CNAME记录,那效果会更好。
电商或游戏这类高并发场景,直接上云负载均衡CLB的CNAME记录,通过云服务商提供的负载均衡实例统一接入多个后端服务器,结合弹性伸缩自动扩缩容实例,这种方案配置成本高一些,但扩展性和稳定性是单台服务器完全没法比的。
你还需要搞清楚一个概念:DNS记录类型里,A记录只能填IPv4地址,AAAA记录填IPv6地址。 现在很多云服务器默认只分配IPv4公网IP,如果你想用IPv6访问,得先确认服务器是否配置了IPv6地址,然后再添加AAAA记录,尤其注意,国内部分地区IPv6访问穿透率还不高,建议IPv4和IPv6双栈共存。
至于要不要用CNAME代替A记录,存在一个速度差异问题,CNAME本身多一次DNS解析跳转,首包速度上比A记录慢几十毫秒,虽然感知不明显,但对性能敏感的业务来说,能直接用A记录就尽量不用CNAME。
网站备案与解析的关系:时长与顺序
国内服务器解析域名绕不开备案这个问题。备案流程时长通常在15到30天之间,具体取决于各省通信管理局的审核效率,备案期间域名不能绑定服务器访问,这也是很多人容易忽略的地方。
你可以在服务器购买前就提交备案申请,这样服务器到货后备案也差不多通过了,简米云和酷番云的备案系统都支持在线提交,需要准备身份证、域名证书、网站负责人照片等信息,提交后初审1-2天,幕布照片审核1-2天,管局长则审核不定,短则5个工作日,长则20多个工作日。
备案和解析的顺序一定要理清:先备案过审,再添加解析记录绑定服务器,最后配置网站服务。 有些人先解析了域名,结果备案还没下来,域名被阻断无法访问,反而耽误了调试,如果你买的是香港或海外服务器且网站内容不涉及敏感领域,那就不需要走备案流程,域名解析完成后就可以直接绑定运行。
这里还有一个容易忽略的细节:备案主体要与域名注册人信息一致。 如果域名的注册信息和你备案提交的主体不一致,备案申请会被驳回,这时候先把域名过户到备案主体名下再申请,或者直接以域名注册时的实名信息为准提交备案。
静态IP和DDNS的选择
服务器公网IP是动态的,这个情况其实很常见,某些家用宽带或小机房云主机默认分配动态公网IP,每次重启可能变地址,如果域名解析只用固定A记录,IP一变网站就立刻打不开了。
DDNS(动态域名解析)就是解决这个问题的手段之一。DDNS客户端定期检测服务器当前公网IP,变更时自动调用DNS服务商API更新A记录值。 简米云和DNSPod都提供现成的DDNS工具包,有些路由器管理后台也直接内置了DDNS插件,填上域名和API密钥即可自动运行。
但DDNS有个致命弱点:频繁变更会有一定概率导致一段时间内解析不生效。 所以面向正式生产环境,建议使用云服务商的弹性公网IP(EIP),EIP绑定到实例后即使重启实例IP地址也不变,到期释放前都稳定指向一个IP,多花点预算买固定IP比折腾DDNS省心得多。
关于域名解析到服务器的Q&A
域名解析到服务器一般要多长时间生效?
正常情况下10分钟到1小时之间,DNS的TTL值决定生效速度,TTL越小生效越快,修改解析记录前先把TTL调低,比如调成120秒,等稳定运行后再调回600秒或3600秒,公共DNS服务商会主动缓存记录,可以尝试换用其他公共DNS(如114.114.114和5.5.5)来看不同解析结果差异。
解析生效了但网站还是打不开是什么原因?
多数在服务器端,依次检查Nginx或Apache运行状态、配置文件语法是否正确、80或443端口监听是否正常、安全组和系统防火墙规则是否放行,如果以上都正常,测试服务器本地curl localhost看是否能返回网页内容,能返回就是网络链路问题,不能返回就是网站服务本身挂了。
解析记录类型只加A记录够不够用?
看网站用途,纯网页展示A记录完全够用,若要用邮箱至少再加MX记录和TXT记录,若用了CDN或负载均衡器则改用CNAME记录指向对应域名,若服务器支持IPv6访问且你想要IPv6用户直连,加一条AAAA记录也很必要。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/750660.html





