当前 github 主站可以正常解析和访问,但涉及静态资源的 CDN 域名格式如 xxx.githubusercontent.com
则无法解析。这种大部分都是静态的图片等资源,访问不到也就算了,关键是其域名解析不正常导致页面加载异常缓慢。
由于 GitHub 的这类资源使用的是 fastly CDN(Fastly, Inc),其在全球不同地区会有许多不同的 IP 解析,对 fastly CDN 这种大厂商的所有 IP 地址都进行屏蔽是不现实的。我们可以通过查找其域名 CDN IP,选取一个可以访问的 IP 进行本地绑定即可解决该问题。以 camo.githubusercontent.com
为例,具体方法参考如下。
1. 查找 CDN IP 并绑定 Host 解决域名无法访问
首先选择一个 IP 查询网站,如 ipaddress
或 ip138
,打开网站后,输入域名 camo.githubusercontent.com
查询其 IP 地址。
域名 DNS 解析 IP 查询网站参考:
- https://www.ipaddress.com
- https://site.ip138.com
- https://ip-api.com
- https://tool.chinaz.com/dns
- https://www.ping.cn/dns
笔者本次通过 ipaddress
查询得到的 IP 地址为: 199.232.96.133
。
然后我们编辑本机的 hosts 配置文件,记得要以管理员权限打开。其 windows 位置为 c:\windows\System32\drivers\etc\hosts
,Mac 和 linux 上的位置默认为 /etc/hosts
。
windows 下可以进入该目录,选择该文件并右键选择以管理员权限用记事本打开即可编辑。
Mac/Linux 上执行如下命令编辑它:
sudo vi /etc/hosts
然后在末尾添加 hosts 绑定信息,示例如下(示例中包括了当前 githubusercontent 相关的主要二级域名):
# gitHub start # 52.74.223.119 github.com # 140.82.112.3 gist.github.com # 140.82.112.6 api.github.com 185.199.110.153 assets-cdn.github.com 199.232.96.133 raw.githubusercontent.com 199.232.96.133 user-images.githubusercontent.com 199.232.96.133 gist.githubusercontent.com 199.232.96.133 cloud.githubusercontent.com 199.232.96.133 camo.githubusercontent.com 199.232.96.133 avatars.githubusercontent.com 199.232.96.133 avatars0.githubusercontent.com 199.232.96.133 avatars1.githubusercontent.com 199.232.96.133 avatars2.githubusercontent.com 199.232.96.133 avatars3.githubusercontent.com 199.232.96.133 avatars4.githubusercontent.com 199.232.96.133 avatars5.githubusercontent.com 199.232.96.133 avatars6.githubusercontent.com 199.232.96.133 avatars7.githubusercontent.com 199.232.96.133 avatars8.githubusercontent.com # gitHub end
最后按 ESC
键并输入 :wq
保存退出即可。
2. 相关扩展:域名解析分析
当发现网站域名无法正常访问时,可以借助以下命令对域名解析的具体细节进行分析诊断。
-
使用
ping
命令可以查看域名当前的解析 IP 地址。示例:ping lzw.me
-
使用
dig
或nslookup
命令查看域名的 DNS 解析细节。示例:
# linux/Mac 下 dig +trace lzw.me # windows 下 nslookup lzw.me
- 使用
traceroute
或tracert
命令可以追踪路由转发的细节,以协助诊测网络情况。示例:
# linux/Mac 下 traceroute lzw.me # windows 下 tracert lzw.me
github 都不能正常打开了。
通常IP段都被屏蔽了,这是个尴尬的事情,还好有gitee