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
:
希望最後一項內容儘快完成吧。