域名无法访问如何排查?
问题描述
域名的访问与域名的状态、解析(是否生效、解析配置、DNS服务器配置)、网站备案状态、网站本地网络、网站云服务器的配置(网络配置、端口通信、防火墙配置、安全组配置等)等多个环节相关联。任意一个环节出现问题,都会导致域名无法访问。本章节介绍域名无法访问时的排查思路。
排查思路
- 查询域名注册信息:检查域名是否过期、状态是否正常、是否通过华为云DNS解析。
- 查看域名解析是否生效:检查域名解析是否生效。
- 查看域名解析配置:检查域名解析配置是否正确。
- 检查DNS服务器配置:如果网站弹性云服务器部署在中国大陆外,可检查是否是DNS服务器配置导致访问卡顿或丢包。
- 查看域名备案状态:对于部署在中国大陆区域的网站,检查是否通过备案审核。
- 检查本地网络:检查网站本地网络环境是否正常。
- 查看弹性云服务器运行是否正常:检查网站弹性云服务器是否正常运行。
- 检查云服务器CPU利用率:检查网站弹性云服务器的带宽和CPU利用率是否过高。
- 检查端口通信问题:确保服务进程和端口正常工作,处于LISTEN状态。
- 检查防火墙配置:检查网站弹性云服务器是否开启防火墙并放行服务端口。
- 查看弹性云服务器内部网络配置是否正确:检查网站弹性云服务器网卡是否已正确分配到IP地址。
- 查看网站弹性云服务器绑定的EIP状态:检查网站弹性云服务器绑定的EIP是否被冻结。
- 查看EIP是否绑定弹性云服务器主网卡:检查EIP是否绑定在网站弹性云服务器的主网卡上。
- 检查云服务器路由配置(多网卡场景):检查网站弹性云服务器是否存在默认路由;且如果使用非主网卡通信,需检查是否配置了策略路由。
- 检查云服务器路由配置:确保0.0.0.0的默认路由指向网关,且网站弹性云服务器使用的IP和网关在相同网段。
- 检查安全组规则:检查网站弹性云服务器对应的安全组中是否添加放行服务端口的规则。
- 检查网络ACL规则:检查网站弹性云服务器所在子网是否关联了网络ACL并放通了服务端口。
- 提交工单:如果上述检查全部没有问题,网站仍然无法访问,请提交工单寻求更多帮助。
查询域名注册信息
通过华为云的WHOIS平台,可以查询域名的注册商、注册周期、状态、DNS服务器等注册信息。
查询域名注册信息的步骤如下:
- 打开https://www.huaweicloud.com/whois/index.html,进入“域名注册信息查询(WHOIS)”页面。
图1 域名注册信息查询(WHOIS)
- 在输入框中,输入待查询的域名名称,。
- 单击“查询”,显示域名的注册信息。
图2 域名example.com注册信息
根据域名注册相关信息的查询结果,可以定位网站无法访问的原因是否与域名相关。
表1 检查项及处理措施 检查项
预期结果
处理措施
到期日期
当前日期之前
如果域名过期,会导致解析不生效,从而使网站无法访问。
域名续费或者赎回后, 域名解析并不立即生效,需要24小时~48小时,请耐心等待,然后再次进行访问。
域名状态
ok
- 若域名状态为“serverHold”,多为实名认证审核未通过,请进行域名实名认证。
- 若域名状态为“clientHold”,表示注册商设置域名暂停解析,需联系注册商解除该状态。
更多域名状态信息及处理方法,请参考域名状态。
DNS服务器
- ns1.huaweicloud-dns.com
- ns1.huaweicloud-dns.cn
- ns1.huaweicloud-dns.net
- ns1.huaweicloud-dns.org
若DNS服务器地址与预期结果不符,则表示该域名并未使用华为云DNS进行解析,请您到对应的DNS服务商处进行问题排查。
若您刚进行了DNS服务器的修改,则WHOIS的查询结果可能还未更新,请耐心等待,然后再次进行查询。
说明:修改DNS服务器后,解析的生效时间取决于本地DNS的缓存时间以及设置的TTL值,更多详细内容请参见修改DNS服务器后多久生效?。
查看域名解析是否生效
- ping 域名
- nslookup -qt=类型 域名
具体操作请参考怎样测试域名解析是否生效?。
更多解析不生效的排查方法请参考解析不生效怎么办?
如果域名的解析记录刚经过了修改,有可能还未生效,各种域名解析记录的生效时间请参考:
查看域名解析配置
解析记录配置错误会导致无法将域名解析到正确的IP地址,从而导致网站无法访问。
查看域名解析记录的步骤如下:
- 登录管理控制台。
- 将鼠标悬浮于页面左侧的“”,在服务列表中,选择“网络 > 云解析服务”。
进入“云解析”页面。
- 在左侧树状导航栏,选择“公网域名”。
- 在域名列表页面,单击域名名称,进入“解析记录”页面。
如果在“域名列表”中,未找到网站对应的域名,则表示未配置该域名的解析记录,请参考配置网站解析配置解析记录。
图3 域名解析记录
根据域名解析记录的查询结果,可以定位网站无法访问的原因是否与域名解析配置相关。
- 在左侧树状导航栏,选择“内网域名”。
- 在域名列表中,检查有相同域名的内网解析记录,如果有,则删除该内网域名及其解析记录。
当DNS上同时添加了域名的公网解析记录与内网解析记录时,对该域名的访问请求,会直接通过内网DNS进行解析。当解析不成功时,内网DNS会返回解析记录不存在,并不再转发到公共DNS进行公网解析。
在查看并处理完成域名的解析配置后,可以再次查看域名解析是否生效。如果仍然不生效,需要继续进行排查。
检查DNS服务器配置
如果网站服务器部署在中国大陆外,可以通过以下方式检查DNS服务器配置。
如果ping 域名显示找不到主机可能是DNS服务器速度慢,导致的访问卡顿,建议您参考案例:弹性云服务器访问中国大陆外网站时加载缓慢怎么办?进行优化。
查看域名备案状态
根据《互联网信息服务管理办法》(国务院292号令)、《非经营性互联网信息服务备案管理办法》(工信部33号令)等法律法规的规定,在中华人民共和国境内提供互联网信息服务,应当依法履行备案手续,取得工信部备案号。
对于服务器部署在中国大陆区域的网站,如果未进行备案,或者备案审核未通过,则会导致网站访问网站被阻断。
- 如果您未对网站进行备案,请参考快速完成网站备案提交网站备案审核。
- 如果您已经提交了备案申请,请参考怎么了解备案进度查看备案审核结果。
- 如果您的备案已经通过,仍然无法访问网站,请参考为什么网站无法访问?进行处理。
检查本地网络
若域名状态正常、解析生效、网站备案审核通过,网站仍然无法访问,需要进一步查看本地网络。
尝试ping其他可以访问的域名,检查是否可以ping通。
- 若可以ping通,则排除本地网络问题。
- 若不能ping通,则表示本地网络故障,请联系宽带运营商解决网络故障问题。
检查云服务器CPU利用率
云服务器的带宽和CPU利用率过高可能导致网站无法访问。如果您已经通过云监控服务创建过告警任务,当CPU或带宽利用率高时,系统会自动发送告警给您。
- 定位影响云服务器带宽和CPU利用率高的进程。
- Windows操作系统本身提供了较多工具可以定位问题,包括任务管理器、性能监视器(Performance Monitor)、资源监视器(Resource Monitor)、Process Explorer、Xperf (Windows server 2008 以后)和抓取系统Full Memory Dump检查。
- Linux操作系统执行top命令查看当前系统的运行状态。
- 问题处理:排查进程是否正常,并分类进行处理。
- 正常进程:优化程序,或参考变更规格通用操作变更云服务器配置。
- 异常进程:建议您手动关闭进程,您也可以借助第三方工具关闭进程。
检查端口通信问题
确保服务进程和端口正常工作,处于LISTEN状态。表3为常见TCP状态。
- Linux操作系统弹性云服务器端口通信问题排查
使用netstat -antp命令检查服务的状态,确认端口是否正常监听。
例如:netstat -ntulp |grep 80图5 查看端口监听状态_linux
- 如果端口被正常监听,请执行 检查安全组规则。
- 如果端口没有被正常监听,请检查Web服务进程是否启动或者正常配置。
- Windows操作系统弹性云服务器端口通信问题排查
使用远程端口检测命令:
- 打开CMD命令行窗口。
- 执行netstat -ano | findstr “端口”命令查看进程使用的端口号。
例如:netstat -ano | findstr “80”图6 查看端口监听状态_windows
- 如果端口被正常监听,请执行 检查安全组规则。
- 如果端口没有被正常监听,请检查Web服务进程是否启动或者正常配置。
TCP状态 |
说明 |
对应场景 |
---|---|---|
LISTEN |
侦听来自远方的TCP端口的连接请求 |
正常TCP服务端 |
ESTABLISHED |
代表一个打开的连接 |
正常TCP连接 |
TIME-WAIT |
等待足够的时间以确保远程TCP接收到连接中断请求的确认 |
已关闭的TCP连接,一般1分钟后清除。 |
CLOSE-WAIT |
等待从本地用户发来的连接中断请求 |
应用程序BUG,没有关闭socket。出现在网络中断后。一般是进程死循环或等待其他条件。可以重启对应进程。 |
FIN-WAIT-2 |
从远程TCP等待连接中断请求 |
网络中断过,需要12分钟左右自行恢复。 |
SYN-SENT |
再发送连接请求后等待匹配的连接请求 |
TCP连接请求失败。一般是服务端CPU占用率过高,处理不及时导致。DDos攻击也会出现此情况。 |
FIN-WAIT-1 |
等待远程TCP连接中断请求,或先前的连接中断请求的确认 |
网络中断过,此状态可能不会自行修复(等15分钟以上确认),如果长期占用端口需要重启OS恢复。 |
检查防火墙配置
- Linux操作系统云服务器,关闭防火墙后测试是否可以正常访问。
以CentOS 6.8操作系统80端口为例。
- Windows操作系统云服务器,关闭防火墙后测试是否可以正常访问。
- 关闭防火墙后,重新测试网站访问是否正常。
查看弹性云服务器内部网络配置是否正确
- 确认弹性云服务器网卡已经正确分配到IP地址。
登录弹性云服务器内部,使用命令ifconfig或ip address查看网卡的IP信息。
如果弹性云服务器配置了扩展网卡,且主网卡和扩展网卡均绑定了EIP,则需检查是否配置了策略路由。如未配置策略路由,请参考为多网卡Linux云服务器配置策略路由 (IPv4/IPv6)。
注:Windows弹性云服务器可以在命令行中执行ipconfig查看。
- 确认虚拟IP地址已经正确配置在网卡上。
登录弹性云服务器内部,使用命令ifconfig或ip address查看网卡的IP信息。如果没有虚拟IP地址,可以使用命令ip addr add 虚拟IP地址 eth0给弹性云服务器添加正确的配置。
图7 查看网卡的虚拟IP地址
查看是否有默认路由信息,如果没有,则可以通过ip route add添加路由。
图8 查看默认路由
查看网站弹性云服务器绑定的EIP状态
查看网站弹性云服务器绑定的EIP是否被冻结。
- 登录管理控制台。
- 选择“计算 > 弹性云服务器”。
- 在弹性云服务器列表,单击目标弹性云服务器“IP地址”列的EIP。
- 进入EIP列表页,查看EIP的状态是否为“冻结”。
如果EIP被冻结,请参考EIP资源在什么情况下会被冻结,如何解除被冻结的EIP资源?处理。
查看EIP是否绑定弹性云服务器主网卡
检查您的EIP是否绑定在弹性云服务器的主网卡。若未绑定主网卡,需绑定至弹性云服务器的主网卡上。
您可以在弹性云服务器详情页的网卡页签下进行查看,默认列表第一条为主网卡。
如图所示,EIP绑定在主网卡上。
- 如果云服务器配置了多网卡,且弹性公网IP绑定在非主网卡上,需要在云服务器内部配置策略路由来实现非主网卡的通信。
详细操作请参考如何为配置了多网卡的弹性云服务器配置策略路由?
检查云服务器路由配置
- Linux操作系统云服务器
- 使用route命令查看路由策略,确保0.0.0.0的默认路由指向网关,使用的IP和网关在相同网段,如下图第1行和第3行所示。
- 使用ifconfig或者ip addr命令查看实例的IP地址。
图11 ifconfig命令查看IP地址
图12 ip addr命令查看IP地址
- 使用route -n命令通过路由表查看网关。
- 使用route命令查看路由策略,确保0.0.0.0的默认路由指向网关,使用的IP和网关在相同网段,如下图第1行和第3行所示。
- Windows操作系统云服务器
- 打开CMD命令行窗口。
- 执行ipconfig命令查看实例的IP地址。
图14 ipconfig命令查看IP地址
- 执行route print命令通过路由表查看网关。
图15 route print命令查看网关
检查安全组规则
- 登录管理控制台。
- 选择“计算 > 弹性云服务器”。
- 在弹性云服务器列表,单击待变更安全组规则的弹性云服务器名称。
- 选择“安全组”页签,展开安全组规则。
- 单击“更改安全组规则”
- 根据网站使用的端口配置新的安全组规则,放行网站使用的端口。
放行端口的详细操作,请参见配置安全组规则。