前言¶
在本地跑 DeepSeek Harness(DSH)時,開發者常常需要在另一臺設備上查看或操作同一套 Web 界面:出差用手機、在另一房間用平板,或臨時把會話交給協作者。把 DSH 直接暴露在公網,或把隧道與主進程綁在一起,一旦隧道重啓或崩潰,往往會拖垮整個應用。
下面介紹的 dsh-remote-v2(維護者 juntaoqian)把隧道與認證網關放在獨立 sidecar 進程裏,通過一次性配對與設備會話控制訪問路徑,屬於 DSH 社區目錄中的 admin-security 類插件。本文依據倉庫 README 與 package.json 整理安裝與用法,版本狀態爲 v0.1.0。
這是什麼¶
dsh-remote-v2 是面向 DeepSeek Harness 的遠程訪問插件:側車進程承載隧道與認證網關,DSH 主程序通過薄適配層調用本機 loopback 控制 API;手機瀏覽器或 PWA 經 HTTPS 進入傳輸層,再經網關反向代理到本機 DSH Web Server(127.0.0.1)。
設計重點包括:
- 隧道或網關進程異常時,不連帶拖垮 DSH 主進程。
- 支持可插拔傳輸:Cloudflare Quick Tunnel(零配置)、Named Tunnel(固定域名)、Tailscale Serve(僅 tailnet)。
- 一次性配對(256 位 QR 密鑰 + 8 位手動碼)、設備會話(7 天滑動窗口、可單獨或全部吊銷)。
- 網關僅綁定 loopback,對管理面前綴做解碼安全的拒絕,並在轉發前剝離 hop-by-hop / 邊緣相關頭。
- 純 ESM JavaScript,無構建步驟、運行時無 npm 依賴(QR 生成器爲 vendored)。
架構與依賴¶
請求路徑可概括爲:手機瀏覽器 → 傳輸層(Quick / Named / Tailscale)→ Remote Core(獨立 Node 進程:隧道管理、認證網關、配對與設備會話、loopback 控制 API)→ DSH 插件適配層 → DSH Web Server。
運行要求(摘自 README):
- DSH Desktop / Web >= 0.2.1-rc.2(需 bundled
connection+webServer服務)。 - Windows x64(MVP):首次啓動可自動下載固定版本並校驗 SHA-256 的
cloudflared;macOS / Linux 支持計劃中。 - 不額外安裝 Node:sidecar 由 DSH 自帶的 Electron-as-Node 運行時啓動。
package.json 中 engines 約定 Node >= 22.19.0、dsh >= 0.2.1-rc.2。許可證爲 MIT。
網絡說明:Quick Tunnel 使用 *.trycloudflare.com。README 指出,在部分網絡(尤其大陸部分地區)該域名可能無法解析,公網 URL 會不可達,即使 cloudflared 顯示 ready。穩定或生產環境更宜使用 Named Tunnel 配自有域名,或在可用代理後使用 Quick Tunnel;本機 loopback 上的網關、配對與代理路徑不受影響。
安全模型(摘要)¶
- 在隧道報告已校驗的 origin 之前,公網入口保持關閉(503);關閉遠程訪問時會先清除 origin 再結束隧道。
- 經代理的 HTTP / WebSocket 請求需通過設備會話 cookie 認證;管理前綴
/dsh-remote-v2對公網拒絕(含百分號解碼安全處理)。 - 配對頁僅允許一次性 secret / code 領取,cookie 爲
HttpOnly; SameSite=Lax,並帶嚴格 CSP。 - 持久化僅存設備 token 的 SHA-256 哈希,不以明文長期保存配對碼(與 v1 對比)。
- 網關將
Host/Origin改寫爲 loopback DSH 服務地址,轉發前剝離authorization、cf-*、x-forwarded-*、forwarded及設備 cookie。
README 明確:已配對設備在能力上等同於本地瀏覽器使用 DSH(含工具執行)。配對碼應保密,不再使用的設備應及時吊銷。
安裝與啓用¶
安裝命令須從倉庫腳本執行,而非憑插件名拼接 dsh plugin add:
# from this repository
node scripts/install.mjs --profile desktop
# then fully quit and reopen DeepSeek Harness
完全退出並重新打開 DeepSeek Harness 後,在 設置 → 遠程訪問(僅 loopback)中配置。插件狀態目錄中的配置示例路徑爲 ~/.dsh/plugins/dsh-remote-v2/config.json(Named Tunnel token 等敏感項以 mode 0600 存儲,README 要求按密碼級憑證保管)。
安裝前宜自行審閱 源碼 與 MIT 許可證;插件與 sidecar 以當前 DSH 進程權限運行,配對成功後的遠端會話權限與本地瀏覽器相當。
典型用法¶
基本流程¶
- 打開 設置 → 遠程訪問。
- 選擇傳輸方式:
- Quick Tunnel — 零配置;每次啓動 URL 會變。
- Named Tunnel — 粘貼 Cloudflare Tunnel token 與已配置的公網 hostname。
- Tailscale(tailscale serve) — 僅 tailnet 內訪問(見下節)。 - 點擊 開啓,等待狀態爲 ready 並出現公網 URL(或 tailnet HTTPS 地址)。
- 點擊 生成配對碼,用手機掃 QR(或輸入 8 位碼)。
- 在同一頁管理或吊銷已配對設備;用 關閉 停止遠程訪問。
Named Tunnel(穩定 URL)¶
需域名 DNS 指向 Cloudflare(免費計劃即可),且 Cloudflare Public Hostname 轉發目標與插件本地網關端口一致(示例中爲 http://127.0.0.1:26001)。
- Cloudflare 控制台 → Zero Trust → Networks → Tunnels → Create a tunnel → connector Cloudflared,命名保存。
- 從 connector 安裝頁複製 token(
cloudflared service install後一長串),或 CLI:cloudflared tunnel token <name>。 - 爲該 tunnel 添加 Public Hostname:例如子域
dsh、服務 HTTP、URL127.0.0.1:26001(須等於插件本地網關端口)。 - 在 設置 → 遠程訪問 中:傳輸方式爲 Named Tunnel,填入 token、公網地址(如
https://dsh.example.com)、本地網關端口26001,保存後 開啓。 - 可選:在 hostname 前加 Cloudflare Access;插件側配對仍生效。
Tailscale Serve¶
僅當電腦與手機在同一 Tailscale tailnet 時適用;不經公網暴露(若需公網 funnel 需另用 tailscale funnel)。
- 獲取本機 DNS 名(Windows 示例):
& 'C:\Program Files\Tailscale\tailscale.exe' status --json |
ConvertFrom-Json | ForEach-Object { $_.Self.DNSName.TrimEnd('.') }
# e.g. cxqjt.tail7cbe8.ts.net
- 啓用 Serve(tailnet 所有者):
& 'C:\Program Files\Tailscale\tailscale.exe' serve --bg 26001
- 插件中:傳輸方式爲 Tailscale(tailscale serve),公網地址填
https://<dns-name>,本地網關端口與上一步端口一致,保存後 開啓。 - 手機須在 tailnet 內:掃配對 QR,或打開
https://<dns-name>/pair輸入 8 位碼。
停止時:在插件中關閉遠程訪問,並執行 tailscale serve reset。
更細的步驟與常見問題見倉庫內 docs/USAGE.zh-CN.md。
適用場景與注意¶
適合已在本地穩定運行 DSH、需要從手機或其他設備安全接入同一實例的開發者。Quick Tunnel 適合快速驗證;固定域名或國內網絡可達性要求高時,優先 Named Tunnel 或 Tailscale。
當前 v0.1.0 已實現 Quick / Named / Tailscale 傳輸、配對、設備管理、設置 UI 與診斷(README 狀態說明)。問題反饋見 GitHub Issues;模塊與 API 契約見 docs/contracts.md。
DSH 社區插件目錄爲獨立站點(如 SkillHub 上的 juntaoqian/dsh-remote-v2),與 DeepSeek / 幻方無官方從屬關係;安裝與啓用前請覈對版本與源碼。
結尾¶
dsh-remote-v2 用隔離 sidecar、認證網關與一次性配對,把 DSH 遠程訪問從主進程拆開,並支持多種傳輸方式。若你正在使用 DSH >= 0.2.1-rc.2,可按倉庫安裝腳本部署,在 設置 → 遠程訪問 中完成配對與設備管理。
- 目錄頁:https://www.skillhub.cn/plugins/juntaoqian/dsh-remote-v2
- 源碼與 README:https://github.com/juntaoqian/dsh-remote-v2