- Главная
- Плагины
- Инструменты и функции
- dsh-network-mode
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-modeREADME
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 半端)。 安装后默认本机模式(局域网访问关闭),需在设置页手动开启。
使用
- 打开 DSH Web 界面 → 设置 → 网络模式
- 拨动「局域网访问」开关
- 重启 DSH 使绑定生效
- 局域网内的设备(手机等)打开页面显示的地址(如
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.yml 中 webserver 行的
host 配置(完整重写 host + port,避免只写 host 导致 port 缺失、webserver 校验失败),
从而绕过 CLI 限制,不改动任何 DSH 源码。
| 问题 | 方案 |
|---|---|
CLI 禁止 --host 0.0.0.0 | 用户 patch 层覆盖 webserver host |
局域网 HTTP 下 crypto.randomUUID is not a function | host 端 tapIndex 向 index.html 注入基于 crypto.getRandomValues 的 polyfill |
| 切换入口 | 设置页「网络模式」区块 + /api2/network-mode REST |
结构
| 文件 | 作用 |
|---|---|
lib/index.js | host 半端:REST(status / switch)、读写配置与 patch、注入 polyfill |
client/client.js | client 半端:设置页「网络模式」区块(React) |
cordis.patch.yml | bundle 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