网站DNS配置方法咨询及域名无法访问问题排查求助
1. 如何为你的网站配置DNS?
通常呢,DNS配置的核心就是把域名和你的服务器/托管服务绑定起来,按以下步骤来就行:
- 选好DNS托管方:你可以用域名注册商自带的DNS服务(比如GoDaddy),也可以用第三方服务商,或者云服务商自带的DNS(比如Lightsail的DNS管理),选哪个看你自己的需求
- 选对DNS记录类型:
A记录:最常用,把域名直接映射到服务器的IPv4地址(比如你的Lightsail实例静态IP)AAAA记录:对应IPv6地址的映射CNAME记录:把某个子域名(比如www.xxx.com)指向另一个域名(比如xxx.com)NS记录:如果要切换DNS服务商(比如从GoDaddy转到Lightsail DNS),就得修改这个,指定新的权威DNS服务器地址
- 添加/修改记录:
- 登录你选的DNS托管平台后台
- 找到对应域名的DNS管理页面
- 按需添加记录:填好主机名(
@代表根域名,www就是www子域名)、目标地址(IP或域名)、TTL(建议设300秒,也就是5分钟,方便快速生效)
- 等DNS生效:DNS更改需要全球服务器同步,这个过程叫“DNS传播”,快的话几分钟,慢的话可能要24-48小时,别急
2. 解决你的GoDaddy域名+AWS Lightsail DNS访问问题
你遇到的情况我碰过不少,改了NS记录也加了A记录,但域名还是访问不了,咱们一步步排查:
先确认NS记录真的生效了
改完NS记录后,DNS传播需要时间,你可以在本地终端敲命令查:
nslookup -type=ns xxx.com
或者用dig:
dig ns xxx.com
如果返回的是AWS Lightsail给你的那几个域名服务器,说明NS已经生效;要是还是GoDaddy的默认NS,要么是还没同步,要么是你在GoDaddy改NS的时候输错了地址或者没保存。
检查Lightsail的A记录配置
登录Lightsail控制台,找到你创建的xxx.com DNS区域:
- 确认A记录的主机名是
@(对应根域名xxx.com),目标地址就是你的Ubuntu实例静态IP,TTL设成300秒左右 - 要是你需要访问www.xxx.com,记得再加一条主机名为
www的A记录,同样指向那个静态IP
清掉本地DNS缓存
有时候你的电脑还存着旧的DNS记录,导致解析不了新地址,不同系统清缓存的命令:
- Windows:开管理员命令提示符,输
ipconfig /flushdns - macOS:终端输
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder(输完要敲密码) - Linux(比如Ubuntu):终端输
sudo systemd-resolve --flush-caches
检查Ubuntu实例的网络和服务
虽然你能用静态IP访问,但还是要确认这两点:
- 实例防火墙(UFW):用
sudo ufw status看有没有开放80(HTTP)和443(HTTPS)端口,要是没开,就加规则:sudo ufw allow 80/tcp和sudo ufw allow 443/tcp - Lightsail安全组:别忘看Lightsail控制台里的Networking选项,安全组默认可能只开了SSH,得手动添加HTTP和HTTPS的入站规则,不然外部访问会被拦
检查域名的其他限制
- 确认你的域名已经完成WHOIS验证:GoDaddy要求新注册的域名必须验证,不然会暂停解析,去GoDaddy后台看看有没有验证提示
- 有没有开DNSSEC?要是之前在GoDaddy开了DNSSEC,现在切换到Lightsail DNS,得去GoDaddy关掉它,不然会导致解析失败
换个网络测试
如果上面都没问题,试试用手机流量访问域名(别连和电脑同一个WiFi),或者用在线工具查全球解析状态,排除本地网络的问题
内容的提问来源于stack exchange,提问作者Wei
相关产品推荐
相关产品推荐

