先说结论
直接答案:GitHub 打不开或很慢,最可靠的方法是用机场代理:浏览器端开客户端的系统代理即可;Git 命令行默认不走系统代理,要执行 git config --global http.proxy http://127.0.0.1:端口,用 SSH 的话在 SSH 配置里加代理;嫌麻烦就打开客户端的 TUN 模式,所有程序一起走代理。改 hosts 和第三方镜像站只能临时应急。
为什么 GitHub 在国内时好时坏
GitHub 主站没有像谷歌那样被完全封锁,所以经常是「有时能开、有时打不开」,这让很多人摸不着头脑。主要有三个原因:
DNS 污染
部分 GitHub 域名,尤其是 raw.githubusercontent.com,解析结果经常被污染,返回错误的 IP,于是直接连不上。
跨境线路拥堵
GitHub 服务器在海外,国际出口晚高峰拥堵时,页面加载慢、git clone 速度很低甚至中断。
多个域名分工
页面、头像、静态资源、Releases 文件、源码压缩包分布在不同域名上,任何一个不通都会出现部分功能失效。
命令行不走代理
浏览器读系统代理,但 Git、curl、包管理器默认不读,浏览器正常、终端卡住是最常见的情况。
GitHub 相关域名一览
| 域名 | 用途 | 不通时的表现 |
|---|---|---|
| github.com | 主站、Git 的 HTTPS 和 SSH 传输 | 网页打不开,git clone 失败 |
| githubassets.com | 网页的样式和脚本 | 页面排版错乱、按钮无反应 |
| githubusercontent.com | raw 文件、头像、Releases 文件等 | raw 链接打不开、安装脚本失败、下载很慢 |
| codeload.github.com | 源码压缩包下载 | 下载 ZIP 失败 |
| api.github.com | 接口调用,很多工具依赖它 | 命令行工具、编辑器插件报错 |
主流机场的规则通常已经把这些域名设为走代理。如果你的规则把 GitHub 设成了直连,可以在客户端里加自定义规则,见下文。
第一步:浏览器访问 GitHub
- 准备机场和客户端。Windows 和 Mac 用 Clash Verge Rev,见 Clash Verge Rev 教程;Windows 也可以用 v2rayN,见 v2rayN 教程;Linux 见 Linux 翻墙教程。下载见梯子下载。
- 打开系统代理,选规则模式。浏览器会自动走代理,GitHub 页面、raw 文件、Releases 下载都会顺畅很多。
- 记下代理端口。在客户端设置里找到混合端口或 HTTP 端口(Clash 系常见 7890 或 7897,以你的客户端显示为准),下面给 Git 设置代理要用。
第二步:给 Git 设置 HTTP 代理(HTTPS 克隆)
用 https://github.com/... 地址克隆的仓库,走的是 HTTP 代理。下面的命令中把 7890 换成你的实际端口:
# 所有 HTTPS 仓库都走代理
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
# 只让 GitHub 走代理(推荐,不影响公司内网和国内仓库)
git config --global http.https://github.com.proxy http://127.0.0.1:7890
# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset http.https://github.com.proxy
推荐只给 GitHub 设置代理。如果你同时用国内的代码托管平台或公司内网仓库,全局代理会让它们也绕路,甚至连不上。设置后执行一次 git clone 看速度有没有改善。
第三步:SSH 克隆走代理
用 [email protected]:... 地址的仓库走 SSH 协议,上面的 HTTP 代理对它无效,需要改 SSH 配置文件(macOS 和 Linux 在 ~/.ssh/config,Windows 在用户目录下的 .ssh\config)。
# macOS / Linux
Host github.com
HostName ssh.github.com
Port 443
User git
ProxyCommand nc -X 5 -x 127.0.0.1:7890 %h %p
# Windows(使用 Git for Windows 自带的 connect)
Host github.com
HostName ssh.github.com
Port 443
User git
ProxyCommand connect -S 127.0.0.1:7890 %h %p
这里做了两件事:一是把 SSH 连接改到 GitHub 官方提供的 443 端口,避开部分网络对 22 端口的限制;二是让 SSH 通过代理的 SOCKS5 协议连接。Clash 系的混合端口同时支持 HTTP 和 SOCKS5,可以直接用。设置后用 ssh -T [email protected] 测试,看到欢迎你的提示就说明成功了。
省事方案:开 TUN 模式
不想逐个给 Git、curl、包管理器配置代理,可以打开代理客户端的 TUN 模式(虚拟网卡)。开启后,系统里所有程序的流量都会经过代理客户端,再按规则分流,Git 的 HTTPS 和 SSH 都不用单独设置。
- 优点:一次设置,所有命令行工具、编辑器插件、桌面应用全部生效。
- 注意:TUN 模式需要管理员权限;如果你用公司 VPN,两者可能冲突;规则要配好,否则国内流量也会被代理。
- 和手动设置二选一:开了 TUN 之后,最好取消 Git 里的代理设置,避免绕两次。
规则模式和全局模式的区别见这篇。
终端里的其他工具
curl、wget、Homebrew、很多安装脚本都会读取代理环境变量。临时在当前终端生效:
# macOS / Linux
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
# Windows PowerShell
$env:HTTPS_PROXY="http://127.0.0.1:7890"
$env:HTTP_PROXY="http://127.0.0.1:7890"
想长期生效,可以把 macOS / Linux 的那一行写进 shell 配置文件。用完记得关掉,或者用 TUN 模式代替。
规则把 GitHub 设成直连怎么办
有些机场或自定义规则为了省流量,把 GitHub 设成了直连,结果开着代理也很慢。在客户端里加几条自定义规则,放在规则列表靠前位置即可(「代理」换成你配置里实际存在的策略组名):
- DOMAIN-SUFFIX,github.com,代理
- DOMAIN-SUFFIX,githubusercontent.com,代理
- DOMAIN-SUFFIX,githubassets.com,代理
Clash Verge Rev 可以在订阅的扩展配置或规则编辑里添加,改完重新加载配置。添加后在客户端的连接页面打开 GitHub,看对应连接是否显示走了代理组。
不同场景怎么选方案
| 你的情况 | 推荐做法 |
|---|---|
| 只是偶尔浏览 GitHub 网页、下载 Releases | 开系统代理就够了 |
| 经常 clone 和 push,用 HTTPS 地址 | 只给 GitHub 设置 Git 代理 |
| 习惯用 SSH 地址 | 改 SSH 配置,走 443 端口加代理 |
| 同时用很多命令行工具、编辑器插件 | 开 TUN 模式,取消各工具单独的代理设置 |
| 在公司电脑上,有内网仓库 | 只给 GitHub 设置代理,别开全局;先确认公司网络规定 |
| 在 Linux 服务器上拉代码 | 服务器上的代理配置见 Linux 翻墙教程,注意不要把代理端口暴露到公网 |
npm、pip、Docker 等工具从海外源下载时也会遇到类似的慢问题。它们大多可以单独配置代理,或者换成国内官方或高校维护的镜像源。开 TUN 模式则可以一次性解决大部分情况。
GitHub 打不开、慢的排查表
| 现象 | 原因 | 解决 |
|---|---|---|
| github.com 打不开或很慢 | 没开代理,或 GitHub 走了直连 | 开系统代理;检查规则,必要时加自定义规则 |
| 页面排版错乱、按钮没反应 | 静态资源域名不通 | 让 githubassets.com 走代理 |
| raw.githubusercontent.com 打不开 | DNS 污染 | 让该域名走代理;命令行设置环境变量;检查 DNS,见 DNS 泄露 |
| 浏览器正常,git clone 卡住 | Git 不读系统代理 | 按上文设置 http.proxy 或开 TUN |
| SSH 克隆超时 | 22 端口被限制,或 SSH 没走代理 | 按上文改用 ssh.github.com 的 443 端口并加代理 |
| 设置代理后 Git 报连接被拒绝 | 端口填错或客户端没在运行 | 核对客户端显示的端口,确认客户端已启动 |
| clone 大仓库中途断开 | 节点不稳或带宽不足 | 换稳定节点;可以先浅克隆只拉最新提交 |
| Releases 下载很慢 | 文件服务器没走代理 | 浏览器开代理下载;命令行设置环境变量 |
| 公司内网仓库连不上了 | Git 全局代理影响了内网 | 改成只给 GitHub 设置代理 |
clone 大仓库时可以用 git clone --depth 1 仓库地址 只拉最新一次提交,数据量小很多,断线概率也低。之后需要完整历史,再在仓库里补拉。想确认 Git 当前用了哪些代理设置,可以执行 git config --global --list 查看,排查时先看这里有没有遗留的旧端口。
改 hosts 和镜像站靠谱吗
| 方法 | 能解决什么 | 问题 |
|---|---|---|
| 改 hosts | 临时绕开 DNS 污染 | GitHub 的 IP 会变,过一阵就失效;解决不了跨境线路慢 |
| 第三方镜像、加速下载站 | 临时下载公开代码或文件 | 无法确认文件没被篡改;不要在上面登录账号或输入令牌 |
| 国内代码托管平台的导入功能 | 把公开仓库导入到国内平台再克隆 | 只适合公开仓库,需要手动同步更新 |
| 机场代理 | DNS 污染和线路慢都能解决 | 需要付费,要选稳定的机场 |
对开发者来说,下载的代码会直接在你的电脑上运行,来源可信非常重要。镜像站应急可以,日常开发还是建议走代理直连 GitHub 官方。
常见误区
- 「浏览器能开 GitHub,Git 就一定没问题」:两者走的是不同的通道,浏览器读系统代理,Git 默认不读。
- 「把 Git 代理设成全局一劳永逸」:全局代理会影响国内平台和公司内网仓库,出问题时很难想到是它。
- 「hosts 文件改一次永远有效」:GitHub 的服务器 IP 会调整,网上流传的 hosts 列表很快过时。
- 「代理设好了就不用管了」:换了代理客户端或改了端口,Git 和 SSH 里的端口也要同步修改,否则会报连接被拒绝。
GitHub 账号安全注意事项
- 开启两步验证。GitHub 要求代码贡献者开启两步验证,建议用验证器 App 或安全密钥,并保存好恢复码。
- 用令牌,不用密码。HTTPS 推送代码要用个人访问令牌,给令牌设置最小权限和过期时间。
- 别把密钥提交进仓库。API 密钥、机场订阅链接、密码不要写进代码,一旦推到公开仓库就会被扫描到。订阅链接泄露的风险见订阅链接安全。
- 检查授权应用。在设置里定期查看授权过的第三方应用和 SSH 密钥,不用的删掉。
- 不在镜像站登录。任何非 github.com 官方的页面要求你输入 GitHub 账号密码或令牌,都不要输。
- 遵守规则。使用 GitHub 时遵守所在地法律法规、公司网络规定和 GitHub 的服务条款。
GitHub 能打开但登录不上怎么办
GitHub 首页能打开,到登录、注册这一步却卡住,是另一类常见问题,原因和浏览代码时不一样:
| 现象 | 常见原因 | 处理 |
|---|---|---|
| 点登录后一直转圈或报错 | 登录请求和页面资源走了不同线路,或旧 Cookie 异常 | 临时切全局模式试一次;清除 github.com 的站点数据后重新登录 |
| 注册时人机验证加载不出来 | 验证组件来自第三方域名,分流规则没让它走代理 | 临时切全局模式完成注册,再切回规则模式 |
| 要求输入发到邮箱的验证码 | 新设备或新 IP 登录时的设备验证 | 到注册邮箱里找 GitHub 的邮件,收不到看垃圾箱 |
| 两步验证的动态码总提示错误 | 手机时间不准 | 把手机时间设为自动同步 |
| 丢了两步验证的手机 | 无法生成动态码 | 用开启两步验证时保存的恢复码登录 |
| git push 提示密码认证失败 | 命令行已不支持用账号密码推送 | 改用个人访问令牌,或配置 SSH 密钥 |
- 恢复码一定要保存。开启两步验证时给的恢复码,存到密码管理器或离线的地方,这是丢手机后找回账号的主要途径。
- 固定节点地区。频繁换不同国家的节点登录,会反复触发设备验证,甚至让账号被临时限制。
- 只在 github.com 登录。镜像站、加速站都不要输入账号密码或令牌,见上文「改 hosts 和镜像站靠谱吗」。
先确认是不是 GitHub 自己出了故障
代理和节点都正常,GitHub 却突然打不开、推送失败或 Actions 不跑,先排除 GitHub 本身的问题,别急着反复换节点:
- 看官方状态页。GitHub 有官方状态页(githubstatus.com),分别列出网页、Git 操作、API、Actions、Pages 等服务是否正常。某一项显示故障,等官方恢复即可,换节点没用。
- 换个网络对比。用手机热点连同一个节点再试,能打开说明问题在本地网络或路由器上。
- 切全局模式对比。全局模式能打开、规则模式不行,是分流规则的问题,按上文「规则把 GitHub 设成直连怎么办」处理。
- 只有某个仓库打不开。显示 404 多半是仓库被删除、改为私有或被下架,和网络无关;私有仓库要确认登录的账号有权限。
状态页本身也在海外,打不开状态页时,说明你当前连 GitHub 的整条路都没通,先回到第一步检查代理是否生效。
npm、pip、Docker 也慢:代理和换源怎么选
GitHub 加速好了,装依赖时又卡在 npm、pip 或 Docker 拉镜像,这是同一类问题。两种思路:给工具配代理,或者换成国内镜像源。下面把 7890 换成你客户端的实际端口:
# npm 设置代理
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
# npm 取消代理
npm config delete proxy
npm config delete https-proxy
# pip 单次走代理
pip install 包名 --proxy http://127.0.0.1:7890
Docker 拉镜像由后台服务完成,终端里设置的环境变量对它不起作用:Docker Desktop 在设置里找到代理相关选项填写;Linux 上要给 Docker 服务单独配置代理,再重启服务。
| 方式 | 优点 | 缺点 |
|---|---|---|
| 给工具配代理 | 直接用官方源,版本最新 | 每个工具要分别设置,换客户端或端口要同步修改 |
| 国内镜像源(高校或云厂商维护) | 不需要代理,速度稳定 | 同步可能有延迟,个别包缺失;公司项目先确认是否允许 |
| 开 TUN 模式 | 一次设置,所有工具都生效 | 需要管理员权限,可能和公司 VPN 冲突 |
排查时先确认当前用的到底是哪个源:npm config get registry、pip config list 能看到源地址,遗留的旧镜像地址失效也会表现为「下载很慢」。
用哪家机场:综合分前 8 的机场
GitHub 不限制节点地区,开发者更看重白天和晚上都稳定、拉大仓库时带宽够用。下面是本期综合分前 8 的机场,评分基于官网公开信息和编辑评估,不是 GitHub 专项测试,建议先月付试用。更多选择见机场推荐和稳定机场。
| # | 机场 | 线路 | 月付起 | 流量 | 每 GB | AI | 流媒体 | 评分 | 状态 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | WgetCloud | IEPL / IPLC 专线 + BGP 中转 | ¥79 | 按套餐,入门档约 100GB 级 | — | ✓ | ✓ | 9.5 | 推荐 |
| 2 | 飞鸟云 | 内网专线 IPLC | ¥25 | 150GB / 月 | ¥0.17 | ✓ | ✓ | 9.3 | 推荐 |
| 3 | TAG | IEPL 专线 | ¥114 | 500GB / 月 | ¥0.23 | ✓ | ✓ | 9.3 | 推荐 |
| 4 | 泡芙云 | 全专线 IPLC / IEPL | ¥18 | 120GB / 月 | ¥0.15 | ✓ | ✓ | 9.2 | 推荐 |
| 5 | 二猫云主推 | 三网优化 IEPL + 中转混合 | ¥20 | 60GB – 130GB / 月 | ¥0.15 | ✓ | ✓ | 9.2 | 推荐 |
| 6 | 灵云 | IEPL 纯专线 | ¥22 | 120GB / 月 | ¥0.18 | ✓ | ✓ | 9.2 | 推荐 |
| 7 | 天机阁 | 内网专线 + 专职技术运维 | ¥26 | 160GB / 月 | ¥0.16 | ✓ | ✓ | 9.2 | 推荐 |
| 8 | 闪电猫 | 企业级 IPLC 专线 | ¥30 | 200GB / 月 | ¥0.15 | ✓ | ✓ | 9.2 | 推荐 |
点表头可排序。价格、流量和每 GB 按官网核对于 2026 年 10 月 24 日;AI / 流媒体为官网标注(✓ 标注支持,△ 部分或需自测,✗ 未标注)。
接下来看什么
客户端教程:Clash Verge Rev 教程、v2rayN、Linux 翻墙、Mac 翻墙。开发者用 AI 编程工具见国内怎么用 Claude 和国内怎么用 ChatGPT。
常见问题
GitHub 打不开怎么办?
最稳的办法是用机场代理访问:打开代理客户端的系统代理,规则模式下让 GitHub 相关域名走代理。改 hosts 只能临时缓解,IP 变化后又会失效。
开了代理浏览器能上 GitHub,git clone 还是很慢?
Git 命令行默认不读系统代理,需要单独给 Git 设置 http.proxy,或者用 SSH 时在 SSH 配置里加代理。也可以打开代理客户端的 TUN 模式,让所有程序都走代理。
raw.githubusercontent.com 打不开怎么办?
这个域名在国内经常被 DNS 污染。让它走代理即可:浏览器开系统代理,命令行设置代理环境变量,或用 TUN 模式。
GitHub Releases 下载很慢怎么办?
Releases 文件从 GitHub 的文件服务器下载,同样要走代理。浏览器下载开系统代理,命令行用 curl 或 wget 时设置代理环境变量。
改 hosts 能解决 GitHub 打不开吗?
有时能临时缓解 DNS 污染,但 GitHub 的 IP 会变化,而且解决不了跨境线路慢的问题,不建议长期依赖。
GitHub 镜像站和加速站安全吗?
下载公开代码时可以作为临时手段,但无法保证内容未被篡改,也不要在上面登录 GitHub 账号或输入令牌。重要项目还是走代理直连 GitHub。
GitHub 用哪个地区的节点?
GitHub 不限制地区,选延迟低、稳定的节点即可,香港、日本、新加坡都常用。传输大仓库时更看带宽。
GitHub 能打开但登录不上怎么办?
先临时切全局模式再登录,排除部分资源没走代理;再清除 github.com 的站点数据。要求邮箱验证码时去注册邮箱找,两步验证码报错就把手机时间设为自动同步,丢了手机用恢复码登录。
Watt Toolkit(Steam++)能加速 GitHub 吗?
它是一个在本机运行的加速工具,开启 GitHub 加速后浏览网页通常会好一些,但效果不稳定,git clone 和 Releases 大文件下载未必改善。部分加速方式需要在系统里安装并信任它生成的证书,只从官方渠道下载。经常用 GitHub 的话,给 Git 和终端配好代理更省心。
改 DNS 能解决 GitHub 打不开吗?
换成公共 DNS 能缓解部分域名被污染的问题,但解决不了跨境线路拥堵,晚高峰照样慢。浏览器开代理、给 Git 设置代理或打开 TUN 模式更稳定。
设置 Git 代理后 git push 失败怎么办?
先确认代理客户端在运行、端口和设置一致;HTTPS 推送要用个人访问令牌而不是密码;SSH 推送要按本文改 SSH 配置。还不行,执行 git config --global --list 检查有没有遗留的旧代理设置。
手机上怎么访问 GitHub?
手机连上代理客户端后用浏览器打开即可,也可以装 GitHub 官方 App。安卓设置见安卓翻墙教程,iPhone 见iPhone 翻墙教程。
更多问题见机场问答库:选机场、客户端、连不上、ChatGPT 和流媒体的常见问题都在这里。