dsh-lan-tool: Enabling LAN Access and Mobile Adaptation for the DeepSeek Harness Web GUI

前言

DeepSeek Harness(DSH)桌面版的 Web GUI 默认只监听本机回环地址,同一局域网里的手机、平板或其它电脑无法直接打开会话界面。若把 DSH 自身绑到通配地址,在 0.2.1 起会被上游拒绝,且会把暴露面扩大到不可控范围。下面介绍的 dsh-lan-tool 是社区维护的 DSH 插件 bundle:不改 DSH 的绑定,由插件内置反向代理在本机局域网地址上提供入口,并对局域网访客做口令门;同时在不改官方页面结构的前提下注入移动端触控适配。功能开关在设置页,安装过程不询问口令。

这是什么

dsh-lan-tool 由 MrMu666 维护,在 SkillHub 插件目录 中归类为「客户端」插件;源码与说明见 GitHub 仓库,npm 包名为 dsh-lan-tool,许可证为 MIT。

插件声明 dsh.bundle.patch,走 DSH 官方插件机制安装,没有独立安装脚本。当前资料中的版本为 1.6.1,且 engines.dsh 锁定 @deepseek-ai/dsh 0.2.1-rc.5:在其它 DSH 版本上安装或启用会被判为 incompatible-version 而拒绝。仍在使用 DSH 0.2.1-rc.3 的用户应继续使用 dsh-lan-tool@1.6.0。

核心功能

局域网入口与 DSH 的关系

自 1.5.0 起,插件不再改写 DSH 的 webServer / 绑定:DSH 保持官方默认只听 127.0.0.1。打开「局域网访问」后,插件在本机当前局域网接口地址上启动反向代理,复用与 DSH 相同的端口号(对外 URL 仍为 http://<本机IP>:<DSH端口>),将请求转发到 DSH 本机端口;Host 原样转发,登录凭据与官方一致。关闭开关会立刻停止对外监听,无需重启 DSH。

装完默认关闭,不写任何 webserver 覆盖;开关即时生效,不改动 DSH 绑定。

口令门与本机免验

来自非本机的 TCP 连接(局域网其它设备)必须先通过口令页;插件在服务端校验口令(x-dsh-lan-key 请求头或会话 cookie),并在后台完成官方 token 与 cookie 的兑换,地址栏不出现 token。本机访问(回环或本机网卡地址,与浏览器地址栏 hostname 无关)不显示口令页,桌面端不会被自己的门禁挡住。

未设置口令时不会静默暴露:打开开关前需先设置至少 4 位口令;若处于「已开但无口令」状态,设置卡片会明确提示。

口令门是插件的全部安全边界:持有口令者可读写该 DSH 实例的全部数据;官方建议在可信内网使用,公共网络应关闭开关。

设置页与固定端口

设置 → General →「局域网访问」卡片提供:开关、口令设置/清除、绑定/防火墙/口令状态,以及可选的「局域网端口」(1024–65535)。填写并「应用端口」后,固定的是插件代理入口;留空则端口随 DSH 变化(桌面版 --port 0 时每次启动可能不同,以卡片显示为准)。

防火墙

Windows 下插件自动维护 Defender 防火墙规则 dsh-lan-tool (auto)(Domain + Private);首次开启可能出现系统「是否允许访问」弹窗。Linux 下按 firewalld → ufw → iptables 顺序尝试维护规则;无可用工具时显示「防火墙未由插件管理」。插件只在当前局域网接口地址上监听,不用 0.0.0.0;接口变化时约每 10 秒复查并更新卡片中的地址。

局域网设备上的能力边界

DSH 官方对非本机浏览器不提供部分设置作用域。资料中的对照如下:聊天、模型与工作模式、工作区与会话、历史、任务、审批、终端可用;设置、权限预设、凭据、预设管理页面仅在主机上可用;工作区目录选择使用插件自带的目录选择器。

移动端竖屏适配

手机竖屏打开局域网地址时,插件在官方界面之上注入触控适配:紧凑侧栏、不小于 44px 的触控目标、16px 输入字号(减轻 iOS 聚焦缩放)、安全区 padding;横屏或桌面视口还原官方布局。侧边栏通过左上角小鲸鱼按钮展开,支持左滑/右滑等手势;仅点击输入框才唤起输入法,Enter 换行不发送(发送走按钮)。能力与桌面端在可用范围内一致,会话状态在服务端统一,多浏览器看到相同对话过程。

安装与启用

方式 1:应用内 Plugins 页(推荐)

在 DSH 桌面版侧栏 Plugins 页输入包名安装:

dsh-lan-tool

若刚发布的版本因 pnpm「发布年龄」策略装不上,可显式指定版本,例如:

dsh-lan-tool@1.6.1

装完或更新后,完全退出桌面版再重新打开一次(插件 node 侧只在应用启动时载入一次;同一进程内重装可能导致浏览器侧与 node 侧版本不一致)。

方式 2:CLI

先退出桌面版,再执行(profile 名以你使用的为准,资料示例为 desktop):

dsh plugin --profile desktop add dsh-lan-tool

本地目录、link/file/tarball 等形式亦支持,例如:

dsh plugin --profile desktop add link:D:\DeepSeek\dsh-LAN

启用步骤

  1. 打开 DSH → 设置 → General →「局域网访问」;
  2. 先设置访问口令(至少 4 位);
  3. 再打开开关;卡片会在几秒内列出可用的 http://<本机IP>:<端口>;
  4. 局域网设备打开该地址,输入口令进入;本机打开 GUI 仍直接进入。

若重装后设置页看不到卡片,检查 profile 的 cordis.patch.yml 是否残留 dsh-lan-tool 且 disabled: true,删掉后刷新页面。升级 DSH 后若插件只在 dependencies 而不在 dsh.profile.bundles 中,需在 Plugins 页重新启用或手动补全 bundles 并重启。

典型用法

在同一 Wi-Fi 下,用手机浏览器访问卡片中的局域网 URL,输入口令后即可竖屏使用聊天、工作区切换、任务与审批等与主机同步的能力;主机上继续用桌面客户端或 127.0.0.1 访问,无需口令。需要长期 bookmark 或二维码时,可在卡片中固定「局域网端口」,避免 DSH 重启换端口后旧页面一直「重新连接中」(刷新或改用新地址亦可恢复)。

维护者 README 中还提到可与 DSH-Launcher、dsh-app 配合使用;是否采用取决于你的启动方式,插件本身不依赖额外安装脚本。

适用场景与注意

适合在家庭或办公室可信内网中,用手机或 secondary 设备查看/参与同一 DSH 会话,而不把 DSH 进程绑到通配地址。插件以当前 DSH 进程权限运行,启用前宜阅读源码与 MIT 许可证,自行评估口令强度与网络环境。

从 1.4.x 升级到 1.5.0 且 profile 仍保留旧版对 webServer 的覆盖时,DSH 0.2.1 可能无法启动;需按仓库 README「升级(1.4.x → 1.5.0)」一节清理旧补丁后再用新版本插件。

结尾

dsh-lan-tool 在不动 DSH 本机监听的前提下,用设置页可控的反向代理与口令门打开局域网 Web GUI,并补齐移动端触控细节。DSH 生态强调「一切皆插件」;SkillHub 目录为社区站点,与 DeepSeek / 幻方无官方从属关系。

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

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

Xiaoye