GitHub 图片裂开、加载慢?GitHub520 免费 hosts 加速方案 5 分钟完整搞定
【免费下载链接】GitHub520:kissing_heart: 让你“爱”上 GitHub,解决访问时图裂、加载慢的问题。(无需安装)项目地址: https://gitcode.com/GitHub_Trending/gi/GitHub520
GitHub520 是一个通过 hosts 优化、把 GitHub 各域名固定到更快更稳定 IP 的开源项目,面向被"README 图片裂开、clone 半天不动"困扰的开发者,无需安装任何程序。IP 数据由项目方自动测速更新,你只需要让 hosts 指向它生成的内容。
场景:README 里的图一直裂开,clone 半天不动
最常见的卡点有两个:打开项目 README,图片全显示裂开图标;执行git clone,进度条几乎不动。根源通常是本地把 GitHub 域名解析到了慢的、或不通的 IP 上。GitHub520 的思路是在 hosts 文件(系统自带的"域名→IP 对照表")里为每个域名手动指定一个实测较快的 IP,并让这份 IP 数据自动保持更新。脚本不用你自己跑——仓库维护了一个定期自动更新的成品 hosts 内容地址,直接引用即可。
快速上手:三种 hosts 配置路径怎么选
结论先行:Linux/macOS 用一行命令,Windows 用 SwitchHosts 图形工具,团队环境交给 AdGuard。三者引用的是同一份数据源:项目提供的纯文本 hosts 内容和 JSON 格式数据,获取它们不需要访问 GitHub。
Linux / macOS 一行命令
sudo sh -c 'sed -i "/# GitHub520 Host Start/Q" /etc/hosts && curl https://raw.hellogithub.com/hosts >> /etc/hosts'前半句先用# GitHub520 Host Start标记把旧的 GitHub520 块截掉,后半句追加最新内容。重复执行不会产生重复条目,因此可以直接挂到 cron 里定时跑。
Windows(Git Bash 脚本)
把下面内容存为fetch_github_hosts文件,在 CMD 中用 git-bash 调用执行(README 提示可加入 Windows 任务计划程序定时运行):
_hosts=$(mktemp /tmp/hostsXXX) hosts=/c/Windows/System32/drivers/etc/hosts remote=https://raw.hellogithub.com/hosts reg='/# GitHub520 Host Start/,/# Github520 Host End/d' sed "$reg" $hosts > "$_hosts" curl "$remote" >> "$_hosts" cat "$_hosts" > "$hosts" rm "$_hosts"团队:SwitchHosts 与 AdGuard 图形化配置
个人电脑不想碰命令行的话,SwitchHosts 最省事:新建规则,Hosts 类型选Remote,URL 填https://raw.hellogithub.com/hosts,自动刷新选1 小时。
用 AdGuard Home(自建去广告 DNS)的团队,把同一个 URL 加到"过滤器 → DNS 封锁清单",再到"设置 → 常规设置"把过滤器更新间隔设为 1 小时,并勾选 hosts 文件拦截开关(选项名含"以拦截指定域名")。
注意一个坑:规则必须加进"DNS 封锁清单",加到"允许清单"里不生效。
核心机制:TCP 测速 + 多源 DNS 挑最快 IP
一句话概括:它给每个候选 IP"敲门"计时,把开得最快的写进 hosts。
为什么用 TCP 连接测速
传统 ICMP ping 常被企业网络丢弃,测出来的延迟和真实 HTTPS 访问对不上。所以 fetch_ips.py 直接对 443 端口发起 TCP 连接,连 3 次:
start = time.time() with socket.create_connection((ip, HTTPS_PORT), timeout=PING_TIMEOUT_SEC): latencies.append((time.time() - start) * 1000)取 3 次的中位数抵抗单次抖动,同一 IP 的结果还会缓存,不重复测。
候选 IP 从哪来
每个域名走两条渠道查候选 IP:3 个 DoH(DNS over HTTPS,即走 HTTPS 的加密 DNS 查询)服务器(阿里、DNSPod、Google),加 5 个传统 DNS 服务器(114、阿里、腾讯、Cloudflare、Google)。两边结果取并集、去重,剔除保留地址后逐个测速:
ping_results.sort(key=lambda x: x[1]) best_ip = ping_results[0][0]更新逻辑怎么保证不白写
update_ips.py 定时运行,写盘前先比对新旧内容:没变化就跳过写入,有变化才更新hosts和hosts.json两个文件。整块内容用# GitHub520 Host Start/End标记包裹,一行命令才能精准删旧。域名清单定义在 common.py,共 40 个,覆盖 github.com、raw.githubusercontent.com、codeload.github.com 等。
进阶集成:服务器、CI 与容器
这一节面向有基础的同学,在上面的路径之外再覆盖三类场景。
- cron 定时更新(Linux):把一行命令加进 crontab 即可,README 要求 GitHub520 块位于 hosts 文件末尾,删除逻辑才可靠。
- CI 构建机:在构建流程开头执行那一行命令,后续 git clone、拉取构建资源都走优化后的 IP。
- Docker 容器:容器内直接改 /etc/hosts 可能报
Device or resource busy,README 给了绕法:
cp /etc/hosts ~/hosts.new && sed -i "/# GitHub520 Host Start/Q" ~/hosts.new && curl https://raw.hellogithub.com/hosts >> ~/hosts.new && cp -f ~/hosts.new /etc/hosts- 内网 DNS 统一配置:
git clone https://gitcode.com/GitHub_Trending/gi/GitHub520,装好 requirements.txt 的依赖后跑 fetch_ips.py 生成最新测速结果,再转成内网 DNS 服务器的解析配置并挂定时任务。
优化前后效果对比与可核验的数据
效果主要体现在图片加载与页面响应上,README 附了前后截图。
配置 hosts 优化前,GitHub 页面图片裂开、加载缓慢:
固定到实测较快 IP 后,图片正常显示:
可靠性方面,只说仓库里能查到的:
- README 的 TODO 三项——"定时自动更新 hosts 内容""hosts 内容无变动不会更新""寻到最优 IP 解析结果"——均已勾选完成;
- 每次更新会在 hosts 文件里留下 Update time 时间戳(当前为 2026-08-29),数据新旧可自查;
- README 自述项目仍处于测试阶段、仅本机测试通过,因此不承诺具体提速比例,实际改善幅度取决于你的网络环境。
常见坑排查:DNS 缓存刷新与配置位置
大多数"不生效"来自 DNS 缓存未清或规则加错了地方,对照这张表排查:
| 问题 | 排查命令 |
|---|---|
| 改了 hosts 没变化(Windows) | ipconfig /flushdns |
| 改了 hosts 没变化(macOS) | sudo killall -HUP mDNSResponder |
| Linux 刷缓存命令报错 | sudo apt install nscd,再sudo nscd restart |
Docker 内更新报Device or resource busy | 改用上一节的cp /etc/hosts ~/hosts.new && … && cp -f方案 |
| AdGuard 配置后无效 | 确认加在"DNS 封锁清单",并勾选"以拦截指定域名"开关 |
| 部分域名仍慢 | 重跑一行命令取最新 IP,或等下次定时更新 |
都不管用再按顺序走:cat /etc/hosts \| grep github确认内容在 → 刷缓存 → 重启机器(README 给出的最终兜底)。
结语
GitHub520 把"测速选 IP → 生成 hosts → 定时更新"整条链路收进了一份免费、持续更新的数据文件,你不用管逻辑,让 hosts 指过去就行。启动命令就一条:
sudo sh -c 'sed -i "/# GitHub520 Host Start/Q" /etc/hosts && curl https://raw.hellogithub.com/hosts >> /etc/hosts'【免费下载链接】GitHub520:kissing_heart: 让你“爱”上 GitHub,解决访问时图裂、加载慢的问题。(无需安装)项目地址: https://gitcode.com/GitHub_Trending/gi/GitHub520
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考