dsh-web-control:在 DSH 內管理可局域網或 Tailscale 訪問的 dsh web

前言

DeepSeek Harness(DSH)提供 dsh web 命令,在本地啓動 Web 界面。默認情況下它只監聽 127.0.0.1,同一局域網內的手機或其他設備無法直接訪問。若要把服務暴露到局域網或 Tailscale 網段,通常需要自行查 IP、拼裝 dsh web 的 --host、--port、--public-url 等參數,並從日誌裏解析帶 token 的登錄 URL。weichengwu 維護的 dsh-web-control 插件把上述流程收進 DSH:在設置頁或智能體工具裏選擇綁定地址、啓停實例、複製 token URL、查看日誌。

這是什麼

  • 名稱:dsh-web-control
  • 維護者:weichengwu
  • 分類:admin-security(社區目錄歸類爲管理與安全相關能力)
  • 倉庫:github.com/weichengwu/dsh-web-control
  • 版本(package.json):0.1.0,MIT 許可證

插件在後臺調用 DSH 自帶的 dsh 可執行文件(而非直接 node CLI),大致等價於:

dsh web --no-open --port <PORT> --host <IP> --public-url http://<IP>:<PORT>/

並從子進程日誌中解析就緒行:

dsh web: http://<IP>:<PORT>/?token=<TOKEN>

核心功能

  1. 綁定地址選擇:支持 Tailscale 地址(如 100.64.0.10)、局域網 IPv4(如 192.168.1.100)或迴環;bindHost 爲 null 時按 Tailscale → 局域網 → 迴環 自動檢測。
  2. 生命週期管理:啓動、停止、重啓 dsh web 子進程。
  3. Token URL:複製完整登錄鏈接;每次啓動 token 輪換且一次性,首次瀏覽器交換後變爲 cookie。
  4. 日誌:讀取 dsh web 子進程的 stdout/stderr 彙總日誌。
  5. 智能體工具:dsh_web_control、dsh_web_config 供 Agent 查詢狀態或改配置。

Tailscale 與局域網(README 對比)

Tailscale LAN
可達範圍 有互聯網的任意網絡 同一 WiFi / 路由器
加密 WireGuard 端到端;隧道內 HTTP 仍爲明文 明文 HTTP,同網段可嗅探
依賴 兩端安裝並登錄 Tailscale 無額外依賴
適用 外出用手機訪問家中 Mac 等 家裏或辦公室內網

安裝與啓用

從 GitHub 安裝(需使用 --profile desktop):

dsh plugin --profile desktop add github:weichengwu/dsh-web-control

或安裝 Releases 中的預構建 tarball(路徑須爲絕對路徑):

dsh plugin --profile desktop add file:/absolute/path/to/dsh-web-control-0.1.0.tgz

安裝後退出並重新打開 DSH。macOS 分步說明見倉庫內 docs/SETUP-MAC.zh.md。

注意:不要使用 dsh plugin add dsh-web-control 這類裸名;插件未發佈到 npm,否則會觸發 ERR_PNPM_FETCH_404。

典型用法

設置頁

打開 Settings → Web 訪問:選擇地址、設置端口(默認 3080),點擊 啓動,再將 URL 複製到手機瀏覽器。

配置文件與狀態文件

配置位於 ~/.dsh-web-control/config.json:

  • bindHost:null 表示自動檢測
  • port:默認 3080
  • autoStart:默認 false

同目錄下還有 instance.json(pid、url、bindHost、port、startedAt)、dshweb.log、url.txt(當前完整 URL,權限 600)。

Agent 工具

dsh_web_control — 參數示例:

{ "action": "status|start|stop|restart|url", "host?": "...", "port?": 3080 }

返回:{ running, url, bindHost, port, message }。

dsh_web_config — 參數示例:

{ "bindHost?": "...", "port?": 3080, "autoStart?": false }

無參數時讀取配置;返回 { config, candidates }。

適用場景與注意

適合誰:需要在手機或其他設備上通過瀏覽器使用同一臺機器上的 DSH Web,且願意在受信網絡(家庭/office 局域網或 Tailscale)上暴露 HTTP 監聽口的用戶。

技術約束(README 原文要點)

  • --host 必須是具體 IPv4 字面量,不接受 0.0.0.0。
  • 日誌裏 listening on <IP> over plain HTTP; restrict this port... 是提示而非錯誤;Tailscale 上由 WireGuard 加密,純局域網下 HTTP 不加密。
  • 綁定到非迴環地址後,能訪問該地址且持有 token 或 cookie 的一方,具備該機器上 DSH 的同等權限(文件、命令、工具)。僅在可信網絡使用;勿在公共 WiFi 上以 LAN 模式長期開啓;用畢停止;將 token URL 視爲憑證。

插件運行方式:插件隨當前 DSH 桌面進程加載,管理的是本機上的 dsh web 子進程。安裝前可在 GitHub 查看源碼與 MIT 許可證;社區插件目錄 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係,屬社區「一切皆插件」生態中的獨立條目。

結尾

dsh-web-control 把「選 IP、起服務、拿 token URL」從 shell 腳本收進 DSH 界面與 Agent API,適合 Tailscale 或家庭局域網遠程使用 dsh web 的場景。目錄頁:https://www.skillhub.cn/plugins/weichengwu/dsh-web-control;源碼與中文主文檔:https://github.com/weichengwu/dsh-web-control(README.zh.md)。

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

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

小夜