
GitHub520免安装、开箱即用的 GitHub DNS 加速5 分钟修好图裂和加载慢【免费下载链接】GitHub520:kissing_heart: 让你“爱”上 GitHub解决访问时图裂、加载慢的问题。无需安装项目地址: https://gitcode.com/GitHub_Trending/gi/GitHub520凌晨两点打开一个 GitHub 项目页面README 里的图片全是一堆小破 X页面还在转圈——这种时刻真的让人想摔键盘。GitHub520 就是一个免安装的 DNS 加速方案它把本地 hosts 文件里的一批 GitHub 相关域名指到更快的 IP 上解决图裂和加载慢这两个老毛病整个过程 5 分钟能搞定。GitHub DNS 加速怎么配上手最快的方式项目生成的 hosts 内容是定时自动更新的数据源是公开地址就算你当时访问不了 GitHub 也能拿到。下面按三种粒度挑一个用个人终端一行命令搞定 GitHub DNS 加速Linux/macOS 一条命令文件里如果已有旧内容会被直接替换sudo sh -c sed -i /# GitHub520 Host Start/Q /etc/hosts curl https://raw.hellogithub.com/hosts /etc/hostsWindows 需要先装 Git BashREADME 里有一段现成脚本可以复制再丢进任务计划程序定时跑就行。团队SwitchHosts 自动刷新 hosts不想手动管的话装个 SwitchHosts开源的 hosts 管理工具类型选「远程」URL 填https://raw.hellogithub.com/hosts自动刷新设 1 小时之后就不用管了关键配置就两项那个 URL 和刷新间隔前者决定内容来源后者决定你多久能吃到上游的新 IP。服务器AdGuard 内网 DNS 统一接管内网有 AdGuard Home 的话在「过滤器 → DNS 封锁清单」里添加一条自定义列表填同一个 URL更新间隔设 1 小时并在常规设置里勾选「使用过滤器和 Hosts 文件以拦截指定域名」整台内网的设备就都吃上了这套 GitHub DNS 加速注意加到「允许清单」里是不起作用的必须放在封锁清单。它到底怎么工作的最优 IP 从哪来整个流程一句话多个来源解析每个域名 → 候选 IP 全部测速 → 挑最快的 → 写进 hosts。每一步都不神秘。为什么不用 ICMP ping而用 TCP 443 连接ICMP ping 相当于用打电话的快慢判断一家餐厅而你真正在意的是能不能连上 HTTPS。所以 GitHub520 对每个候选 IP 都真实连一次 443 端口连 3 次取中位数连不上直接记 1 秒超时核心就这几行取自 fetch_ips.py 的测速函数with socket.create_connection((ip, HTTPS_PORT), timeoutPING_TIMEOUT_SEC): latencies.append((time.time() - start) * 1000) # 连接失败则直接计入 PING_TIMEOUT_SEC * 1000即算超时 latencies.sort() PING_LIST[ip] latencies[1] # 3 次取样取中位数当最终延迟白话说选出来的 IP 是「真实连得上、而且最快」的那个比 ICMP 往返时间更贴近你实际打开网页的体验。为什么不用单一 DNS而用多源查询每个域名会走两条路查DoH阿里、DNSPod、Google 依次尝试加传统 DNS114、阿里、腾讯、Cloudflare、Google两边的结果合并去重。等于同时问好几个地图 App 要路线一路被污染或者挂掉另一路还能兜底不至于一上来就迷路。为什么不用每次都重写文件而先比对内容有没有变脚本跑完会先和旧内容比对IP 映射没变化就跳过写入逻辑在 common.py 里。意义不只是省一次磁盘 IO而是不会产生无意义的文件变更——你用 SwitchHosts 之类的工具管理时不会被一堆没变化的 diff 干扰。实测效果不吹仓库里只放了前后截图没有公开的延迟数字那就按能看到的说项目配置前配置后README 里的图片图裂只剩文字见下图正常加载打开 GitHub 页面偶尔超时、转圈等加载直接秒开git clone慢、偶尔中断不再卡在半路配置前的样子配置后的样子图片不再裂这是最肉眼可见的变化也是大多数人坚持用它的原因。页面和 API 响应变快但仓库没有公布测速数据这里就不编快了几倍。上游 IP 轮换时自动刷新机制会接管不用你盯着。进阶玩法与集成cron 定时更新把前面那条一行命令丢进 crontab加个0 * * * *每小时刷新一次 hosts就不用再想这事。JSON 数据源自有工具要读这份映射的话直接取hosts.json和 hosts 文件同级解析即可结构是 (IP, 域名) 列表不用再自己解析测速。自建更新服务不想依赖公开地址的话fetch_ips.py 是主程序、common.py 里是域名清单和模板整套东西很自包含放到内网机器上定时跑就能自己养一份全公司的 hosts 源。Docker 环境容器里/etc/hosts是挂载文件直接改会报错workaround 见下面踩坑部分。踩坑记录 ⚠️改完 hosts 没反应原因系统 DNS 缓存没刷。Windows 在 CMD 里跑ipconfig /flushdnsMac 跑sudo killall -HUP mDNSResponderLinux 跑sudo nscd restart提示找不到命令就先sudo apt install nscd。Docker 里直接改 hosts 报 Device or resource busy原因容器内的/etc/hosts是挂载文件sed -i没法原地改。绕法是另存一份改完再拷回去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/hostsAdGuard 配置了但不生效原因九成是加到了「DNS 允许清单」或者常规设置里的拦截开关没勾。解决把规则挪进「DNS 封锁清单」再勾上「使用过滤器和 Hosts 文件以拦截指定域名」。凌晨两点那个图裂的页面现在应该只是回忆了。想确认它真的在干活可以打开 hosts 文件看一眼映射是否还在或者跑一条nslookup github.com看返回的 IP 是不是文件里那个。项目采用 CC BY-NC-ND 4.0 协议作者署名的更新服务如果哪天停了上面自建方案就是兜底。【免费下载链接】GitHub520:kissing_heart: 让你“爱”上 GitHub解决访问时图裂、加载慢的问题。无需安装项目地址: https://gitcode.com/GitHub_Trending/gi/GitHub520创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考