Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

GitHub 访问修复工具(国内网络)

一键解决「GitHub 打不开 / 打开超时 / 时好时坏」的小工具。v2.0 全新升级:自动获取并定期更新 GitHub520 列表,融合 DoH 实时解析 + GitHub520 + 内置官方 IP 池 多个来源,探测最快可用 IP 后更新 hosts。全程无需科学上网,不改任何系统代理设置。

✨ v2.0 新特性

特性 说明
🔄 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+ 想传参、自动化的人

❓ 是否需要安装 Python?

取决于你选哪种方式,大多数人选方式 ① 就行:

方式 ①:免安装版(推荐,不需要 Python)

  1. 打开本仓库的 Releases 页面;
  2. 下载附件 GitHubAccessFix-v2.0.1.exe;
  3. 右键 → 以管理员身份运行,完成。

exe 是用 PyInstaller 把 GitHub访问修复.py 打包的独立程序,双击即用,不依赖任何已安装环境。 个别杀毒软件可能对打包 exe 误报,添加信任即可(源码就在本仓库,可自行审查或自己打包)。 想要每天自动更新:管理员 cmd 里运行 GitHubAccessFix.exe --install-task。

方式 ②③:源码版(需要 Python 3.8+)

第一步:安装 Python(已安装可跳过)

  1. 打开 https://www.python.org/downloads/ ,点击黄色的 Download Python 3.x.x 按钮;
  2. 运行安装程序,务必勾选底部的 Add python.exe to PATH(最常见问题就是漏了这一步);
  3. 点 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 步:

  1. 获取候选 IP(多源合并)
    • DoH 加密 DNS 实时解析 github.com 的官方最新 A 记录(阿里 / 360 双通道);
    • 自动下载 GitHub520 最新列表(双镜像,24 小时缓存,失败回退旧缓存);
    • 叠加内置 8 个 GitHub 官方历史 IP;
  2. 探测选最快:对候选逐个发起真实 HTTPS 探测(SNI=github.com,间隔 1 秒防阻断),选出最快的可用 IP;
  3. 更新 hosts(修改前自动备份到 hosts.bak-githubfix):
    • 把 hosts 里的 GitHub520 区块整体刷新为刚下载的最新列表;
    • 把 github.com / gist.github.com 指向探测出的最快 IP;
  4. 刷新 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;
  • 也可在「任务计划程序」里查看/手动调整时间。

🧠 为什么 GitHub 会打不开?

  • 你的 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:显示"✅ 完成"但个别页面还是异常?

  1. 完全关闭浏览器再重开(浏览器有自己的 DNS 缓存);
  2. 仍不行就重启一次电脑(个别情况下系统的 DNS 缓存服务会卡在旧快照上,重启必定重载 hosts)。

Q5:过几天又打不开了? 装上计划任务一劳永逸:python GitHub访问修复.py --install-task。或者坏了随时再跑一遍本工具。

Q6:能一直探测/频繁运行吗? 不建议。对 IP 池的高频探测可能触发更严格的阻断(工具已内置 1 秒探测间隔、单次最多 10 个候选,每次正常运行只发少量请求,安全;计划任务每天一次也远低于风险线)。

Q7:GitHub520 列表下载失败会怎样? 自动回退本地 24 小时缓存;连缓存都没有时,仍可用 DoH 实时解析 + 内置 IP 池完成修复,不会中断。

📄 License

MIT

About

国内网络 GitHub 打不开自动修复工具: 探测官方IP池 -> 更新hosts -> 刷新DNS (免安装exe版 + Python源码版, 含详细图文教程)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages