記一次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 模式下正常打開了。)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM