一键解决「GitHub 打不开 / 打开超时 / 时好时坏」的小工具。v2.0 全新升级:自动获取并定期更新 GitHub520 列表,融合 DoH 实时解析 + GitHub520 + 内置官方 IP 池 多个来源,探测最快可用 IP 后更新 hosts。全程无需科学上网,不改任何系统代理设置。
| 特性 | 说明 |
|---|---|
| 🔄 GitHub520 列表自动获取 + 定期更新 | 双镜像(hellogithub 官方 + jsDelivr CDN)自动下载,本地缓存 24 小时,全网失败自动回退旧缓存;每次运行都会把 hosts 里的 GitHub520 区块整体刷新为最新列表 |
| 🌐 多源候选 IP | ① DoH 加密 DNS 实时解析(阿里 223.5.5.5 / 360)拿到 GitHub 官方最新 A 记录 → ② GitHub520 列表中的目标 IP → ③ 内置 8 个官方历史 IP,三路合并 |
| ⏰ 一键安装每日自动更新计划任务 | --install-task 创建 Windows 计划任务,每天 09:00 自动探测并更新 hosts,从此不用手动管 |
| 🛡️ 防频率阻断 | 探测请求间隔 1 秒、单次最多 10 个候选(高频探测会触发更严格的动态阻断) |
| 💾 修改前自动备份 | 原 hosts 备份到 hosts.bak-githubfix,随时可还原 |
| 使用方式 | 需要安装 Python? | 适合人群 |
|---|---|---|
① 下载 Release 里的 GitHubAccessFix.exe |
❌ 完全不需要 | 怕麻烦、不想装环境的人 |
② 双击 修复GitHub访问.bat |
✅ 需要 Python 3.8+ | 想看/改源码的人 |
③ 命令行运行 GitHub访问修复.py |
✅ 需要 Python 3.8+ | 想传参、自动化的人 |
取决于你选哪种方式,大多数人选方式 ① 就行:
- 打开本仓库的 Releases 页面;
- 下载附件
GitHubAccessFix-v2.0.1.exe; - 右键 → 以管理员身份运行,完成。
exe 是用 PyInstaller 把
GitHub访问修复.py打包的独立程序,双击即用,不依赖任何已安装环境。 个别杀毒软件可能对打包 exe 误报,添加信任即可(源码就在本仓库,可自行审查或自己打包)。 想要每天自动更新:管理员 cmd 里运行GitHubAccessFix.exe --install-task。
第一步:安装 Python(已安装可跳过)
- 打开 https://www.python.org/downloads/ ,点击黄色的 Download Python 3.x.x 按钮;
- 运行安装程序,务必勾选底部的
Add python.exe to PATH(最常见问题就是漏了这一步); - 点 Install Now,等待完成。
第二步:确认安装成功
按 Win + R 输入 cmd 回车,在黑窗口里输入:
python --version显示 Python 3.x.x 即安装成功(如果提示"不是内部或外部命令",说明没勾 Add to PATH,重装并勾选,或改用 py --version 测试)。
第三步:运行
- 图形化(推荐):下载仓库里的
修复GitHub访问.bat,右键 → 以管理员身份运行。它会自动寻找你电脑上的 Python,找不到会给出安装指引; - 命令行:
:: 进入脚本所在目录后
python GitHub访问修复.py :: 全流程: 更新列表+探测+修复
python GitHub访问修复.py --refresh :: 强制重新下载 GitHub520 列表(忽略 24h 缓存)
python GitHub访问修复.py 20.205.243.166 :: 指定 IP, 跳过探测
python GitHub访问修复.py --no-probe :: 跳过探测, 直接用第一个候选 IP
python GitHub访问修复.py --install-task :: 安装每日 09:00 自动更新计划任务
python GitHub访问修复.py --uninstall-task :: 删除计划任务
python GitHub访问修复.py --version :: 查看版本运行后依次执行 4 步:
- 获取候选 IP(多源合并)
- DoH 加密 DNS 实时解析
github.com的官方最新 A 记录(阿里 / 360 双通道); - 自动下载 GitHub520 最新列表(双镜像,24 小时缓存,失败回退旧缓存);
- 叠加内置 8 个 GitHub 官方历史 IP;
- DoH 加密 DNS 实时解析
- 探测选最快:对候选逐个发起真实 HTTPS 探测(SNI=github.com,间隔 1 秒防阻断),选出最快的可用 IP;
- 更新 hosts(修改前自动备份到
hosts.bak-githubfix):- 把 hosts 里的 GitHub520 区块整体刷新为刚下载的最新列表;
- 把
github.com/gist.github.com指向探测出的最快 IP;
- 刷新 DNS:执行
ipconfig /flushdns,刷新浏览器即可访问 GitHub。
内置 IP 池(GitHub 官方历史解析,兜底用):
20.205.243.166 20.27.177.113 140.82.113.3 140.82.116.3
140.82.112.3 20.26.156.215 20.200.245.247 140.82.114.3
IP 阻断是动态的,装上计划任务后就不用手动管了:
:: 管理员身份运行一次即可
python GitHub访问修复.py --install-task- 任务名
GitHubIPFix,每天 09:00 自动执行完整修复流程(更新列表 → 探测 → 更新 hosts); - 删除:
python GitHub访问修复.py --uninstall-task; - 也可在「任务计划程序」里查看/手动调整时间。
- 你的 hosts 里可能装过 GitHub520 等加速列表(https://raw.hellogithub.com/hosts ),它们把
github.com钉在某个固定 IP 上; - 这些 IP 会被网络环境动态阻断(今天能用的 IP 明天可能失效),GitHub520 列表 3 天才更新一次,也可能跟不上;
- 于是出现「时好时坏 / 忽然打不开」。本工具 v2.0 通过多源实时获取 + 本地探测,把指向换到当前可用的最快 IP。
Q1:运行 bat 提示"未检测到 Python"?
见上文「是否需要安装 Python」——装 Python 时记得勾选 Add python.exe to PATH,或者直接用免安装的 exe 版。
Q2:提示"请以管理员身份运行"? 写 hosts 必须管理员权限:右键 bat / exe → 以管理员身份运行。
Q3:杀毒软件弹窗拦截? 修改 hosts 属于敏感操作,部分安全软件会提示,点允许/放行即可。exe 版若被误报,加入信任或改用源码版。
Q4:显示"✅ 完成"但个别页面还是异常?
- 完全关闭浏览器再重开(浏览器有自己的 DNS 缓存);
- 仍不行就重启一次电脑(个别情况下系统的 DNS 缓存服务会卡在旧快照上,重启必定重载 hosts)。
Q5:过几天又打不开了?
装上计划任务一劳永逸:python GitHub访问修复.py --install-task。或者坏了随时再跑一遍本工具。
Q6:能一直探测/频繁运行吗? 不建议。对 IP 池的高频探测可能触发更严格的阻断(工具已内置 1 秒探测间隔、单次最多 10 个候选,每次正常运行只发少量请求,安全;计划任务每天一次也远低于风险线)。
Q7:GitHub520 列表下载失败会怎样? 自动回退本地 24 小时缓存;连缓存都没有时,仍可用 DoH 实时解析 + 内置 IP 池完成修复,不会中断。