作者:氷泠
来源:SegmentFault 思否社区
1 前言
众所周知
Github
在国内的访问速度一直都不怎么样,主要的原因是
DNS
解析太慢了,也就是从
github.com
获取
IP
的过程太慢了,因此,一种最有效的办法是直接修改本地
Hosts
,饶过
DNS
解析。
这也是本文的出发点,虽然,这样的文章网上有很多,百度一搜出来基本上都是如下的套路:
-
通过
IP
解析网站得到
github.com
的
IP
/直接给出某个
IP
-
修改本地
Hosts
-
刷新缓存
当然,这样最大的一个坏处是当
IP
更新的时候每次都需要去修改
Hosts
,非常麻烦。受到该仓库的启发,本文提供了一种自动修改的方法,非常方便。
本文主要分成两个部分介绍:
-
手动修改
Hosts
-
通过工具自动修改
Hosts
首先看一下第一部分。
2 手动修改Hosts
2.1 修改Hosts
首先打开该仓库:
复制其中的内容到
Hosts
文件中,各大平台
Hosts
文件位置如下:
-
Windows
:
C:\Windows\System32\drivers\etc\hosts
-
Linux
:
/etc/hosts
-
Mac
:
/etc/hosts
-
Android
:
/system/etc/hosts
-
iOS
:
/etc/hosts
根据对应平台修改上述的文件,添加内容到
Hosts
末尾即可。
2.2 使Hosts生效
大部分情况下修改完
Hosts
文件后直接生效,如果不生效,可以尝试手动刷新
DNS
缓存,具体如下:
-
Windows
:打开
cmd
,输入
ipconfig /flushdns
-
Linux
:
sudo rcnscd restart
-
Mac
:
sudo killall -HUP mDNSResponder
如果不生效可以尝试重启机器。
3 自动方式(推荐)
上面的方式需要手动修改
Hosts
文件,非常麻烦,这里推荐一种自动修改的方式。
在此之前需要一个工具:
SwitchHosts
。
3.1 SwitchHosts安装
官方仓库在此处,直接到
Release
下载即可。
或者从软件包仓库安装,以笔者的
Manjaro
为例:
paru -S switchhosts-bin
3.2 配置
打开后,点击左下角的加号按钮,添加一个新的规则:
内容如下:
-
标题:随便
-
类型:
Remote
-
URL
:
https://cdn.jsdelivr.net/gh/521xueweihan/GitHub520@main/hosts
-
自动刷新时间:第一次添加可以先选择
1 minute
,有了规则以后,就可以选择
1 hour
配置好后就可以看到了:
3.3 一个小问题
笔者在实测的时候发现如果直接通过启动菜单启动
SwitchHosts
,添加新的规则老是失败:
无论输入的是用户的密码还是
root
的密码都不行。
于是笔者找了一下启动命令,直接
sudo
启动:
sudo switchhosts
启动失败,按照提示加上
--no-sandbox
(这是一个
eletron
的参数):
sudo switchhosts --no-sandbox
需要注意在启动之前需要把原来普通模式启动的
SwitchHosts
先退出了,不然会提示端口占用:
启动之后就可以直接修改
Hosts
而不需要密码了。
另外这里有一个小细节就是两种模式下(普通模式/
sudo
模式)启动的图标不一样:
4 效果
配置好
DNS
后应该能正常访问
Github
上的图片了:
5 后记
通过上面的配置
DNS
方法应该就可以顺利访问
Github
了,此外,该仓库还介绍了另一种自动配置
DNS
的方式:
AdGuard Home
:
由于笔者没有用过就不说这个了。最后,该仓库还有一个
TODO
:
希望最后一项内容尽快完成吧。
点击左下角阅读原文,到
程序IT圈
官方网站学习,扫描下方”
二维码
“或在“
公众号后台
“回复“
入群
”即可加入我们的
技术交流群
,收获更多的技术文章~