dsh-mesh-access:在組網地址上反代當前 DSH,手機瀏覽器續用同一會話

前言

DeepSeek Harness(DSH)的網頁界面通常由 dsh web 提供。dsh web --host 只接受一個具體網卡地址,且拒絕通配;只監聽 127.0.0.1:3080 時,組網裏的手機、另一臺電腦或帶圖形界面的 NAS 都訪問不到。開機後纔出現的 TAP(星空組網 StarVPN)或 utun 等網卡,也不會出現在服務啓動時的地址表裏。

常見做法是再開一個 dsh、SSH 端口轉發,或改監聽地址——容易得到兩個實例、兩份會話,甚至觸發 task-board ledger is already owned by …。維護者 SilverKurali 的客戶端插件 dsh-mesh-access 在已在運行的 DSH 進程內部於組網網卡上多開一個反代端口,把請求轉到 127.0.0.1:3080,從而同一實例、同一份會話與上下文,無需 SSH,也無需第二個 dsh。

這是什麼

dsh-mesh-access 是 DSH 的 web profile 插件(npm 包名 dsh-mesh-access,倉庫 SilverKurali/dsh-mesh-access)。底層做法是把正在運行的 DeepSeek Harness 網頁界面掛到組網網卡上,在服務進程內完成反代;手機瀏覽器打開的是你在電腦上正在用的那個界面。社區目錄頁:SkillHub 插件條目。插件同時出現在 awesome-dsh-plugin 商店。許可證 MIT;package.json 中當前版本爲 1.5.9,要求 Node >=22,DSH >=0.2.1-rc.2。

數據路徑示意(README 原文):

任何設備 ──▶ 192.168.188.1:3081 ──▶(插件反代)──▶ 127.0.0.1:3080(你正在用的這個 dsh)

核心功能

進程內組網反代

插件不能修改主服務自身的監聽地址;組網側是反代,不是把 dsh web 再綁一次。默認把組網地址上的流量轉到本機上游(默認 127.0.0.1)上的 DSH 端口。同一份 ~/.dsh 只允許一個實例持有 task-board 鎖,本插件的設計目標就是避免爲遠程訪問再拉第二個實例。

側欄「組網訪問」面板

安裝並重啓 web profile 後,左側導航會出現組網訪問,大致包括:

功能塊 內容
當前狀態 反代是否在跑、DSH 監聽端口、檢測到的組網網卡數量
動作 在組網地址上開端口 / 關閉 / 刷新
訪問地址 供組網內設備打開的地址(帶 token,可複製)
公網隧道(可選) 用你自己的服務器做公網入口:啓停 frpc、顯示公網地址、探測可達性
入口登錄(門鎖) 公網入口三模式:密鑰 / 賬號密碼 / 關閉(1.4.0 起)
遠程卡頓? 提示 billion-context 開銷等
第一次用星空組網? 邀請註冊與成員賬號說明

重啓後自動恢復:面板開過的組網端口與公網隧道記在側車裏;dsh web 重啓、機器重啓或斷電恢復後,插件會輪詢恢復(最多等待網卡與上游就緒)。僅當你在面板手動「關閉 / 停止」時纔會清除記憶。也可通過 dsh-frpc.service 讓 frpc 開機自啓,與 dsh web 是否運行解耦。

可選配置

可在 profile 的 patch 層寫入(均有默認值):

- id: mesh
  name: dsh-mesh-access
  config:
    interfacePattern: '^(StarVPN|utun\d+|tap\d+|tun\d+|wg\d+|gpd\d+|ppp\d+|ipsec\d+)$'
    addressPrefix: '192.168.'
    proxyPort: 3081
    upstream: 127.0.0.1

addressPrefix 用於避免把 tun* 上的公網地址誤判爲組網地址。插件只考慮 IPv4 組網地址。

HTTP 接口與無界面排查

面板對應少量 API,例如:

GET  /api/dsh-mesh-access/status   → 狀態
POST /api/dsh-mesh-access/proxy    → start | stop
GET  /api/dsh-mesh-access/tunnel   → frpc 隧道狀態(1.1.0+)
GET  /api/dsh-mesh-access/auth     → 入口登錄;POST 切換模式等(1.4.0+)

本機可執行:

curl -s http://127.0.0.1:3080/api/dsh-mesh-access/status

公網隧道與入口登錄(可選)

組網路徑在部分鏈路上會走高延遲 TCP 中繼(README 給出實測 RTT 與「重新連接中」現象說明)。若你有帶公網 IP 的自有服務器,可用倉庫內 tools/frps-setup.sh 與 tools/frpc-setup.sh 自建入口;插件不提供、也不使用他人服務器。公網門鎖在插件面板配置,認證狀態落在本機 ~/.config/frp/dsh-mesh-access.json。詳細步驟見倉庫 docs/VPS.md、docs/AI-SETUP.md。

不只手機

只要在同一星空組網(或同類 VPN/組網)內、能路由到組網 IP、瀏覽器能發 HTTP,手機、平板、另一臺電腦、圖形界面 NAS、電視盒子上的瀏覽器均可打開「訪問地址」中的鏈接,無需在對方設備安裝 DSH 或本插件。

安裝與啓用

官方推薦通過 DSH 插件命令安裝(須使用 web profile):

dsh plugin --profile web add dsh-mesh-access

無法走 npm 或鏡像不便時,可用 Release 中的 tgz:

dsh plugin --profile web add \
  https://github.com/SilverKurali/dsh-mesh-access/releases/latest/download/dsh-mesh-access.tgz

本地開發可 link 安裝:

dsh plugin --profile web add link:/絕對路徑/dsh-mesh-access

裝完後重啓 web profile,確認側欄出現「組網訪問」。完整裝法、驗證、卸載與故障表見倉庫 INSTALL.md。

權限說明:插件隨當前 dsh web 進程運行,具備該進程的用戶權限。安裝前宜瀏覽倉庫源碼與 MIT 許可證,確認是否符合你的環境策略。

典型用法

1、確認 DSH 已在本地正常監聽(例如 127.0.0.1:3080),並已加入星空組網等,本機可見 StarVPN、utun 等網卡。

2、安裝插件並重啓 profile,打開 組網訪問 → 在組網地址上開端口,從 訪問地址 複製帶 token 的 URL。

3、在組網內的手機或其它設備瀏覽器中打開該 URL。帶 ?token= 的請求會種下 dsh-auth-* cookie(30 天等規則見 README);更換組網 IP 或端口後需重新點一次 token 鏈接。

4、若組網鏈路卡頓或 WebSocket 反覆重連,先用 README 中的 grep 示例查星空客戶端日誌是否 path=SN-TCP;需要穩定公網訪問時,按 docs/VPS.md 自建 frp 隧道,並在面板 公網隧道 中啓動。

5、無圖形界面或 DSH 未啓動時的替代方案(會起第二個實例)是配套項目 dsh-mesh-kit,與本插件的設計路徑不同,按需選用。

適用場景與注意

適合:已在用 DSH web,希望通過 VPN/組網從手機或其它設備繼續同一實例、同一會話,且不想 SSH 或再起一個 dsh。

注意:

  • 遠程體驗取決於組網選路;TCP 中繼高延遲時,界面可能出現「重新連接中…」,多數情況不是反代邏輯錯誤(1.0.0 時代因未改寫 Origin 導致 WebSocket 403,需 1.0.1+)。
  • 改了端口或組網 IP 後,須在面板關閉再重新開端口,並複製新地址。
  • 組網設備超時:先 ping 組網 IP,再查本機防火牆是否放行端口。
  • DSH 生態以「一切皆插件」爲理念;SkillHub、awesome-dsh-plugin 等爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。

鏈接

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