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
需要可复现安装时,可在仓库后追加 #commit 固定提交。
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.
该插件未提供要点说明,请参考仓库 README。
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/seektureworld/dsh-network-mode |
| 许可证 | MIT |
| 主要语言 | master |
| 下载量 | 2 |
| GitHub 星标 | 0 |
| 最近推送 | 2026-08-19 |
| 收录日期 | 2026-09-19 |
| 分类 | 工具与能力 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# dsh-network-mode
DSH(DeepSeek Harness)网络模式切换插件:在 **设置页** 一键切换 DSH Web 服务的绑定地址——
- **本机模式**(**默认**,即局域网访问默认关闭):`127.0.0.1`,仅本机可访问
- **局域网模式**:`0.0.0.0`,同一网段内的设备(手机、平板等)可访问
同时自动为前端注入 `crypto.randomUUID` polyfill,解决局域网 HTTP 来源(非安全上下文)下该 API 不可用导致的界面异常。
## 安装
```powershell
# 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://: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
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。