海外网站 • • 阅读约 7 分钟

GitHub 打不开与克隆速度慢?实用分步排查与直连优化方案

作为全球最大的开源代码托管平台,国内开发者访问 GitHub 时经常遭遇两类顽疾:一是网页端静态资源(raw.githubusercontent.com)打不开或头像全碎;二是终端执行 git clone 时速度极慢甚至抛出 Failed to connect / Connection reset。本文梳理针对性的解决步骤。

根本原因剖析:为什么 GitHub 访问极其不稳定?

  • Fastly CDN 域名解析受到干扰:GitHub 依赖的 CDN 服务商(Fastly)在全球各地的 IP 节点在大陆解析时经常被解析到不可达的黑洞 IP。
  • Git 终端默认不继承浏览器系统代理:许多开发者虽然在桌面开启了加速客户端,但 Git 命令行使用的是独立的网络堆栈,依然在裸连公网。
  • SSH 端口 22 受限:部分局域网防火墙封禁了出站的 22 端口,导致 git@github.com 方式克隆时直接卡死。

三大高效解决方案

方案一:为 Git 终端配置本地代理端口(最彻底)

如果你的电脑上已运行网络客户端(如开启在本地 7890 端口),执行以下命令让 Git 走本地代理通道:

git config --global http.https://github.com.proxy socks5://127.0.0.1:7890
git config --global https.https://github.com.proxy socks5://127.0.0.1:7890

注:该命令仅对 GitHub 域名生效,不影响国内 Gitee 等平台的访问速度。

方案二:开启客户端 TUN 模式(一键接管全部命令行)

如果你不想手动配置 Git 参数,推荐在客户端中启用 TUN 虚拟网卡模式。TUN 模式会建立全局虚拟网卡,自动捕获终端的所有 TCP 流量。配置方法参见 Clash Verge TUN 模式配置教学。

方案三:改用 HTTPS 443 端口进行 SSH 克隆

如果 22 端口被拦截,可在 ~/.ssh/config 中追加如下配置,复用 HTTPS 443 端口传输 Git 数据:

Host github.com
  Hostname ssh.github.com
  Port 443
  User git

若遇到浏览器网页依旧无法载入,建议先对照 通用打不开排查 5 步走 检查 DNS 缓存状态。

常见问题解答 (FAQ)

Q1:为什么网页版能打开,但 git clone 却报错 Failed to connect?

这是因为浏览器的系统代理开关对命令行终端默认不生效。按照本文方案一为 Git 单独配置代理端口,或开启客户端的 TUN 模式即可解决。

Q2:修改本地 Hosts 文件解决 GitHub 打不开安全吗?

只要 IP 来自 Fastly 官方公布的真实 CDN 节点,修改 Hosts 是安全的。但因为 CDN 节点 IP 会动态调整,手动绑定的 IP 容易在数周后失效,需定期更新,维护成本较高。

Q3:配置了代理后提示 SSL certificate problem: unable to get local issuer certificate 怎么办?

这通常是由于客户端开启了局部 MITM 证书解密,而 Git 未信任该根证书。可执行 git config --global http.sslVerify false 暂时跳过证书校验(仅限个人开发环境)。