解决GitHub访问不了的方法

一直用的 GitHub,突然一下子不能访问了,最后发现是 DNS 解析的 IP 地址出了问题,按照以下方法修改又能访问 github 了。

最后发现是DNS解析被污染了,解析到了无法访问的ip地址,通过ipaddress等网站查询到正确的地址,采用本地解析的方式,最终解决了问题。

关于DNS解析污染参考这篇文章

在本地 host 文件中添加映射,步骤如下

用文本编辑器打开 hosts 文件,Windows 系统位于 C:\Windows\System32\drivers\etc\hosts ,Linux 系统 /etc/hosts (其他系统请自行查阅)

打开http://tool.chinaz.com/dns (opens new window)或者 https://www.ipaddress.com (opens new window),

这是两个查询域名映射关系的工具,我一般用后者

查询 github.com, raw.githubusercontent.com, github.global.ssl.fastly.net 和 assets-cdn.github.com 两个地址,以及其他请求失败的地址,获取 IP

反复多查几次,选择一个比较稳定,延迟较低的 TTL 按如下方式添加到 Host 文件

刷新 DNS 缓存,命令如下。

如果DNS解析正确了,但是依然访问不了,可能是IP被block了,此时方法一,多试几个ip, 运气好可能有一两个可以用的。
方法二,需要借助魔法,魔法可以到我的首页去找,只能帮到这里了。

获取魔法可以到鹏叔的技术博客首页去找

1
2
3
4
5
6
7
8
9

# Windows 清除DNS缓存内容
ipconfig /flushdns
# Windows 显示DNS缓存内容
ipconfig /displaydns

# Linux 系统
systemctl restart nscd

最后,贴下我的 Host 文件,直接复制就可以使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

# Github
# 13.229.188.59 github.com
# 151.101.109.194 github.global.ssl.fastly.net
140.82.112.3 github.com
140.82.113.3 github.com

151.101.1.194 github.global.ssl.fastly.net
151.101.65.194 github.global.ssl.fastly.net
151.101.129.194 github.global.ssl.fastly.net
151.101.185.194 github.global.ssl.fastly.net

151.101.100.133 assets-cdn.github.com

192.30.253.119 gist.github.com
199.232.4.133 assets-cdn.github.com

185.199.108.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com

# StackOverFlow
151.101.1.69 cdn.sstatic.net
151.101.129.69 cdn.sstatic.net
151.101.65.69 cdn.sstatic.net
151.101.193.69 cdn.sstatic.net
151.101.129.69 cdn.sstatic.net
151.101.1.69 cdn.sstatic.net
151.101.193.69 cdn.sstatic.net
151.101.65.69 cdn.sstatic.net

192.168.2.58 host.docker.internal
192.168.2.58 gateway.docker.internal
192.168.1.105 host.docker.internal
192.168.1.105 gateway.docker.internal
# Added by Docker Desktop
192.168.2.65 host.docker.internal
192.168.2.65 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
172.17.205.241 windows10.microdone.cn


参考文档

解决 GitHub 访问不了的方法