Fork me on GitHub

记一次github.io打不开的解决经历

记一次github.io打不开的解决经历

记得之前有 github.com 打不开或者打开很慢的解决方案,现在轮到了 github.io,哈哈。我的 github.io 很久开始就打不开了,当时从网上试了几种方法没成功就放弃了,今天查资料需要打开 github.io,又有点时间,所以主要针对这个解决了一下。从本文您可以了解到:

  1. 碰到这种dns的问题该怎么排查?
  2. 怎么解决打不开github.io的问题?

使用ping

ping命令其实很强大,不仅可以知道能不能连接,延时是多少,还可以知道dns解析的ip地址是多少,比如我们ping www.baidu,com,命令行显示如下:

PING www.baidu.com (14.215.177.38): 56 data bytes
64 bytes from 14.215.177.38: icmp_seq=0 ttl=56 time=9.461 ms
64 bytes from 14.215.177.38: icmp_seq=1 ttl=56 time=12.325 ms
64 bytes from 14.215.177.38: icmp_seq=2 ttl=56 time=15.366 ms

可以看到,后面小括号里面的 14.215.177.38 就是 ip 地址了。

然后我们去ping github.io,显示如下:

PING github.io (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.030 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.105 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.084 ms

本地 hosts 文件

上面显示 ip 地址为127.0.0.1,这个就是本机地址嘛,然后我去/etc/hosts里面查看hosts文件有没有被意外修改过,没看到github.io被解析到127.0.0.1的记录,这就表示,电脑上的dns解析是完好的,但是远程的 dns 解析很可能惨遭网络运营商的污染了,从而导致解析的时候被解析到了127.0.0.1

修改本机 dns

于是我们去修改本机的dns,加入114.114.144.1148.8.8.8,这两个 dns 都是非商业用途的 dns,解析成功率很高,并且纯净无广告。前一个是国内移动、电信和联通通用的 DNS,是国内用户上网常用的DNS;后一个是 GOOGLE公司提供的 DNS,该全球通用的。

这里以 mac 为例,依次打开系统偏好设置->网络->高级->dns,然后加入即可。加入之后需要刷新mac缓存,命令如下(记住一定要带上sudo,否则不会生效):

sudo killall -HUP mDNSResponder

然后我们再来ping github.io,显示如下:

PING github.io (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=64 time=36.350 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=64 time=23.312 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=64 time=24.262 ms

可以看到,本机 dns 修改生效了,解析到8.8.8.8了。

被墙了

然后我们兴趣冲冲的打开https://octokit.github.io/rest.js/v18,发现还是打不开。于是我们想着ping一下这个url试试?结果如下:

PING https://octokit.github.io/rest.js/v18 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=116 time=25.442 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=28.669 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=22.312 ms

我们发现是可以ping通的,但是还是在浏览器打不开就表示,这个网站可能被墙了!!!

那么有没有解决方案呢?

其实是有的,之前我的 shadowxsocks 一直开的是PAC 自动模式,我灵机一动开启全局模式,然后惊喜的发现,https://octokit.github.io/rest.js/v18能够打开了!!!

总结

  1. 以后碰到这种dns问题,就按照上面的顺序一步一步排查即可。(适当的时候可以打开chrome://net-internals/#dns刷新一下google浏览器的dns)
  2. 碰到这种被墙的情况,打开科学x上网工具的全局模式就好。
  3. 这中间有个小问题,就是为什么 PAC 模式下也能打开被墙的网站,而另外一些被墙的网站需要全局模式才能打开呢?(我的想法是,有些url是被网络运营商的 dns 污染的,所以走的网络运营商的 dns,而没有走科学x上网工具的 dns,所以需要开启全局模式不走网络运营商的dns才行。而另外一些网站没有被网络运营商的 dns 解析,所以走的科学x上网工具的 dns,所以就能在 PAC 模式下正常打开了。)
posted @ 2020-11-14 16:52  馒头加梨子  阅读(9909)  评论(0编辑  收藏  举报