在大陸環境裏,訪問 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