メインコンテンツへスキップ
S

dsh-network-mode

seektureworld/dsh-network-mode

Switch DSH between localhost (127.0.0.1) and LAN (0.0.0.0) bind from the Settings page (LAN access off by default), with a crypto.randomUUID polyfill for non-secure LAN origins.

インストール

dsh plugin --profile web add github:seektureworld/dsh-network-mode

README

dsh-network-mode

DSH(DeepSeek Harness)网络模式切换插件:在 设置页 一键切换 DSH Web 服务的绑定地址——

  • 本机模式默认,即局域网访问默认关闭):127.0.0.1,仅本机可访问
  • 局域网模式0.0.0.0,同一网段内的设备(手机、平板等)可访问

同时自动为前端注入 crypto.randomUUID polyfill,解决局域网 HTTP 来源(非安全上下文)下该 API 不可用导致的界面异常。

安装

# npm 源(推荐)
dsh plugin --profile web add dsh-network-mode

# GitHub 源
dsh plugin --profile web add github:SeekTureWorld/dsh-network-mode

# 或本地目录(开发时):
dsh plugin --profile web add D:\path\to\dsh-network-mode

装完重启 DSH 生效(host 半端),浏览器刷新加载设置页(client 半端)。 安装后默认本机模式(局域网访问关闭),需在设置页手动开启。

使用

  1. 打开 DSH Web 界面 → 设置 → 网络模式
  2. 拨动「局域网访问」开关
  3. 重启 DSH 使绑定生效
  4. 局域网内的设备(手机等)打开页面显示的地址(如 http://192.168.1.105:3080

本机与手机请统一使用同一个地址访问(例如都走 http://<IP>:3080)。 浏览器按访问地址隔离前端缓存,混用 127.0.0.1 与局域网 IP 会看到不同的会话列表。

换网后请重启 DSH:DSH 的浏览器信任名单是启动时采样的快照。换了 WiFi / 网段后, 新 IP 不在信任名单里,从该地址访问时 /api 会被 403 拒绝(添加工作区等操作失败)。 设置页检测到这种情况会显示红色提示;重启 DSH 服务后自动恢复。

原理

DSH 官方 CLI 出于安全考虑禁止 --host 0.0.0.0,但底层 webserver 的 schema 允许该值。 本插件通过用户 patch 层覆盖 ~/.dsh/profiles/web/cordis.patch.ymlwebserver 行的 host 配置(完整重写 host + port,避免只写 host 导致 port 缺失、webserver 校验失败), 从而绕过 CLI 限制,不改动任何 DSH 源码。

问题方案
CLI 禁止 --host 0.0.0.0用户 patch 层覆盖 webserver host
局域网 HTTP 下 crypto.randomUUID is not a functionhost 端 tapIndex 向 index.html 注入基于 crypto.getRandomValues 的 polyfill
切换入口设置页「网络模式」区块 + /api2/network-mode REST

结构

文件作用
lib/index.jshost 半端:REST(status / switch)、读写配置与 patch、注入 polyfill
client/client.jsclient 半端:设置页「网络模式」区块(React)
cordis.patch.ymlbundle patch:挂载 host 服务行
package.json清单:dsh.bundle.patch + dsh.client 声明
  • 配置状态:~/.dsh/network-mode.json{"mode":"lan"|"localhost"}
  • 生效位置:~/.dsh/profiles/web/cordis.patch.yml- id: webserver

安全提示

局域网模式会把 DSH(含可执行工具集)暴露给整个局域网。 仅建议在可信内网(家庭 / 公司)使用,不要在公共 WiFi 开启;不用时切回本机模式。

开发

  • 修改 host 半端(lib/index.js)→ 重启 DSH
  • 修改 client 半端(client/client.js)→ 刷新浏览器(link 方式安装时改动即时生效)

Author

CN_ZM

License

MIT

関連プラグイン