记一次服务器维修
今天,我日常访问自己的网站的时候,发现又访问不上了。就开始找原因。
一、排查DNS相关问题
首先,从客户端访问到服务端的网站,需要dns将域名转为ip。
我就先使用 nslookup查看网站的域名记录解析是否正常,发现可以获取到域名的ip地址,华为云的域名解析在最近也有更新记录。
说明至少不是dns相关的问题,服务器的ddns也应该还在正常运转。
二、排查ip地址联通性问题
有了ip,还需要客户端网络,服务端网络以及两者之间的互联网是正常的。
浏览器和互联网几乎不可能出什么问题,所以我先看这个ip地址是否可以ping通。
结果发现无法ping通,这就很糟糕,意味着正常情况下我又和服务器失联了。
不过,刚好最近入手了OPPO findn5,也是免费用上了远控mac的功能,正好我的服务器也是mac,所以在此之前我就给我的服务器下了这道保险,即使ipv6失联,只要还有网,我就还能远程控制我的服务器。
话说回来,我先想到了两种无法ping通服务器ipv6的情况
- 首先就是上次我遇到的由于路由器(新买的凌霄Q7)的自动更新导致ipv6功能被关掉了,使得服务器失去了ipv6地址,ddns也无法正确更新dns记录。
- 其次就是服务器虽然有ipv6地址,但是出于某种原因(不是公网ipv6。公网ipv6访问被拦截),使得无法ping通。
因为上次我已经解决了服务器重启和路由器更新导致的ipv6失联问题,所以这次的情况我首先猜想是2。
通过手机远控服务器,成功(看来有网还是没什么问题的)。
使用 ifconfig查看ip地址,发现和ddns中获取,以及dns解析记录上面的是一样的。
可是我却怎么都无法ping通这个ipv6地址(甚至检查了下我的流量的ipv6访问正不正常),我就极大地怀疑是不是运营商不给公网ipv6地址了。
再通过这个网站查看服务器的ipv6地址,发现确实和 ifconfig获取到的不一样,这似乎印证了我的猜想。
不过,虽然两个ip不同,但是都是符合公网ip的格式的(ifconfig查到的也是 2408开头的,而不是 fe80开头的)。
于是,我就试着使用从网站查到的ip地址访问服务器的 VNC服务。
结果出人意料的是,竟然成功使用 VNC Viewer连接到了我的服务器的远程桌面。
这说明我的服务器仍然有公网ipv6地址,但不是从 ifconfig中查到的那个。
(至于为什么实际的和查到的不一样我还没搞清楚,这里标记个 TODO)
虽然没搞清楚原因,但是我知道了如何解决访问不上服务器的问题,先开始解决问题。
三、解决
首先我去到 ddns-go 的配置界面。
然后切换获取IP的方式,换到使用接口获取就可以了。
OK,ddns-go 重新获取了ipv6地址,dns解析记录也成功更新。
本来我以为我就可以访问上我的网站了,结果,还是失败。
经过一番查阅,原来是dns缓存的问题。
我先是手动切换了一下ipv6 DNS服务器,结果浏览器还是访问的之前的记录。
再次查阅,原来是浏览器也有dns缓存。
到如图所示的界面清除缓存,终于再次成功访问到自己的博客了。感动
💬 评论区
暂无评论,来发表第一条吧。