前言¶
在 DeepSeek Harness(DSH)里做智能体或本地开发时,团队往往处在隔离内网:不能依赖公网 IM、也不希望把对话和文件经第三方中转。常见做法是另开一套聊天工具或共享盘,与 DSH 工作区割裂。dsh-lan-chat 是社区维护的 DSH 客户端类插件,在 DSH Desktop 左侧增加「局域网聊天助手」入口,在同一局域网内提供单聊、群聊和文件传输,协议与存储都在本机与对端直连,不连外部服务。
下面介绍它是什么、能做什么、如何安装与日常使用,以及适用边界与安全注意。事实以 GitHub 仓库 README 为准;社区目录页见 skillhub.cn/plugins/jasonchan2026/dsh-lan-chat。DSH 生态是「一切皆插件」,该目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
dsh-lan-chat(包名 dsh-lan-chat,当前版本 2.2.2,MIT 许可证)由 jasonchan2026 维护。定位是:完全离线的内网即时通讯 DSH 插件——无云端账号、无中转服务器、无 CDN;流量仅在自有局域网内。实现上声明 零运行时依赖(Node 内置模块 + 手写 WebSocket),在能拷贝安装包的离线机器上也可部署。
每台安装插件的机器是一个节点:在宿主进程内独立监听 0.0.0.0:<port> 的 HTTP + WebSocket(不复用 DSH 仅监听回环的 web server,以便局域网对端可达)。浏览器界面经 DSH 同源 web 访问插件路由;节点之间经插件端口直连。
核心功能¶
README 中核实的能力如下。
| 能力 | 说明 |
|---|---|
| 单聊 | 一对一聊天,未读数、已读位置、在线状态 |
| 群聊 | 自建群、拉人、改名、退群、删除;群资料同步;群主删群为解散并通知成员 |
| 文件传输 | 拖拽或点选发送,单文件上限可在设置中配置(默认 512MB,范围 64MB~64GB);接收方按需下载 |
| 网段扫描 | 填写如 192.168.1.0/24 并发探测,进度实时显示;扫描地址上限 1024(避免过宽 CIDR) |
| 自动发现 | 约每 30 秒 UDP 广播,同网段可互相看到 |
| 手动探测 | 已知对方 IP 时可探测单个地址 |
| 访问码 | 可选;设置后仅持有相同访问码者在握手后可通信 |
| 联系人备注 | 本地显示名,仅本机 |
| 离线消息 | 对端离线时消息仍落本地,联网后可手动重发 |
界面为左侧会话列表 + 右侧聊天区,三个页签:会话(单聊/群聊预览与未读)、联系人(在线状态与 IP)、发现(扫描 / 手动探测 / 添加)。
安装与启用¶
环境要求(README 原文):
- DSH Desktop 0.2.1-rc.3 或更高
- Node.js 22+(DSH 自带,通常无需单独安装)
从 1.x 升级到 2.x:README 标明 2.0.0 为破坏性安全版本,协议不兼容,局域网内所有机器须一起升级,否则无法互通。细节见仓库 CHANGELOG.md。
方式一:从 GitHub 安装(推荐)¶
在 DSH Desktop 插件市场搜索 dsh-lan-chat,或执行:
dsh plugin --profile desktop add github:jasonchan2026/dsh-lan-chat
安装完成后重启 DSH Desktop,左侧会出现「局域网聊天助手」。dsh plugin add 会写入 profile 的 dependencies,并把包名追加到 dsh.profile.bundles(本包声明了 dsh.bundle)。
方式二:本地目录¶
已在本地有源码目录时:
dsh plugin --profile desktop add link:$PWD
Loader 条目由包内 cordis.patch.yml 经 bundle 机制叠加;README 提醒勿在 profile 自己的 cordis.patch.yml 重复插入同一 id: lan-chat,否则会注册两次。
可选配置(cordis.patch.yml)¶
可在插件条目中设置:
- insert:
- id: lan-chat
name: dsh-lan-chat
config:
port: 45871
nickname: 我的电脑
dataDir: /path/to/data
| 参数 | 默认值 | 说明 |
|---|---|---|
port |
45871 |
TCP 监听端口;UDP 发现端口为 port + 1 |
nickname |
主机名 | 首次启动写入,之后以界面设置为准 |
dataDir |
$DSH_HOME/plugin-data/dsh-lan-chat |
消息、文件、身份与设置目录 |
昵称、访问码、单文件上限、联系人备注等可在界面「设置」中修改。文件总量配额默认 2 GiB,经 /lan-chat/settings 的 maxTotalBytes 调整,README 注明暂未做进界面。
典型用法¶
- 同网段自动见面:双方均安装并启用插件,界面显示「在线 · 端口 xxxxx」;在「发现」或「联系人」中确认彼此在线后发起单聊或建群。
- 按网段加同事:在「发现」填入 CIDR(如
192.168.1.0/24)扫描,或手动填 IP 探测后添加。 - 传文件:在会话中拖拽或选择文件发送;注意发送框右下角会随设置显示单文件上限。
- 可选访问码:在设置中配置访问码后,新对端须在握手时提供相同码才能拿到 token 通信。
- 跨网段:不能依赖自动发现;若路由可达,可在「发现」页手动填对方 IP 探测并添加。
数据默认落在:
$DSH_HOME/plugin-data/dsh-lan-chat/
├── identity.json
├── state.json
├── messages/ # 各会话 JSONL
└── files/
适用场景与注意¶
适合:同一局域网或路由可达的内网协作;隔离环境、不希望 IM 与文件经公网;希望在 DSH 工作流旁完成轻量沟通与传文件。
连通性(README 常见问题):需同一网段或可达路由;防火墙须放行监听端口;公司 WiFi 若开启 AP/客户端隔离,同 SSID 设备可能互不可见,插件无法绕过。端口被占用时界面会提示占用者 PID;对符合条件的 DSH 残留宿主可提供「强制释放」,否则需改 port 或关闭占用程序。
安全与权限:
- 插件以当前 DSH 进程权限运行;安装前应自行审阅 源码与 LICENSE,确认符合内网策略。
- README 安全说明:局域网端口上除
/info、/hello外接口需 token;消息不加密,同网段可抓包,不宜传输敏感凭据。默认监听0.0.0.0但入站按 RFC1918 等过滤;仅本机使用时 README 提到可设bind: 'local'只绑127.0.0.1。 - 2026-10-25 渗透测试相关修复与行为描述见 README「安全说明」及仓库
docs/(报告不入库)。
仓库提供离线自测脚本(如 node scripts/selftest.mjs 等),默认 npm test 串联多项测试;完整列表见 README「自测」一节。
结尾¶
dsh-lan-chat 把单聊、群聊、文件传输和网段发现收进 DSH Desktop 侧边栏,依赖局域网直连与本地持久化,适合内网团队在不接外部 IM 的前提下并排使用 Harness。