dsh-lan-share:DeepSeek Harness 的局域网文件共享插件

前言

在智能体开发或日常调试中,经常需要将本地工作区的产物快速分享给手机、平板或同事的电脑。现有的 DSH 插件方案各有侧重:dsh-lan-gate 或 dsh-plugin-remote-access 代理的是 DSH 网页端,访问需要登录或设备审批;dsh-ssh 针对远程服务器执行与 SFTP;dsh-webfile 则连接远程存储(如 S3、FTP)。

dsh-lan-share 解决的是本机工作区文件的纯局域网 HTTP 共享问题。它不依赖额外的服务端,利用 Node.js 原生模块,让同一局域网内的设备通过浏览器直接浏览、下载或上传文件,无需登录 DSH 系统。

核心功能

该插件提供了一套完整的文件共享能力:

  • HTTP 共享:将本地工作区通过 HTTP 协议暴露,支持手机、平板或其他电脑的浏览器直接访问。
  • 零依赖:仅使用 Node.js 原生 node:http 模块,无需安装额外服务。
  • 安全门禁:支持 Token 门禁,防止未授权访问。可配置固定口令,每个口令可独立设置角色(只读/读写)和过期时间。
  • 路径边界:通过解析机制防止 ../ 绝对路径越界攻击。
  • 只读模式:可开启只读模式,限制上传、删除和移动操作。
  • 限流保护:默认每 IP 每分钟 120 请求,超限返回 429 状态码。
  • 敏感文件隐藏:自动过滤 .env、凭据类文件(credentials.yaml、.netrc)、密钥(*.pem、*.key、*.pfx)、node_modules、.git 等目录和文件。

安装与启用

在 DeepSeek Harness 的配置文件(如 dsh.profile 或 cordis.yml)中添加以下条目:

plugins:
  - id: tool-lan-share
    name: 'dsh-lan-share'

典型用法

插件提供了三个核心命令来控制共享服务。

1. 启动共享

执行 lan_share_start 命令启动服务。你可以通过参数指定端口、Token、只读模式或子目录。

lan_share_start → {
  "ok": true,
  "running": true,
  "port": 3980,
  "root": "F:/work",
  "readOnly": false,
  "urls": ["http://192.168.1.5:3980/?token=9f2c...", "..."],
  "token": "9f2c..."
}

2. 查看状态

使用 lan_share_status 查看当前共享服务的运行状态、访问地址、Token 以及文件统计信息。

3. 停止共享

使用 lan_share_stop 停止服务。

4. 访问与操作

在局域网内任意设备的浏览器输入返回的 URL(包含 token)。在读写模式下,支持拖拽上传、点击下载;在只读模式下,仅支持浏览目录树和下载文件。

5. 配置固定口令

除了启动时生成的随机 Token,还可以配置固定口令。在 lan_share_start 中传入 passwords 数组:

lan_share_start → { passwords: [
  { password: "family", role: "read",  expiresIn: "3d" },
  { password: "admin",  role: "write", expiresIn: "long" },
] }

浏览器访问时,可在 URL 参数 ?password= 或请求头 X-Password 中传入对应口令。

配置项

在 DSH 的 settings 中可以配置 lan-share 命名空间下的参数:

lan-share:
  port: 3980            # 监听端口
  host: 0.0.0.0         # 监听地址,0.0.0.0 为全局域网,127.0.0.1 仅本机
  readOnly: false       # 默认只读模式
  rateLimitPerMin: 120  # 每 IP 限流(请求次数)
  hideSensitive: true   # 是否隐藏敏感文件

注意事项

  • Node 版本要求:插件需要 Node.js 版本 ^22.19.0 || >=24.0.0。
  • 代码路径:核心逻辑位于 src/lan-share-core.ts。
  • 访问控制默认:默认 allowOpenAccess: false,即必须通过 Token 或固定口令验证才能访问。若需局域网内任何设备免口令访问,需手动开启该选项。
  • 权限范围:插件以当前 DSH 进程的权限运行,请确保配置好相关目录的读写权限。

生态背景

DeepSeek Harness(DSH)采用“一切皆插件”的理念。dsh-lan-share 是社区维护的插件,其目录页与 GitHub 仓库可参考下方链接。

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

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

小夜