前言¶
在 DeepSeek Harness(DSH)里装插件、拉仓库、走 API,都依赖本机到 GitHub 各域名的连通性。实际环境里常见问题不是「完全没网」,而是 DNS 解析到的 IP 被丢包、TLS 握手被重置、或只有部分子域名可用——报错信息往往只写 timeout 或 connection reset,很难一眼判断该改 hosts、开代理还是改 SSH。
下面介绍的 dsh-github-connectivity(维护者 Yunbuqingluan)是面向 DSH 的 GitHub 连接诊断插件:对多个 GitHub 端点做 DNS → TCP → TLS 逐层探测,给出命名结论,并在面板或文档中提供可复制、可验证、可撤销的修复步骤。它不充当翻墙通道,也不未经确认修改系统配置。
这是什么¶
插件仓库:Yunbuqingluan/dsh-github-connectivity,当前 package 版本 1.2.1,许可证 MIT,运行环境要求 Node >= 22。社区目录页:skillhub.cn 插件页。
一句话定位:本机到 GitHub 各服务的连通性「医生」——判定卡在哪一层,并给出可执行的修复命令与一键应用/撤销(hosts 改前备份,撤销可完整还原)。
核心功能¶
探测范围¶
插件会探测 5 个端点:
github.comapi.github.comcodeload.github.comraw.githubusercontent.comobjects.githubusercontent.com
除主解析结果外,还会做备用 IP 探测:优先复用本次已验证可达的其他 GitHub 边缘 IP,再用 github.com 的 SNI 握手,用于判断「换 IP 是否就能通」。
本机现状读取¶
探测时会一并读取本机常见影响因素,例如 git 代理、代理相关环境变量、本机常见代理端口(如 7890、7897、10808 等)、以及 ~/.ssh/config 是否已配置走 443。
结论与处置(判定表)¶
README 中的判定含义与典型处置如下(结论字符串以插件输出为准):
| 结论 | 含义 | 典型处置 |
|---|---|---|
healthy |
主站 TLS 正常 | 无需处理 |
ip-blocked |
解析到的 IP 被丢包,但别的边缘 IP 可用 | hosts 指定可用 IP |
tls-reset |
TCP 通、TLS 握手被重置 | 可用 IP 或代理 |
main-unreachable |
主站 IP 无响应,备用 IP 也没通 | 代理 / 镜像 / 稍后重试 |
proxy-available |
全断,但本机有代理在跑 | 让 git 走该代理 |
partial |
只有部分域名可用 | 按提示逐项修 |
针对每种情况,插件会给出带验证与撤销说明的命令;设置页面板上每项修复支持「应用 / 撤销」——git 代理与 SSH 443 可直接生效;修改 hosts 会触发一次 UAC 提权,改前自动备份原文件。
明确不做的事¶
- 不提供任何翻墙通道,也不代管浏览器;网页登录打不开时,文档说明只有系统级代理或 hosts 指定 IP 等系统级手段才可能解决。
- 不探测私有仓库,不上传数据;请求从本机直发 GitHub。
- 每项改动需用户点「应用」→「确认」;hosts 提权由系统 UAC 把关,取消则不写入。
三个入口¶
| 入口 | 位置 |
|---|---|
| 设置页 | 设置 → GitHub 连接 |
| 斜杠命令 | 输入框输入 /github |
| 智能体工具 | github_connectivity;描述 GitHub 打不开等问题时可被调用 |
探测默认带限流(并发上限 + 60 秒缓存),避免连续猛探把连接打到超时;设置页「重新检测」会绕过缓存。无需额外配置文件。
安装与启用¶
仓库根目录即为插件包,无构建步骤;装完后刷新 DSH 页面即可。若你正连不上 GitHub,用 git 地址安装时首次拉取也会走 GitHub——可先按 README「一次性的手工恢复」写入 hosts 再安装(见下文注意)。
图形界面(推荐)¶
在 DSH Desktop 或 dsh web 的 设置 → 插件 中粘贴任一地址:
https://github.com/Yunbuqingluan/dsh-github-connectivity
或简写:
github:Yunbuqingluan/dsh-github-connectivity
命令行¶
GitHub 简写(将 desktop 换成实际 profile,dsh web 默认为 web):
dsh plugin --profile desktop add github:Yunbuqingluan/dsh-github-connectivity
完整 HTTPS 地址:
dsh plugin --profile desktop add https://github.com/Yunbuqingluan/dsh-github-connectivity
锁定到指定提交(PowerShell 中须给整段加引号,否则 # 之后会被当注释):
dsh plugin --profile desktop add "github:Yunbuqingluan/dsh-github-connectivity#a1b2c3d"
本地目录(调试或离线,示例为 Windows 路径):
git clone https://github.com/Yunbuqingluan/dsh-github-connectivity
dsh plugin --profile desktop add "link:D:\path\to\dsh-github-connectivity"
link: 表示软链语义,改源码后重启即生效;也接受 file: 或直接绝对路径(会记成 link:)。
典型用法¶
- 打开 设置 → GitHub 连接,或输入
/github,或在对话中说明 GitHub 无法访问以触发github_connectivity。 - 查看各端点探测结果与判定结论(如
ip-blocked、tls-reset等)。 - 按面板或说明中的建议选择修复项,点「应用」并在确认后执行;需要时用「撤销」还原(含 hosts 备份还原)。
- 使用每条修复附带的验证步骤确认 git clone、API 或 raw 等是否恢复。
装插件前若已用手工 hosts 救急,装好以后同一套操作也可在面板上完成,撤销即可去掉临时 hosts 行。
适用场景与注意¶
适合谁: 在本机开发、使用 DSH 插件生态或 git 与 GitHub API 时,需要区分「DNS / IP / TLS / 代理」哪一层出问题,并希望得到可复制命令与可撤销改动的开发者。
权限与安全: 插件以当前 DSH 进程权限运行;hosts 修改会提权。安装前建议浏览仓库源码与 MIT 许可证,确认改动范围符合你的环境策略。
一次性手工恢复(仅当连插件都装不上时): README 提供管理员 PowerShell 示例——清理旧 github.com hosts 行、写入多个备用 IP、ipconfig /flushdns。多个 IP 用于失效切换;装好插件后可用面板「撤销」还原。示例 IP 以 README 为准:
$h = "$env:SystemRoot\System32\drivers\etc\hosts"
(Get-Content $h) | Where-Object { $_ -notmatch '^\s*[0-9a-f.:]+\s+github\.com(\s|$)' } | Set-Content $h -Encoding ascii
'140.82.112.3','140.82.112.4','140.82.113.3' | ForEach-Object { Add-Content $h -Value "$_ github.com" -Encoding ascii }
ipconfig /flushdns
DSH 生态强调「一切皆插件」;社区目录站点与 DeepSeek / 幻方无官方从属关系,本文仅介绍社区维护的连通性诊断插件。
结尾¶
dsh-github-connectivity 把「GitHub 打不开」从模糊超时变成分层结论和可撤销修复,适合作为 DSH 环境下的连通性排查入口。更多信息见 GitHub 仓库 README 与 SkillHub 目录页。