更新时间:2024-07-24 GMT+08:00
分享

域名无法访问如何排查?

问题描述

域名的访问与域名的状态、解析(是否生效、解析配置、DNS服务器配置)、网站备案状态、网站本地网络、网站云服务器的配置(网络配置、端口通信、防火墙配置、安全组配置等)等多个环节相关联。任意一个环节出现问题,都会导致域名无法访问。本章节介绍域名无法访问时的排查思路。

排查思路

  1. 查询域名注册信息:检查域名是否过期、状态是否正常、是否通过华为云DNS解析。
  2. 查看域名解析是否生效:检查域名解析是否生效。
  3. 查看域名解析配置:检查域名解析配置是否正确。
  4. 检查DNS服务器配置:如果网站弹性云服务器部署在中国大陆外,可检查是否是DNS服务器配置导致访问卡顿或丢包。
  5. 查看域名备案状态:对于部署在中国大陆区域的网站,检查是否通过备案审核。
  6. 检查本地网络:检查网站本地网络环境是否正常。
  7. 查看弹性云服务器运行是否正常:检查网站弹性云服务器是否正常运行。
  8. 检查云服务器CPU利用率:检查网站弹性云服务器的带宽和CPU利用率是否过高。
  9. 检查端口通信问题:确保服务进程和端口正常工作,处于LISTEN状态。
  10. 检查防火墙配置:检查网站弹性云服务器是否开启防火墙并放行服务端口。
  11. 查看弹性云服务器内部网络配置是否正确:检查网站弹性云服务器网卡是否已正确分配到IP地址。
  12. 查看网站弹性云服务器绑定的EIP状态:检查网站弹性云服务器绑定的EIP是否被冻结。
  13. 查看EIP是否绑定弹性云服务器主网卡:检查EIP是否绑定在网站弹性云服务器的主网卡上。
  14. 检查云服务器路由配置(多网卡场景):检查网站弹性云服务器是否存在默认路由;且如果使用非主网卡通信,需检查是否配置了策略路由。
  15. 检查云服务器路由配置:确保0.0.0.0的默认路由指向网关,且网站弹性云服务器使用的IP和网关在相同网段。
  16. 检查安全组规则:检查网站弹性云服务器对应的安全组中是否添加放行服务端口的规则。
  17. 检查网络ACL规则:检查网站弹性云服务器所在子网是否关联了网络ACL并放通了服务端口。
  18. 提交工单:如果上述检查全部没有问题,网站仍然无法访问,请提交工单寻求更多帮助。

查询域名注册信息

通过华为云的WHOIS平台,可以查询域名的注册商、注册周期、状态、DNS服务器等注册信息。

查询域名注册信息的步骤如下:

  1. 打开https://www.huaweicloud.com/whois/index.html,进入“域名注册信息查询(WHOIS)”页面。
    图1 域名注册信息查询(WHOIS)
  2. 在输入框中,输入待查询的域名名称,。
  3. 单击“查询”,显示域名的注册信息。
    图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服务器后多久生效?

查看域名解析是否生效

通过域名成功访问网站的其中一个条件是,域名到IP地址的解析生效。因此,您需要查看域名的解析是否生效。
  • ping 域名
  • nslookup -qt=类型 域名

具体操作请参考怎样测试域名解析是否生效?

更多解析不生效的排查方法请参考解析不生效怎么办?

如果域名的解析记录刚经过了修改,有可能还未生效,各种域名解析记录的生效时间请参考:

查看域名解析配置

解析记录配置错误会导致无法将域名解析到正确的IP地址,从而导致网站无法访问。

查看域名解析记录的步骤如下:

  1. 登录管理控制台。
  2. 将鼠标悬浮于页面左侧的“”,在服务列表中,选择“网络 > 云解析服务”。

    进入“云解析”页面。

  3. 在左侧树状导航栏,选择“公网域名”。

    进入“公网域名”页面。

  4. 在域名列表页面,单击域名名称,进入“解析记录”页面。

    如果在“域名列表”中,未找到网站对应的域名,则表示未配置该域名的解析记录,请参考配置网站解析配置解析记录。

    图3 域名解析记录

    根据域名解析记录的查询结果,可以定位网站无法访问的原因是否与域名解析配置相关。

    表2 检查项及处理措施

    检查项

    预期结果

    处理措施

    域名

    网站域名

    如果“域名”与网站的主域名不一致,则需要重新为网站域名的主域名添加一条记录集

    状态

    正常

    如果“状态”是“已暂停”,则需要启用记录集

    类型

    A

    如果“类型”不是A,则需要重新为域名增加A类型记录集

    线路类型

    全网默认

    如果“线路类型”不是“全网默认”,有可能导致指定线路外的用户访问失败,需要重新配置一条线路类型为“全网默认”的解析记录,详细内容请参考增加A类型记录集

    网站服务器IP地址

    如果解析记录的值与网站服务器IP地址不符,则需要修改记录集

  5. 在左侧树状导航栏,选择“内网域名”。

    进入“内网域名”页面。

  6. 在域名列表中,检查有相同域名的内网解析记录,如果有,则删除该内网域名及其解析记录。

    当DNS上同时添加了域名的公网解析记录与内网解析记录时,对该域名的访问请求,会直接通过内网DNS进行解析。当解析不成功时,内网DNS会返回解析记录不存在,并不再转发到公共DNS进行公网解析。

    在查看并处理完成域名的解析配置后,可以再次查看域名解析是否生效。如果仍然不生效,需要继续进行排查。

