之所以说它是失败的原因是我的宽带,联通宽带去申请即可获得公网 IP ,但并不是固定公网,会随机跳,但一般不会低于 24 小时。但由于联通的恶心操作,我两条宽带中的一条的 IP 变得更加的不固定了,最高频次甚至半小时换了两次。
一开始我并没有注意到这个问题。直到我的一个在线服务在总是偶尔报错,但过会儿又自动恢复。我仔细检查过了,服务本身正常,本地网路设施正常(初次检查的时候没有意识到是 IP 问题),云端配置也是正常的,但在线率只有 80% 左右,这一定出了问题。
# 排查
上个周末,收到邮件警报,正好无聊,就顺藤摸瓜查一查出错的原因。
这个服务是一个外网访问本地文件,路径也很简单,抽象一下就是:外网客户端访问域名》DNS 服务器解析 IP》根据 IP 访问本地服务器。DNS 解析是 TP-link 路由器自带的,会自动更新并且还免费。
此时域名已经无法访问了。我当即就检查域名解析情况,发现和我本地服务器获取到的 IP 不一致,然后我看了下路由器的控制台,两条宽带的 IP 确实都与域名解析得到 IP 不一致。这就很奇怪了,我就再看了一下 WAN 口情况,TMD,有一个口竟然是 2 分钟前获取的 IP ,这 DNS 解析当然还没更新上啊,然后我就各种找原因。
路由器本地是没有坏的,为了防止判断出错,我特意将路由重启了一下,重新拨号,两个端口都获取到新的公网 IP 了,大约过了 5 分钟,外网访问也解析上了,那也就说明 DDNS 其实是工作正常的,并且在路由器上,两个端口的拨号在线时长是一样的。