作为全球最大的开源代码托管平台,GitHub 几乎是每个开发者日常离不开的工具。然而在国内,我们经常会遇到 GitHub 打不开、加载慢、图片裂、下载龟速等问题,严重影响开发效率。

这篇文章会从原理讲起,带你了解为什么 GitHub 访问困难,并汇总多种实用解决方案,从最简单的镜像站到进阶的 Hosts 修改,总有一种适合你。


一、为什么 GitHub 总是打不开?

在说解决方案之前,先简单聊聊背后的原因。了解原理后,你会更清楚每种方法是在解决哪一层的问题。

1. DNS 解析问题

这是最常见也最主要的原因。当你在浏览器输入 github.com 时,浏览器需要通过 DNS 服务器把域名解析成对应的 IP 地址。由于某些原因,国内部分 DNS 服务器返回的 GitHub 解析结果可能被污染或指向了错误的地址,导致无法正常访问。

典型表现:页面显示 "无法访问此网站"、"ERR_CONNECTION_RESET",或者一直转圈加载不出来。

2. 服务器物理距离远

GitHub 的服务器主要位于美国,数据跨越大洋传输,延迟本身就比较高。再加上国际出口带宽在高峰时段拥堵,访问速度慢也就不难理解了。

典型表现:网页能打开,但加载很慢,图片半天刷不出来,下载代码只有几十 KB/s。

3. 网络策略限制

出于网络安全管理的需要,国内对部分境外网站的访问有一定限制。GitHub 虽然没有被完全屏蔽,但在特定时期或特定网络环境下,可能会出现访问不稳定的情况。

4. 2025 年的 403 事件

2025 年 4 月,GitHub 曾出现过一次大规模的中国 IP 访问故障——未登录用户直连 GitHub 会收到 403 报错。后来 GitHub 官方回应是配置变更意外导致的,并已修复。这也提醒我们,GitHub 的访问状态可能会因为各种原因随时变化。


二、解决方案总览

下面按「上手难度从低到高」排列,推荐你从上往下依次尝试,找到最适合自己的方法。

方法难度效果适用场景
镜像站访问★☆☆☆☆浏览代码够用临时查看代码、下载文件
浏览器插件加速★☆☆☆☆网页加速效果好常用浏览器访问 GitHub
切换 DNS★★☆☆☆有一定效果排查 DNS 污染问题
修改 Hosts 文件★★☆☆☆稳定有效不想装软件,手动配置
SwitchHosts 自动更新★★★☆☆一劳永逸长期稳定使用
网络加速工具★★★☆☆效果最好需要完整功能、稳定访问
Gitee 中转★★☆☆☆适合下载大仓库clone 大型项目

三、方法一:镜像站直连(最简单)

如果你只是想快速浏览某个仓库的代码、下载个文件,用镜像站是最省事的方法——不需要任何配置,打开就能用。

什么是镜像站?

镜像站就是把 GitHub 的内容完整同步一份到其他服务器上,界面和功能几乎一模一样,但访问速度更快。

常用镜像站

  • FastGithttps://hub.fastgit.xyz
  • KGitHubhttps://kkgithub.com
  • GitHub 镜像https://github.com.cnpmjs.org
  • ghproxyhttps://ghproxy.com(文件下载加速)

使用方法

把原 GitHub 链接中的 github.com 替换成镜像站域名即可。

举个例子,原地址:

https://github.com/vuejs/vue

替换后:

https://hub.fastgit.xyz/vuejs/vue

注意事项

  • 不要在镜像站登录你的 GitHub 账号,避免账号安全风险
  • 镜像站可能随时失效,如果一个打不开可以换另一个试试
  • 镜像站通常只能浏览和下载,无法进行 push、issue 评论等需要登录的操作

四、方法二:浏览器插件加速

如果你经常在浏览器里访问 GitHub,安装一个加速插件是性价比很高的选择。

常用插件

  • GitHub 加速(Chrome/Edge 扩展商店可搜):自动替换资源链接为镜像地址,加速页面加载和文件下载
  • 油猴脚本:在 Greasy Fork 搜索 "GitHub 加速",有很多用户分享的脚本可以直接用

原理

这类插件的本质是在你访问 GitHub 页面时,自动把页面中的资源链接(比如图片、下载按钮的地址)替换成镜像站的加速链接,从而提升加载速度。

优缺点

  • 优点:安装简单,无感使用,不影响正常访问
  • 缺点:依赖插件作者维护的镜像源,如果镜像源失效,插件也就没用了

