在国内访问github的时候,有时候能访问,有时候不能访问。
原因是,github.com这个域名对应的IP地址有很多个,有些在我国允许访问的范围内,有些不在。当你的计算机通过DNS解析的github.com对应的地址恰好在我国允许访问的范围内,你就可以访问,反之不能。
通常情况下,多刷新几次浏览器,DNS多解析几次,就有可能会正常打开github。但是过不了多久,又会出现同样的问题。
如何彻底解决不能访问的问题呢?
其实,只需要将你访问的github.com固定解析到一个国内可以访问的IP地址上就行。
至于DNS服务器,基本上你是无权限修改和配置的。不过,你的电脑倒是可以被你完全控制。因此,来修改C:\Windows\System32\drivers\etc\hosts这个文件,为它添加一条DNS解析即可。
操作步骤:
1、在浏览器可以访问github.com的时候,打开控制台,执行域名解析:
Microsoft Windows [版本 10.0.22621.1413] (c) Microsoft Corporation。保留所有权利。 C:\Users\Zmrbak>nslookup github.com 服务器: secdns.cdut.edu.cn Address: 202.115.128.34 非权威应答: 名称: github.com Address: 20.205.243.166 C:\Users\Zmrbak>
记录下github.com域名的IP地址 20.205.243.166。
2、用记事本打开C:\Windows\System32\drivers\etc\hosts
# Copyright (c) 1993-2009 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost 20.205.243.166 github.com
按照示例,最后面添加一行 “20.205.243.166 github.com”。然后保存文件。
注意:由于hosts是系统文件,有可能你没有权限写入。遇到这种情况,先将其保存在其他地方(比如,桌面上)。再确保未自动添加扩展名。接下来,将其拖入C:\Windows\System32\drivers\etc\文件夹,将原来的hosts文件覆盖掉即可。
3、测试
从浏览器打开github.com,点击上面的连接,你会发现是可以正常访问。像360浏览器会出现如下安全警告。
这种情况,可以忽略。从提示信息可以看出,这次访问是通过hosts解析,而非dns解析。从此,你访问github的时候,其实访问的就是一个固定IP地址。
当然,也会有潜在的问题,比如这个IP地址的服务器关机了,那你就再也访问不了github了。解决办法就是,删除hosts中的这条记录,然后按照本文重来一遍。