1267 字
6 分钟
国内为什么无法访问 GitHub?几个方法教你搞定

原因#

由于GFW影响,Github在中国大陆地区持续的受到大规模的DNS污染,目前部分地区只能间歇性访问,有的地方则是完全阻断。

GitHub 在全球开源领域的地位举足轻重,从基础软件到最前沿的科技项目一应俱全,各种知名的开源项目也都在上面进行开发和维护。毫无疑问,GFW的行为是布局对开源精神的严重伤害,使国内开发者的学习与工作受到了极大阻碍。

因此,此文就聊聊如何在国内访问Github的问题。

原理#

当我们在浏览器地址输入github.com的这一刻,DNS就开始发挥作用,将你输入的github.com翻译成可供连接的IP地址供你的电脑连接,如果返回的IP正确,你就成功获得了Github服务器的IP地址,继而进行访问。

但GFW就在这个过程中插手,当监听到你访问Github时,GFW便伪装成DNS服务器,返回了一个虚假的 IP 地址,因为这个IP错误,导致浏览器无法找到Github的服务器并进行连接,继而导致访问网站失败。因此想要顺利访问Github的关键就是如何避免GFW这个中间商,越过运营商的DNS服务器直接获得Github服务器的IP。

此时我们就要介绍一下hosts文件了,hosts文件是一个用于储存计算机网络中各节点信息的文件,它的作用是将常用的网址域名与其对应的IP地址建立关联。当用户在浏览器中输入网址时,系统会首先从hosts文件中查找对应的IP地址,如果找到,浏览器会立即打开对应网页。如果没有找到,才会提交给DNS服务器进行解析。

如果我们将Github服务器的IP写入电脑的hosts文件内,就可以绕过DNS服务器直接让浏览器获得服务器IP了。理论存在,实践开始

方法#

软件修改hosts文件#

打开电脑的Microsoft Store,在里面搜索Watt Toolkit这款软件并安装。

Watt Toolkit in Microsoft Store

打开安装好的Watt Toolkit,找到网络加速页面,在平台加速里找到Github并勾选,然后点击一键加速即可,软件就会自动在hosts文件里修改了。

Watt Toolkit UI

手动修改hosts文件#

注意虽然hosts文件广泛存在于各系统中,但是位置是不一样的:

  • Windows 系统:C:\Windows\System32\drivers\etc\hosts
  • Linux 系统:/etc/hosts
  • Mac(苹果电脑)系统:/etc/hosts
  • Android(安卓)系统:/system/etc/hosts
  • iPhone(iOS)系统:/etc/hosts

这里以windows系统为例,由于hosts文件需要管理员权限,无法直接在文件资源管理器打开。所以我们需要先在任务栏里搜索记事本,并以管理员身份运行。

Run Notepad as Administrator

点击记事本的左上角的文件,点击打开,在弹出的窗口里按照上面的路径找到hosts文件并打开。

Open hosts file in Notepad

打开就是下图样式,把以下的内容复制粘贴到hosts文件内容末尾(可能过时,可自行搜索最新版本)。

Editing hosts file

# GitHub Host Start
140.82.114.25 alive.github.com
140.82.113.5 api.github.com
185.199.110.153 assets-cdn.github.com
185.199.111.133 avatars.githubusercontent.com
185.199.111.133 avatars0.githubusercontent.com
185.199.111.133 avatars1.githubusercontent.com
185.199.111.133 avatars2.githubusercontent.com
185.199.111.133 avatars3.githubusercontent.com
185.199.111.133 avatars4.githubusercontent.com
185.199.111.133 avatars5.githubusercontent.com
185.199.111.133 camo.githubusercontent.com
140.82.112.22 central.github.com
185.199.111.133 cloud.githubusercontent.com
140.82.114.9 codeload.github.com
140.82.113.22 collector.github.com
185.199.111.133 desktop.githubusercontent.com
185.199.111.133 favicons.githubusercontent.com
140.82.112.3 gist.github.com
52.216.163.147 github-cloud.s3.amazonaws.com
52.217.124.1 github-com.s3.amazonaws.com
52.216.144.83 github-production-release-asset-2e65be.s3.amazonaws.com
52.217.121.249 github-production-repository-file-5c1aeb.s3.amazonaws.com
52.217.206.57 github-production-user-asset-6210df.s3.amazonaws.com
192.0.66.2 github.blog
140.82.114.4 github.com
140.82.113.18 github.community
185.199.110.154 github.githubassets.com
151.101.1.194 github.global.ssl.fastly.net
185.199.110.153 github.io
185.199.111.133 github.map.fastly.net
185.199.110.153 githubstatus.com
140.82.112.25 live.github.com
185.199.111.133 media.githubusercontent.com
185.199.111.133 objects.githubusercontent.com
13.107.42.16 pipelines.actions.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
185.199.111.133 user-images.githubusercontent.com
13.107.253.40 vscode.dev
140.82.112.21 education.github.com

刷新#

完成上述步骤后,我们清除一下电脑的本地 DNS 缓存

按下 Windows键 + R 打开“运行”对话框,在文本框中输入 ipconfig /flushdns,然后点击“确定”。

重启你的浏览器后,在地址栏输入网址:github.com即可访问Github了。

结尾#

目前部分地区好像针对Github域名进行了SNI干扰,如果是这样的话那改host这个方法就也失效了。

中国开发者在GitHub全球用户数量规模排名第三,活跃率更是全球第一。粗暴的封禁Github是不明智且弊大于利的,国内的码云和CSDN无论是用户数还是使用体验上还是不如Github的。

我并不是不支持国内的开源平台发展,我看到网络上有一些人总是拿Github封禁伊朗和国家安全来说事,说这是跪久了站不起来。我不想评价它们的用意,这些人很显然是没有用过Github也不是它的用户群体的,爱国全靠键盘。从国家层面来说我们是需要国产化,gitee如今的发展有这个必要。但从个人角度来说,知乎评论区的一句话写的很好:

GitHub有可能因为我的国籍封我,gitee有可能因为我的代码封我。

— 知乎用户

国内为什么无法访问 GitHub?几个方法教你搞定
https://thw.lol/posts/github/
作者
THW
发布于
2025-08-26
许可协议
CC BY-NC-SA 4.0