写在最前
Github时不时抽风,老是访问不了,诚然,用科学上网能解决一切这类问题,但是,能不翻墙还是不要翻墙的好。这里采用的是通过修改本地hosts,配置域名和IP映射关系,这样一来,当我们访问github时,这些域名可以直接从本地hosts文件中获取IP,而不需要再去DNS服务器上询问一圈。从而提高访问速度。
修改hosts
以Windows系统为例,
hosts的路径是C:\Windows\System32\drivers\etc,
打开后将以下内容复制到文件最下方。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23185.199.108.154 github.githubassets.com
199.232.68.133 camo.githubusercontent.com
199.232.68.133 github.map.fastly.net
199.232.69.194 github.global.ssl.fastly.net
140.82.113.3 gist.github.com #gist现在被墙的很彻底,就算添加进hosts也访问不了。
185.199.108.153 github.io
140.82.113.4 github.com
140.82.114.5 api.github.com
199.232.68.133 raw.githubusercontent.com
199.232.68.133 user-images.githubusercontent.com
199.232.68.133 favicons.githubusercontent.com
199.232.68.133 avatars5.githubusercontent.com
199.232.68.133 avatars4.githubusercontent.com
199.232.68.133 avatars3.githubusercontent.com
199.232.68.133 avatars2.githubusercontent.com
199.232.68.133 avatars1.githubusercontent.com
199.232.68.133 avatars0.githubusercontent.com
140.82.114.9 codeload.github.com
52.217.83.84 github-cloud.s3.amazonaws.com
52.216.229.155 github-com.s3.amazonaws.com
52.216.30.60 github-production-release-asset-2e65be.s3.amazonaws.com
52.216.17.0 github-production-user-asset-6210df.s3.amazonaws.com
52.216.236.43 github-production-repository-file-5c1aeb.s3.amazonaws.com
保存后,win+X,按A,以管理员权限启动powershell,输入1
ipconfig /flushdns
刷新DNS缓存。之后就能变快了……
才怪嘞,因为上述域名的IP是不停在变的,这一串映射仅仅适用于今天而已,到了明天,ip一变动,又登不上了,我总不可能天天来更新吧?
使用爬虫脚本实时获取最新ip
需要查询ip地址的域名有这么多。手动添加肯定是不乐意的了。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23github.githubassets.com
camo.githubusercontent.com
github.map.fastly.net
github.global.ssl.fastly.net
gist.github.com #gist现在被墙的很彻底,加进hosts也无济于事
github.io
github.com
api.github.com
raw.githubusercontent.com
user-images.githubusercontent.com
favicons.githubusercontent.com
avatars5.githubusercontent.com
avatars4.githubusercontent.com
avatars3.githubusercontent.com
avatars2.githubusercontent.com
avatars1.githubusercontent.com
avatars0.githubusercontent.com
codeload.github.com
github-cloud.s3.amazonaws.com
github-com.s3.amazonaws.com
github-production-release-asset-2e65be.s3.amazonaws.com
github-production-user-asset-6210df.s3.amazonaws.com
github-production-repository-file-5c1aeb.s3.amazonaws.com
因为github相关的诸多域名的ip是在变动的,为了能够实时获取最新的ip,我们可以使用爬虫来从站长之家或其余ip查询网站上爬取最新ip。
这里要用到python,安装推荐使用Anaconda,Anaconda安装方式推荐参看Win10重装日记的3.2章节。根据Anaconda版本与python版本的对照选择自己需要的Anaconda安装包,然后直接安装即可,路径建议修改为非系统盘,同时务必勾选将python路径加入到环境变量的选项。
新建一个python脚本——githosts.py(最简单的方法,新建一个txt文本文件,把下面的代码粘贴进去以后,修改后缀为.py)
1 |
|
然后把githosts.py放到C:\Windows\System32目录下(不放其实也可以,只是这样一来每次都要自己cd路径。)
win+X,按A,以管理员权限启动Powershell,输入1
python githosts.py
然后脚本就会自动爬取最新的IP与域名到你的hosts文件中了。
因为github相关的诸多域名的ip是在变动的,为了能够实时获取最新的ip,我们可以使用爬虫来从站长之家或其余ip查询网站上爬取最新ip。
这里要用到python,安装推荐使用Anaconda,Anaconda安装方式推荐参看Ubuntu重装日记的7.2章节。根据Anaconda版本与python版本的对照选择自己需要的Anaconda安装包,按照教程指示安装,注意安装时控制台输出的提示信息,务必选择将python路径加入到环境变量的选项。
新建一个python脚本——githosts.py(最简单的方法,新建一个txt文本文件,把下面的代码粘贴进去以后,修改后缀为.py)
1 |
|
在脚本所在文件夹打开terminal(即终端),输入指令1
sudo python githosts.py
然后脚本就会自动爬取最新的IP与域名到你的hosts文件中了。
可能遇到的bug
老老实实按照上面说的来,看仔细加粗的地方,就不会有下面的bug。
没有权限修改hosts
这个应该是windows用户才会遇到,如果是脚本改写,那一定是没有用管理员权限启动Powershell,如果只是单纯手动添加hosts,那么可以直接复制hosts文件到有权限修改的目录下,然后把IP复制进去,接着再复制回原hosts路径,覆盖掉当前hosts。也可以考虑使用火绒安全管家,它的工具箱里有提供直接修改hosts的功能。
python的环境变量没添加
那就是安装的时候没勾选,找到Anaconda的安装目录,在根目录里有python.exe文件,至于怎么添加还请自行百度。(其实卸载了Anaconda以后重新安装,这次记得勾选添加到环境变量也可以。顺带一提,卸载很慢哦,还不如老老实实自己添加一下),UNIX系统的操作也类似。
缺少requests包
一般Anaconda是自带一些基础包库的,没有这个包说明你是从python官网下载的python安装包。不过就算缺少,也可以通过pip install [packages]来安装。遇到安装速度慢的情况,就去自行百度“pip install 换清华源”。
报错“NoneType’ object has no attribute ‘find_all”
该报错有两种情况。
最有可能是站长之家的域名网址变动,例如从ip.chinaz.com变为ip.tool.chinaz.com,将源代码中url = "https://ip.tool.chinaz.com/" + i.strip()里的域名改为现行网址即可。
如果是页面元素结构变化则需要通过F12查看原网页元素id或者class来确定元素位置重新改写源代码x = x.find_all("span", class_="Whwtdhalf")中需要find_all的元素(也即是我们需要的ip查询结果)
MAC OS dns刷新失败
博主没使用过mac系统,但是有人反馈了就去查了一下,Mac OS刷新DNS的指令貌似是有在随版本变化的。请读者根据自己的版本选择相应的指令,替换脚本最后一行的指令内容。1
2
3
4
5
6# Mac OS X 10.7 – 10.8
sudo killall -HUP mDNSResponder
# Mac OS X 10.5 – 10.6
dscacheutil -flushcache
# Mac OS X 10.4
lookupd -flushcache
参考内容
- github访问太慢解决方案:脚本原作者。
- GitHub520开源项目:值得添加IP的域名参考。
更多内容

Use this card to join the candyhome and participate in a pleasant discussion together .
Welcome to Akilar's candyhome,wish you a nice day .





