[2022.03] Github 加速终极教程 Allen Hua 的网络博客
[2022.03] GitHub 加速终极教程 - Allen Hua 的网络博客
- URL: 原文
- Added At: 2025-05-13 03:48:05
- Link To Text
TL;DR
这篇教程旨在解决 GitHub 访问和 Git 操作速度慢的问题。文章强调拥有良好的网络环境是前提,并详细介绍了如何配置 HTTP 和 SSH 代理以加速 GitHub 访问。其中,推荐使用 socks5h 协议进行 HTTP 代理,并提供了 Linux/macOS 和 Windows 平台下 SSH 代理的配置方法,同时解答了常见问题。此外,文章还建议使用浏览器代理扩展加速网页访问。配置成功后,Git 操作速度将明显提升。
Summary
好的,这是对您提供的 GitHub 加速教程的详细总结:
-
文章主题:解决 GitHub 访问慢(HTTPS)和 Git Clone 慢(HTTPS 或 SSH)的问题。强调良好的网络环境(木弟子)是前提。
-
前提说明:良好的网络环境是GitHub体验的基础。
- SSH与HTTP代理的重要性:
- 许多开发者使用 SSH Key 进行 Git 操作。
- 配置 SSH 代理与 HTTP 代理同等重要。
- 未配置 SSH 代理时,直接 SSH Clone 速度可能很慢。
- HTTP代理配置:
- 使用
git config
命令设置全局 HTTP 代理。 - 推荐使用
socks5h
协议,强制 DNS 解析也在代理服务器上进行。socks5h
的 “h” 代表 host,包含域名解析。
- 无需额外配置
https.proxy
,因为服务器会自动将 HTTP 重定向到 HTTPS。
- 使用
- SOCKS5协议的优势:
- SOCKS5 包含 HTTP(S),覆盖范围更广。
- SOCKS5 工作在 OSI 模型的会话层(第五层),比 HTTP(S) 代理(应用层,第七层)更底层。
- 针对性代理配置:
- 可以只为 GitHub 配置 HTTP 代理,避免影响内网服务。
- 通过修改
~/.gitconfig
文件实现。
-
SSH代理配置:
-
Linux & macOS:
- 修改用户家目录下的
.ssh/config
文件。 - 使用
nc
(netcat) 命令作为代理。 -
nc
程序通常位于/usr/bin/nc
。 .ssh/config
示例配置:
Host github.com Hostname ssh.github.com IdentityFile /xxx/.ssh/github_id_rsa User git Port 443 ProxyCommand nc -v -x 127.0.0.1:7890 %h %p
- 修改用户家目录下的
-
Windows:
- 使用
connect.exe
作为 netcat 的替代品,该程序通常位于C:\Program Files\Git\mingw64\bin
。 -
推荐使用 Git Bash。
.ssh/config
示例配置:
Host github.com Hostname ssh.github.com IdentityFile /c/users/xxx/.ssh/github_id_rsa User git Port 443 ProxyCommand connect -S 127.0.0.1:7890 %h %p
- 使用
-
- 补充信息(Q&A):
- Q1:为什么使用
ssh.github.com
和 443 端口?- 部分网络对 22 端口有限制。
- 443 端口更稳定可靠,参见 GitHub 官方文档。
- 使用 22 端口时,
hostname
应为github.com
。
- Q2:如果代理需要用户名和密码验证怎么办?
- 直接在
ProxyCommand
中写入用户名和密码可能不可行,未找到无需输入密码的方案。 - 临时解决方案:使用
ProxyCommand nc -v -x USERNAME@127.0.0.1:7890 %h %p
,并在终端提示时输入密码。
- 直接在
- Q1:为什么使用
- 网页访问加速:
- 通过木弟子访问 GitHub 网页。
- 使用浏览器扩展(如 SwitchyOmega)或系统代理。
- 使用 Clash 等工具进行分流。
- 配置效果:
- 配置后,
git clone
、git pull
、git push
等操作应明显加速。
- 配置后,
- 评论区精华内容:
- wang: push 1G 项目卡住的问题,可能是代理节点不稳定,建议更换节点。
- 悄然: nc 命令参数可能不对,建议修改。
- DoctorDeng:使用 SSH 代理方式成功提交代码。
- HalcyonAzure:建议尝试通过 HTTPS 方式访问仓库,并使用 GitHub 的 Personal Access Token 进行验证。