前言¶
在 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 目錄頁。