上次更新日期:2021 年 4 月 20 日
我在 Amazon Route 53 上运行应用程序或网站。但是,我无法访问我的应用程序或网站。我应该如何排查此问题?
解决方法注意:如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请确保您使用的是最新版的 AWS CLI。
检查域状态问题1.使用以下命令检查域状态:
whois domain_name |grep 'status'
如果域状态(Extensible Provisioning Protocol 代码)为“inactive”或“ServerHold”或“ClientHold”,则域将不会解析。
2.如果您看到异常的域状态代码,包括“inactive”或“ServerHold”或“ClientHold”,请联系您的注册商。
使用以下命令确定域注册商:
whois domain_name |grep 'Registrar'
在您的首选 Whois 实用程序(域注册查找工具)中查询通用或国家/地区特定的顶级域 (TLD)。
检查名称服务器问题1.确认注册商已正确配置权威名称服务器。要查找权威名称服务器,请检查公有托管区域的名称服务器 (NS) 资源记录集中的 authoritative_nameserver 值。
2.如果您使用 Route 53 作为 DNS 服务提供商,请确保四个名称服务器均已正确配置。
使用以下命令检查名称服务器配置:
whois domain_name |grep 'Name Server'
例如,whois amazon.com |grep 'Name Server' 的输出为:
Name Server: NS1.P31.DYNECT.NET
Name Server: NS2.P31.DYNECT.NET
Name Server: NS3.P31.DYNECT.NET
Name Server: NS4.P31.DYNECT.NET
Name Server: PDNS1.ULTRADNS.NET
Name Server: PDNS6.ULTRADNS.CO.UK
检查记录集问题
使用以下命令检查是否已通过 DNS 服务提供商在托管区域中创建了所需的别名 (A) 记录:
dig Domain_name record_type
例如,$dig amazon.com A 的输出为:
; <<>> DiG 9.10.6 <<>> amazon.com +question
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29804
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;amazon.com. IN A
;; ANSWER SECTION:
amazon.com. 44 IN A 54.239.28.85
amazon.com. 44 IN A 205.251.242.103
amazon.com. 44 IN A 176.32.103.205
;; Query time: 4 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Fri Mar 19 20:28:51 IST 2021
;; MSG SIZE rcvd: 87
注意:相应资源记录集的 Type (类型) 列中列出了记录名称。有关更多信息,请参阅支持的 DNS 记录类型。
检查源问题对于本地浏览器或移动设备:
清除浏览器缓存,然后尝试访问域。 检查您请求的是否是正确的域。请求域时,移动设备浏览器可能会附加“www”。对于使用 VPC .2 Resolver 连接到 Amazon Virtual Private Cloud (Amazon VPC) 或 AWS 资源的本地计算机:
如果您的私有和公有托管区域具有重叠的命名空间(例如“example.com”和“accounting.example.com”),则 Resolver 会根据最具体的匹配路由流量。如果存在匹配的私有托管区域,但没有与请求中的域名和类型匹配的记录,则 Resolver 不会将请求转发至公有 DNS 解析程序。而是会向客户端返回 NXDOMAIN(域不存在)错误。如果您无意中创建了具有重叠命名空间的私有托管区域,则可以删除私有托管区域。
检查记录缓存问题1.使用以下命令检查从 DNS 解析程序返回的记录值是否与权威名称服务器返回的值匹配。如果域未解析为预期的 IP 地址,则 DNS 解析程序可能已缓存该值。如果域正在解析为意外的 IP 地址,请清除您的浏览器缓存。
dig domain_name record_type @authorative_name_server
例如,$dig amazon.com @NS1.P31.DYNECT.NET 的输出是:
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.64.amzn1 <<>> amazon.com @NS1.P31.DYNECT.NET
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63711
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;amazon.com. IN A
;; ANSWER SECTION:
amazon.com. 60 IN A 205.251.242.103
amazon.com. 60 IN A 54.239.28.85
amazon.com. 60 IN A 176.32.103.205
;; Query time: 2 msec
;; SERVER: 208.78.70.31#53(208.78.70.31)
;; WHEN: Fri Mar 19 15:08:52 2021
;; MSG SIZE rcvd: 76
2.使用以下命令检查公有解析程序是否显示相同的结果。如果公有解析程序返回预期结果,说明本地计算机上的 DNS 解析程序可能存在问题。
dig domain @public_resolver_Ip
例如,$dig amazon.com @8.8.8.8 的输出为:
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.64.amzn1 <<>> amazon.com @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26860
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;amazon.com. IN A
;; ANSWER SECTION:
amazon.com. 15 IN A 205.251.242.103
amazon.com. 15 IN A 54.239.28.85
amazon.com. 15 IN A 176.32.103.205
;; Query time: 1 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Mar 19 15:09:41 2021
;; MSG SIZE rcvd: 76
检查 DNSSEC 问题
确认您已为域正确配置了 DNSSEC。使用 DNSSEC 分析器工具或您的首选实用程序查看域是否存在 DNSSEC 问题。
传递 DNSSEC,然后查看是否获得预期的结果:
dig domain_name +cd
例如,$ dig amazon.com +cd 的输出为:
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.64.amzn1 <<>> amazon.com +cd
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55636
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;amazon.com. IN A
;; ANSWER SECTION:
amazon.com. 29 IN A 205.251.242.103
amazon.com. 29 IN A 176.32.103.205
amazon.com. 29 IN A 54.239.28.85
;; Query time: 2 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Fri Mar 19 15:10:13 2021
;; MSG SIZE rcvd: 76
检查网络服务器问题
如果在 curl 命令输出中看到域的预期 IP 地址,请检查是否从服务器获得预期的 HTTP 响应 :
1XX(信息) 2XX(成功) 3XX(重定向) 4XX(客户端错误) 5XX(服务器错误)如果 DNS 解析正常工作但服务器没有响应,则问题在于托管网站或应用程序的 Web 服务器。
命令:
curl -Iv http://domain_name:Port/Path
例如,$ curl -Iv http://amazon.com:80 的输出是:
* Rebuilt URL to: http://amazon.com:80/
* Trying 176.32.103.205... <--- Indicates no issues with the DNS resolution as we are getting expected IP address for the domain amazon.com.
* TCP_NODELAY set
* Connected to amazon.com (176.32.103.205) port 80 (#0)
> HEAD / HTTP/1.1
> Host: amazon.com
> User-Agent: curl/7.61.1
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
HTTP/1.1 301 Moved Permanently
< Server: Server
Server: Server
< Date: Fri, 19 Mar 2021 15:11:18 GMT
Date: Fri, 19 Mar 2021 15:11:18 GMT
< Content-Type: text/html
Content-Type: text/html
< Content-Length: 179
Content-Length: 179
< Connection: keep-alive
Connection: keep-alive
< Location: https://amazon.com/
Location: https://amazon.com/
<
* Connection #0 to host amazon.com left intact
注意:Port (端口) 值是将网站或应用程序配置为监听的 Web 服务器端口。