五、方法三:切换 DNS 服务器

DNS 解析慢或者被污染时,换一个公共 DNS 可能就能解决问题。

推荐的公共 DNS

  • Google DNS8.8.8.8 / 8.8.4.4
  • Cloudflare DNS1.1.1.1 / 1.0.0.1
  • 阿里 DNS223.5.5.5 / 223.6.6.6
  • 腾讯 DNS119.29.29.29

修改方法

Windows 系统

  1. 右键点击右下角网络图标 → "网络和 Internet 设置"
  2. 找到你正在使用的网络 → "更改适配器选项"
  3. 右键当前网络 → "属性"
  4. 双击 "Internet 协议版本 4 (TCP/IPv4)"
  5. 选择 "使用下面的 DNS 服务器地址",填入上面的 DNS
  6. 确定保存

Mac 系统

  1. 系统设置 → 网络 → 选中当前网络 → 详细信息
  2. DNS → 点击 "+" 添加 DNS 服务器
  3. 点击 "好" 保存

六、方法四:手动修改 Hosts 文件(经典方案)

这是流传最广也最经典的方法——直接在本地 hosts 文件里写死 GitHub 域名对应的 IP 地址,跳过 DNS 解析环节。

原理

系统在访问域名时,会先检查本地 hosts 文件里有没有对应的 IP 映射。如果有,就直接使用这个 IP,不再去问 DNS 服务器。这样就绕开了 DNS 污染的问题。

操作步骤

第一步:获取 GitHub 最新 IP 地址

可以通过以下网站查询 GitHub 各个域名当前可用的 IP:

  • https://github.com.ipaddress.com (查 github.com 的 IP)
  • https://github.global.ssl.fastly.net.ipaddress.com (查 fastly CDN 的 IP)
  • 站长工具 DNS 查询:http://tool.chinaz.com/dns/

你需要获取以下几个关键域名的 IP:

github.com

github.global.ssl.fastly.net
assets-cdn.github.com
raw.githubusercontent.com
avatars.githubusercontent.com

小技巧:在站长工具里查询时,选 TTL 值最小、响应最快的那个 IP。

第二步:修改 Hosts 文件

Windows 系统

  1. 按下 Win + S 搜索 "记事本"
  2. 右键记事本 → "以管理员身份运行"
  3. 左上角菜单:文件 → 打开
  4. 路径填入:C:\Windows\System32\drivers\etc\hosts
  5. 右下角文件类型选 "所有文件",就能看到 hosts 文件了
  6. 在文件末尾添加查到的 IP 和域名,例如:
140.82.114.4 github.com
199.232.69.194 github.global.ssl.fastly.net
185.199.108.133 raw.githubusercontent.com
185.199.108.133 assets-cdn.github.com
  1. 保存文件

Mac / Linux 系统

打开终端,输入:

sudo vim /etc/hosts

输入密码后,在文件末尾添加上面的内容,保存退出。

第三步:刷新 DNS 缓存

修改完 hosts 后,刷新一下 DNS 缓存让配置生效。

Windows

ipconfig /flushdns

Mac

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Linux

sudo systemd-resolve --flush-caches

或者

sudo /etc/init.d/nscd restart

缺点

GitHub 的 IP 地址会不定期变化,过一段时间可能就失效了,需要重新查询并更新。这也是为什么很多人反映 "改了 hosts 一开始能用,过几天又不行了"。


七、方法五:SwitchHosts 自动更新 Hosts(推荐)

既然手动改 hosts 这么麻烦,有没有办法自动更新呢?当然有——用 SwitchHosts 这个工具配合自动更新的 hosts 源,可以实现一劳永逸。

什么是 SwitchHosts?

SwitchHosts 是一个开源的 hosts 文件管理工具,支持远程订阅 hosts 列表、定时自动更新、一键切换不同的 hosts 配置。

配置步骤

  1. 下载安装 SwitchHosts

    官网:https://swh.app/(如果官网打不开,可以去 GitHub 搜索 "SwitchHosts" 下载)

  2. 添加远程 hosts 订阅

    打开 SwitchHosts,点击左上角的 "+" 号:

  3. 启用配置

    勾选刚添加的远程 hosts,SwitchHosts 会自动把内容写入系统 hosts 文件。

优点

  • 自动更新,不用手动查 IP
  • 一键开关,方便对比效果
  • 支持多套配置,想用哪个切哪个
