• 微信
    咨询
    微信在线咨询 服务时间:9:00-18:00
    纵横数据官方微信 使用微信扫一扫
    马上在线沟通
  • 业务
    咨询

    QQ在线咨询 服务时间:9:00-18:00

    选择下列产品马上在线沟通

    纵横售前-老古
    QQ:519082853 售前电话:18950029581
    纵横售前-江夏
    QQ:576791973 售前电话:19906048602
    纵横售前-小李
    QQ:3494196421 售前电话:19906048601
    纵横售前-小智
    QQ:2732502176 售前电话:17750597339
    纵横售前-燕子
    QQ:609863413 售前电话:17750597993
    纵横值班售后
    QQ:407474592 售后电话:18950029502
    纵横财务
    QQ:568149701 售后电话:18965139141

    售前咨询热线:

    400-188-6560

    业务姚经理:18950029581

  • 关注

    关于纵横数据 更多优惠活动等您来拿!
    纵横数据官方微信 扫一扫关注官方微信
  • 关闭
  • 顶部
  • 您所在的位置 : 首页 > 新闻公告 > 云服务器域名无法访问如何排查?

    云服务器域名无法访问如何排查?

    上个月,一个做律师行业门户网站的朋友老周火急火燎地打电话给我,说他们律所的官网打不开了。他试了自己手机上的浏览器,又试了办公室的电脑,还让外地分所的同事也试了试,全都打不开。他说他第一个反应是云服务器是不是欠费停机了,赶紧登录云控制台看了一眼,机器运行状态正常,CPU和内存占用率也不高。他又重启了Web服务,还是不行。折腾了将近两个小时,最后发现是域名解析被改动了,但怎么被改的、什么时候被改的,他一头雾水。

    老周遇到的这个问题,其实每天都在无数人身上发生。域名无法访问,说起来就一句话的事,但背后的原因可能千奇百怪。有的是小问题,比如你打字的时候把域名拼错了,有的是大问题,比如域名过期被别人抢注了。今天我就把排查这类问题的思路和方法系统地梳理一下,下次你再遇到域名打不开的情况,不用慌,按照步骤来,绝大多数问题都能自己找到原因。

    我把域名无法访问的可能原因分成几个大的层面,从外到内,从简单到复杂,一层层剥开来看。

    第一个层面,也是最容易被忽略的,就是问题到底出在你自己这边还是出在别人那边。很多人一发现网站打不开,第一反应就是服务器出问题了,但其实有可能是你本地的网络不通,或者是你的浏览器缓存出了问题。怎么判断呢,最简单的办法是换一个网络环境试试。比如你在公司打不开,就关掉WiFi用手机流量试试,如果手机流量能打开,那说明服务器端是正常的,问题出在你公司的网络上。如果手机流量也打不开,那就继续往下排查。还有一个办法是用在线工具,网上有很多公开的网站监测服务,你输入你的域名,它会从全国甚至全球的不同节点去访问,然后告诉你哪些地方能打开、哪些地方打不开。这个工具非常好用,因为它帮你跳过了你自己本地环境的所有干扰因素,直接告诉你从外网看你的网站到底是什么状态。

    老周当时就是用了一个这样的工具,输入域名之后发现,从大部分节点访问都是超时,但从少数几个节点访问却能正常返回内容。这个结果很有意思,说明他的服务器并没有完全挂掉,而是只有部分地区的用户能访问。这就排除了服务器宕机这个可能性,把问题指向了网络层面。

    第二个层面是域名本身的状态。很多人买了域名之后就忘了管它,直到有一天网站打不开了才想起来去查。域名有几个关键状态需要确认。第一个是过期时间,域名不像云服务器那样按月或者按年付费,大部分域名的注册周期是一年起步,如果到期前没有及时续费,域名会进入一个赎回期,在这个期间域名解析会失效,网站自然就打不开了。更麻烦的是,如果过了赎回期你还没续费,域名就会被释放,任何人都可以重新注册,那时候你的网站就彻底丢了,可能还要花大价钱从别人手里买回来。第二个是域名的状态是否被锁定,有时候因为某些原因,比如域名所有者信息没有通过实名认证,或者域名涉及违规使用被投诉,注册商会把域名设置为禁止解析的状态,这种情况下你不管怎么配置解析都不会生效。这些状态信息都可以在域名注册商的管理后台看到,每个状态都有对应的说明,如果看到异常状态就按照提示去处理。

    第三个层面是域名解析本身。这是老周遇到的问题的核心。域名解析说白了就是把你的域名翻译成云服务器的IP地址,这个翻译工作是由DNS服务器来完成的。如果解析配置出了问题,用户输入域名之后就找不到你服务器的IP,自然也就访问不到了。常见的解析问题包括这么几种。一种是解析记录被删除了,可能是有人误操作,也可能是黑客入侵了你的域名管理账号。一种是解析记录被改成了错误的IP地址,比如改成了别人的服务器IP,那用户访问的时候就会跑到别人的网站上去。还有一种是解析生效延迟,你刚修改了解析记录,但全球的DNS服务器还没来得及同步更新,有的用户访问到的是旧的IP地址,有的用户访问到的是新的,就会出现部分地区能打开、部分地区打不开的现象。排查这类问题的方法也很直接,在你自己的电脑上用命令行工具手动查询域名解析的结果,看返回的IP地址是不是你期望的那个。如果不是,再去域名注册商的管理后台核对解析配置。如果配置是正确的但查询出来的IP不对,那就是DNS缓存的问题,等一段时间再查,或者换一个DNS服务器来查询。

    老周当时用命令一查,发现他的域名解析出来的IP地址根本不是他那台云服务器的IP。他登录域名注册商的后台一看,解析记录被人改成了一个他完全不认识的IP。再仔细查操作日志,发现他的账号在几天前有一个异地登录的记录,IP地址来自境外。很明显,他的域名管理账号密码泄露了,攻击者登录进去把解析指向了别的服务器。好在他及时发现,改了解析记录、重置了密码、开启了多因素认证,才没有造成更严重的损失。

    第四个层面是云服务器本身的状态。如果域名解析出来的IP地址是正确的,那问题就出在服务器这边了。首先确认云服务器是否处于运行状态,这个在云控制台上一眼就能看到。有时候服务器虽然显示运行中,但可能因为资源耗尽而卡死,比如内存被某个程序吃光了,系统响应极其缓慢,你从外面访问它就会超时。这时候可以登录云控制台的管理终端,看看服务器到底在干什么。其次是确认服务器上的Web服务是否正常运行,比如你用的是什么Web软件,这个进程有没有在跑,有没有监听在正确的端口上。很多时候Web服务会因为配置错误、内存泄露、或者端口冲突而意外退出,这时候重启一下服务往往就能恢复。还有一个容易被忽略的点是,云服务器自带的防火墙或者操作系统本身的防火墙可能阻挡了访问请求。比如你只开放了远程管理端口,忘了开放网站访问的端口,那外部的请求根本进不来。这种情况在刚部署完服务器的时候特别常见。

    第五个层面是网络访问策略。云服务商提供的安全组功能是一道重要的防线,但也可能因为配置失误而变成一道打不开的门。安全组的规则分为入方向和出方向,入方向控制的是外面进来的流量能不能到达你的云服务器。如果你的安全组规则里没有添加允许访问网站端口的规则,那么所有从外面来的访问请求都会被云平台的网络设备拦截,根本到不了你的服务器。你服务器上的Web服务跑得再正常也没用。检查安全组的时候要特别留意规则的优先级,有些云平台的安全组规则是有顺序的,匹配到第一条规则之后就不再往下匹配了,如果前面有一条拒绝规则把某个IP段挡住了,后面就算有允许规则也不会生效。

    第六个层面是程序本身的问题。有时候服务器正常、网络正常、域名解析也正常,但网站就是打不开,或者打开之后显示白屏、报错、或者只显示一部分内容。这时候问题就出在网站程序上了。可能是数据库连接失败了,很多动态网站依赖数据库来读取内容,如果数据库服务停了或者数据库密码被改了,程序拿不到数据就会出错。可能是代码里有个死循环或者内存泄露,每次有人访问的时候就卡住,直到进程崩溃。可能是某个依赖的第三方服务出了问题,比如你网站里嵌了一个天气插件,那个插件的服务器挂了,导致你的整个页面都在等它响应。排查这类问题需要看Web服务的错误日志,日志里会详细记录每一次访问的结果,如果程序出错了,通常会有明确的报错信息告诉你哪里出了问题。

    我记得去年帮一个做旅游攻略的网站处理过一次故障,现象很诡异,用手机浏览器访问正常,用电脑浏览器访问就报错。排查了半天发现是程序里有一段代码只检查了移动端的用户代理,对桌面端的用户代理处理逻辑写错了,直接抛出了异常。这个bug存在了半年多,一直没人发现,因为大部分编辑都是用手机后台发文章的,偶尔用电脑访问的人也没人反馈。后来他们统一走了CDN加速,CDN节点探测源站的时候用的正好是桌面端的用户代理,一下子就把这个bug给引爆了。所以你看,有些问题藏得很深,不是简单的通不通的问题,而是逻辑层面的问题。

    还有一种情况是域名被运营商或者某些软件给屏蔽了。这种事情我遇到过不止一次,某个网站本身没有任何违规内容,但被某个地区的运营商误判为恶意网站,在DNS层面直接给了一个错误的解析结果,用户访问的时候就被跳转到运营商的提醒页面。还有可能是你电脑上装的安全软件或者浏览器插件把域名加入了黑名单,导致请求被本地拦截。排除这类问题的方法就是换不同的网络、换不同的设备去访问,如果只有特定网络或者特定设备打不开,那问题就出在那条链路上。

    老周的案例最后是怎么解决的呢,他改了域名解析之后,发现还有一个遗留问题,就是他的网站用了全站HTTPS加密,而攻击者篡改解析期间把他的SSL证书给搞乱了。他重新申请并部署了证书,又清空了CDN的缓存,这才彻底恢复正常。整个过程前前后后花了大概四个小时,他说这四个小时教会他的东西比看一个月文档都多。

    写到这里,我想总结一下域名无法访问时的排查思路,希望能给你一个清晰的路线图。第一步,先确认是你自己打不开还是所有人都打不开,用在线工具测一下就知道。第二步,检查域名本身的状态,有没有过期,有没有被锁定。第三步,核对域名解析是否正确,用命令行工具手动查询域名,看返回的IP地址是不是你云服务器的IP。第四步,确认云服务器是否运行正常,Web服务有没有在跑。第五步,检查安全组和防火墙规则,确保访问端口是开放的。第六步,看看程序有没有报错,查看Web服务的错误日志。第七步,如果以上都正常,考虑是否存在网络屏蔽或者本地软件拦截的情况。

    域名无法访问这个事,说大不大说小不小。心态放平,按照逻辑一层层拆解,大多数问题都能在半小时内定位到原因。最忌讳的就是想到哪查到哪,一会儿去重启服务器,一会儿去改解析,一会儿又去重装系统,这样不仅解决不了问题,还可能把事情搞得更乱。



    最新推荐


    微信公众帐号
    关注我们的微信