作为全球最大的开源代码托管平台,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 的内容完整同步一份到其他服务器上,界面和功能几乎一模一样,但访问速度更快。
常用镜像站
- FastGit:
https://hub.fastgit.xyz - KGitHub:
https://kkgithub.com - GitHub 镜像:
https://github.com.cnpmjs.org - ghproxy:
https://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 DNS:
8.8.8.8/8.8.4.4 - Cloudflare DNS:
1.1.1.1/1.0.0.1 - 阿里 DNS:
223.5.5.5/223.6.6.6 - 腾讯 DNS:
119.29.29.29
修改方法
Windows 系统:
- 右键点击右下角网络图标 → "网络和 Internet 设置"
- 找到你正在使用的网络 → "更改适配器选项"
- 右键当前网络 → "属性"
- 双击 "Internet 协议版本 4 (TCP/IPv4)"
- 选择 "使用下面的 DNS 服务器地址",填入上面的 DNS
- 确定保存
Mac 系统:
- 系统设置 → 网络 → 选中当前网络 → 详细信息
- DNS → 点击 "+" 添加 DNS 服务器
- 点击 "好" 保存
六、方法四:手动修改 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.comgithub.global.ssl.fastly.net
assets-cdn.github.com
raw.githubusercontent.com
avatars.githubusercontent.com
小技巧:在站长工具里查询时,选 TTL 值最小、响应最快的那个 IP。
第二步:修改 Hosts 文件
Windows 系统:
- 按下
Win + S搜索 "记事本" - 右键记事本 → "以管理员身份运行"
- 左上角菜单:文件 → 打开
- 路径填入:
C:\Windows\System32\drivers\etc\hosts - 右下角文件类型选 "所有文件",就能看到 hosts 文件了
- 在文件末尾添加查到的 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- 保存文件
Mac / Linux 系统:
打开终端,输入:
sudo vim /etc/hosts输入密码后,在文件末尾添加上面的内容,保存退出。
第三步:刷新 DNS 缓存
修改完 hosts 后,刷新一下 DNS 缓存让配置生效。
Windows:
ipconfig /flushdnsMac:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponderLinux:
sudo systemd-resolve --flush-caches或者
sudo /etc/init.d/nscd restart
缺点
GitHub 的 IP 地址会不定期变化,过一段时间可能就失效了,需要重新查询并更新。这也是为什么很多人反映 "改了 hosts 一开始能用,过几天又不行了"。
七、方法五:SwitchHosts 自动更新 Hosts(推荐)
既然手动改 hosts 这么麻烦,有没有办法自动更新呢?当然有——用 SwitchHosts 这个工具配合自动更新的 hosts 源,可以实现一劳永逸。
什么是 SwitchHosts?
SwitchHosts 是一个开源的 hosts 文件管理工具,支持远程订阅 hosts 列表、定时自动更新、一键切换不同的 hosts 配置。
配置步骤
下载安装 SwitchHosts
官网:
https://swh.app/(如果官网打不开,可以去 GitHub 搜索 "SwitchHosts" 下载)添加远程 hosts 订阅
打开 SwitchHosts,点击左上角的 "+" 号:
- 类型选择 Remote(远程)
- 标题随便填,比如 "GitHub 加速"
URL 填入自动更新的 hosts 源地址,推荐:
- 自动刷新建议选 1 小时
启用配置
勾选刚添加的远程 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 当中转站。
操作步骤
- 打开 Gitee 并登录
- 点击右上角 "+" → "从 GitHub/GitLab 导入仓库"
- 粘贴 GitHub 仓库地址,点击导入
- 等待导入完成(大仓库可能需要几分钟)
- 从 Gitee 上 clone 这个仓库,速度会快很多
同步更新
导入后的仓库如果需要和 GitHub 原仓库保持同步,可以在 Gitee 仓库页面点击 "刷新" 按钮进行同步。
十、方法八:GitHub 文件下载加速
如果你只是想下载 GitHub 上某个文件,不需要访问整个网站,可以用下面这些专门的下载加速服务。
gh-proxy
使用方法:把 GitHub 文件链接粘贴进去,就能生成加速下载地址。
也可以直接在原链接前拼接:
https://ghproxy.com/https://github.com/xxx/xxx/archive/refs/heads/main.zipJSDelivr 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.com、raw.githubusercontent.com、githubusercontent.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 月。由于网络环境变化较快,如果文中某些链接或方法失效,欢迎留言反馈,我会及时更新。