提示:如果 raw.githubusercontent.com 本身都打不开,可以先用方法四手动加一条 raw 的 IP 把这个域名通了,再用 SwitchHosts 接管。

八、方法六:网络加速工具(效果最稳)

如果你需要长期、稳定地使用 GitHub 的完整功能(push 代码、管理仓库、Issue 协作等),加速工具是最省心的选择。

常用工具

  • Watt Toolkit(原 Steam++):一款开源的多功能加速工具,内置 GitHub 加速,一键开启,小白友好
  • DevSidecar:专门为开发者设计的边车代理工具,主打 GitHub、npm 等开发资源加速
  • Cloudflare WARP:Cloudflare 官方出品的免费网络优化工具,能改善国际链路质量

原理

这类工具本质上是在你的电脑上跑一个本地代理,把发往 GitHub 的流量通过优化过的链路转发出去,从而绕过限制、提升速度。

注意事项

  • 请从官方渠道下载,避免下载到捆绑恶意软件的版本
  • 部分工具可能需要管理员权限安装网络驱动,属于正常现象

九、方法七:Gitee 中转下载

如果你只是想 clone 一个大仓库,直接从 GitHub 拉取速度太慢,可以试试用 Gitee 当中转站。

操作步骤

  1. 打开 Gitee 并登录
  2. 点击右上角 "+" → "从 GitHub/GitLab 导入仓库"
  3. 粘贴 GitHub 仓库地址,点击导入
  4. 等待导入完成(大仓库可能需要几分钟)
  5. 从 Gitee 上 clone 这个仓库,速度会快很多

同步更新

导入后的仓库如果需要和 GitHub 原仓库保持同步,可以在 Gitee 仓库页面点击 "刷新" 按钮进行同步。


十、方法八:GitHub 文件下载加速

如果你只是想下载 GitHub 上某个文件,不需要访问整个网站,可以用下面这些专门的下载加速服务。

gh-proxy

地址:https://ghproxy.com

使用方法:把 GitHub 文件链接粘贴进去,就能生成加速下载地址。

也可以直接在原链接前拼接:

https://ghproxy.com/https://github.com/xxx/xxx/archive/refs/heads/main.zip

JSDelivr CDN

JSDelivr 是一个免费的 CDN 服务,可以加速 GitHub 上的静态资源(js、css、图片等)。

把链接中的 https://raw.githubusercontent.com/用户名/仓库/分支/路径 替换为:

https://cdn.jsdelivr.net/gh/用户名/仓库@分支/路径
注意:JSDelivr 不能加速 Release 中的 exe、dmg 等二进制文件,只能加速仓库代码内的文件。

十一、常见问题排查

1. 改了 hosts 还是打不开?

  • 确认是否用了管理员权限保存 hosts 文件
  • 检查 hosts 文件里的 IP 是否还能 ping 通
  • 刷新 DNS 缓存,或者重启浏览器/电脑
  • 可能是 IP 又变了,重新查一下最新 IP

2. 网页能打开,但图片显示不出来?

这通常是 avatars.githubusercontent.comraw.githubusercontent.comgithubusercontent.com 这些子域名的问题。在 hosts 文件里把这些域名也加上对应的 IP 就好了。

3. git clone 很慢怎么办?

  • 可以在 clone 时用 --depth 1 只拉取最新版本,减少下载量
  • 把仓库地址换成镜像站地址再 clone
  • 配置 git 走代理:git config --global http.proxy http://127.0.0.1:端口号

4. 为什么有时能打开有时打不开?

因为 DNS 解析的结果可能在多个 IP 之间轮询,有时候解析到能用的 IP,有时候解析到被墙的 IP。改 hosts 固定 IP 就能解决这个问题。


十二、写在最后

GitHub 访问困难是国内开发者的老问题了,而且情况随时可能变化。今天能用的方法,明天可能就失效了。

几点建议:

  • 多备几种方案:不要只依赖一种方法,hosts、镜像站、加速工具组合使用最稳
  • 关注官方动态:如果是 GitHub 官方的故障,一般很快会修复,耐心等等就好
  • 数据备份很重要:重要的仓库建议在 Gitee 等国内平台也备份一份,有备无患
  • 合理使用工具:加速工具请仅用于正常的学习和开发工作

希望这篇文章能帮你解决 GitHub 访问的问题。如果你有其他好用的方法,欢迎在评论区分享~


本文更新于 2026 年 9 月。由于网络环境变化较快,如果文中某些链接或方法失效,欢迎留言反馈,我会及时更新。

发表评论