在大陆环境里,访问 GitHub 官网常遇到转圈或连接重置,单纯写死 IP 到 hosts 的方案失效很快。下面介绍 GitHub-Road,它通过 hosts 直连、动态 IP 择优和 30 分钟自动自愈,实现免代理、零费用的稳定访问。
插件定位¶
这是 iTrimut 开发的联网工具插件,核心是让浏览器直接通过 hosts 访问 GitHub,并在 30 分钟内自动切换失效 IP,无需配置代理。
核心功能¶
- TLS 双重验证选 IP:脚本会先进行 TLS 握手(8 秒超时),再发起真实 HTTPS 请求,只有返回 HTTP 200 的 IP 才会被写入 hosts,避免选到握手正常但返回错误的 IP。
- 30 分钟自动自愈:通过计划任务每 30 分钟重跑一次脚本,检测 IP 是否可用,失效则自动切换。
- 自动备份:修改 hosts 前自动备份到
%USERPROFILE%\hosts.backup-*,保留最近 20 份。 - 全挂回退 DNS:所有候选 IP 都不可用时,临时注释 hosts 条目,避免钉死坏 IP。
安装与启用¶
安装插件:
dsh plugin --profile web add github:iTrimut/GitHub-Road
重启 dsh web 后,确认技能文件已生成:
ls "%USERPROFILE%\.dsh\skills\GitHub-Road\SKILL.md"
之后让 dsh 代理执行技能即可。
适用场景与注意¶
- 适用场景:主要解决浏览器访问
github.com的阻断问题。 - 覆盖范围:
gist.github.com的 SNI 被阻断,需要代理;codeload.github.com、ssh github.com:22、GitHub Desktop 不在覆盖范围。 - 权限要求:脚本以管理员权限运行,安装前需确认。
- 互斥检查:与 hosts 管理类工具(如 Watt Toolkit / Steam++)互斥,使用前需停止其加速功能。
- 安全建议:建议把脚本所在文件夹设为仅管理员可写,防止被篡改。
这套方案通过自动化手段解决了静态 hosts 容易失效的问题,适合需要稳定访问 GitHub 官网但不方便使用代理的用户。
- 插件目录:GitHub-Road - SkillHub
- GitHub 仓库:iTrimut/GitHub-Road