检查DNS服务器配置

如果网站服务器部署在中国大陆外,可以通过以下方式检查DNS服务器配置。

如果ping 域名显示找不到主机可能是DNS服务器速度慢,导致的访问卡顿,建议您参考案例:弹性云服务器访问中国大陆外网站时加载缓慢怎么办?进行优化。

查看域名备案状态

根据《互联网信息服务管理办法》(国务院292号令)、《非经营性互联网信息服务备案管理办法》(工信部33号令)等法律法规的规定,在中华人民共和国境内提供互联网信息服务,应当依法履行备案手续,取得工信部备案号。

对于服务器部署在中国大陆区域的网站,如果未进行备案,或者备案审核未通过,则会导致网站访问网站被阻断。

检查本地网络

若域名状态正常、解析生效、网站备案审核通过,网站仍然无法访问,需要进一步查看本地网络。

尝试ping其他可以访问的域名,检查是否可以ping通。

  • 若可以ping通,则排除本地网络问题。
  • 若不能ping通,则表示本地网络故障,请联系宽带运营商解决网络故障问题。

查看弹性云服务器运行是否正常

检查您的弹性云服务器是否正常运行。

弹性云服务器运行状态如果不是运行状态,请尝试启动/重启弹性云服务器

图4 检查弹性云服务器状态

检查云服务器CPU利用率

云服务器的带宽和CPU利用率过高可能导致网站无法访问。如果您已经通过云监控服务创建过告警任务,当CPU或带宽利用率高时,系统会自动发送告警给您。

  1. 定位影响云服务器带宽和CPU利用率高的进程。
    • Windows操作系统本身提供了较多工具可以定位问题,包括任务管理器、性能监视器(Performance Monitor)、资源监视器(Resource Monitor)、Process Explorer、Xperf (Windows server 2008 以后)和抓取系统Full Memory Dump检查。
    • Linux操作系统执行top命令查看当前系统的运行状态。
  1. 问题处理:排查进程是否正常,并分类进行处理。
    • 正常进程:优化程序,或参考变更规格通用操作变更云服务器配置。
    • 异常进程:建议您手动关闭进程,您也可以借助第三方工具关闭进程。

检查端口通信问题

确保服务进程和端口正常工作,处于LISTEN状态。表3为常见TCP状态。

  • Linux操作系统弹性云服务器端口通信问题排查

    使用netstat -antp命令检查服务的状态,确认端口是否正常监听。

    例如:netstat -ntulp |grep 80
    图5 查看端口监听状态_linux
    • 如果端口被正常监听,请执行 检查安全组规则
    • 如果端口没有被正常监听,请检查Web服务进程是否启动或者正常配置。
  • Windows操作系统弹性云服务器端口通信问题排查

    使用远程端口检测命令:

    1. 打开CMD命令行窗口。
    2. 执行netstat -ano | findstr “端口命令查看进程使用的端口号。
      例如:netstat -ano | findstr “80”
      图6 查看端口监听状态_windows
      • 如果端口被正常监听,请执行 检查安全组规则
      • 如果端口没有被正常监听,请检查Web服务进程是否启动或者正常配置。
表3 常见TCP状态

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端口为例。
    1. 使用iptables -nvL --line-number命令查看已配置的防火墙策略。
    2. 依次执行以下命令放行80端口。

      iptables -A INPUT -p tcp --dport 80 -j ACCEPT

      iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

    3. 使用service iptables save命令保存添加的规则。
    4. 使用service iptables restart命令重启iptables。
    5. 使用iptables -nvL --line-number命令查看增加的规则是否生效。
    6. 关闭防火墙后,重新测试网站访问是否正常。
  • Windows操作系统云服务器,关闭防火墙后测试是否可以正常访问。
    1. 登录Windows云服务器
    2. 单击桌面左下角的Windows图标,选择“控制面板 > Windows防火墙”。

    3. 单击“启用或关闭Windows防火墙”。

      查看并设置防火墙的具体状态:开启或关闭。

    1. 关闭防火墙后,重新测试网站访问是否正常。

查看弹性云服务器内部网络配置是否正确

  1. 确认弹性云服务器网卡已经正确分配到IP地址。

    登录弹性云服务器内部,使用命令ifconfigip address查看网卡的IP信息。

    如果弹性云服务器配置了扩展网卡,且主网卡和扩展网卡均绑定了EIP,则需检查是否配置了策略路由。如未配置策略路由,请参考为多网卡Linux云服务器配置策略路由 (IPv4/IPv6)

    注:Windows弹性云服务器可以在命令行中执行ipconfig查看。

  2. 确认虚拟IP地址已经正确配置在网卡上。

    当您使用了虚拟IP,需要确认虚拟IP是否正确配置在网卡上。

    登录弹性云服务器内部,使用命令ifconfigip address查看网卡的IP信息。如果没有虚拟IP地址,可以使用命令ip addr add 虚拟IP地址 eth0弹性云服务器添加正确的配置。

    图7 查看网卡的虚拟IP地址

    查看是否有默认路由信息,如果没有,则可以通过ip route add添加路由。

    图8 查看默认路由

查看网站弹性云服务器绑定的EIP状态

查看网站弹性云服务器绑定的EIP是否被冻结。

  1. 登录管理控制台。
  2. 选择“计算 > 弹性云服务器”。
  3. 弹性云服务器列表,单击目标弹性云服务器“IP地址”列的EIP。
  4. 进入EIP列表页,查看EIP的状态是否为“冻结”。

如果EIP被冻结,请参考EIP资源在什么情况下会被冻结,如何解除被冻结的EIP资源?处理。

查看EIP是否绑定弹性云服务器主网卡

检查您的EIP是否绑定在弹性云服务器的主网卡。若未绑定主网卡,需绑定至弹性云服务器的主网卡上。

您可以在弹性云服务器详情页的网卡页签下进行查看,默认列表第一条为主网卡。

所示,EIP绑定在主网卡上。

图9 查看EIP是否绑定主网卡

检查云服务器路由配置(多网卡场景)

一般操作系统的默认路由优先使用主网卡,如果出现使用扩展网卡导致网络不通现象通常是路由配置问题。

  • 如果云服务器配置了多网卡,请确认云服务器内默认路由是否存在。
    1. 登录云服务器,执行如下命令,查看是否存在默认路由。

      ip route

      图10 查看默认路由
    2. 若没有该路由,执行如下命令,添加默认路由。

      ip route add default via XXXX dev eth0

      XXXX表示网关IP。

检查云服务器路由配置

  • Linux操作系统云服务器
    1. 使用route命令查看路由策略,确保0.0.0.0的默认路由指向网关,使用的IP和网关在相同网段,如下图第1行和第3行所示。

    2. 使用ifconfig或者ip addr命令查看实例的IP地址。
      图11 ifconfig命令查看IP地址
      图12 ip addr命令查看IP地址
    3. 使用route -n命令通过路由表查看网关。
      图13为示例,具体以云服务器网关实际地址为准。
      图13 route -n命令查看网关
  • Windows操作系统云服务器
    1. 打开CMD命令行窗口。
    2. 执行ipconfig命令查看实例的IP地址。
      图14 ipconfig命令查看IP地址
    3. 执行route print命令通过路由表查看网关。
      图15 route print命令查看网关

检查安全组规则

如果安全组没有网站访问使用的端口,需要在云服务器实例对应的安全组中添加放行该端口的规则。
  1. 登录管理控制台。
  2. 选择“计算 > 弹性云服务器”。
  3. 在弹性云服务器列表,单击待变更安全组规则的弹性云服务器名称。
  4. 选择“安全组”页签,展开安全组规则。
  5. 单击“更改安全组规则”
  6. 根据网站使用的端口配置新的安全组规则,放行网站使用的端口。

    放行端口的详细操作,请参见配置安全组规则

检查网络ACL规则

VPC默认没有网络ACL,如果关联了网络ACL,请检查网络ACL规则。

  1. 查看云服务器对应的子网是否关联了网络ACL。

    如显示具体的网络ACL名称说明已关联网络ACL。

    图16 网络ACL
  2. 单击网络ACL名称查看网络ACL的状态。
    图17 网络ACL开启状态
  3. 若“网络ACL”为“开启”状态,需要添加放通规则进行端口流量放通。

    需要注意“网络ACL”的默认规则是丢弃所有出入方向的包,若关闭“网络ACL”后,其默认规则仍然生效。

提交工单

如果上述检查全部没有问题,网站仍然无法访问,请提交工单寻求更多帮助。

相关文档