dsh-lan-gate:用移动热点让手机浏览器操控本机 DSH

前言

DeepSeek Harness(DSH)桌面版自带的 Web 界面默认只监听 loopback,并带有进程级鉴权。想在局域网里用手机看流式输出、点审批、发指令,常见做法是公网隧道、远程桌面或自己写转发——要么暴露面大,要么只能看不能完整交互。维护者 HYF00246 的 dsh-lan-gate 是 DSH 社区目录里归类为「客户端」的插件:在 Windows 移动热点网段内起一个带悬浮开关的本地代理,手机浏览器打开固定地址即可操控本机 DSH,不走公网、不装 App、不设二维码或密码。下面介绍它的定位、原理、安装与使用要点。

这是什么

dsh-lan-gate(GitHub:HYF00246/dsh-lan-gate,npm 包名 dsh-lan-gate,当前版本 0.1.0,MIT 许可)跑在 DSH 进程内,通过 Cordis patch 注入 DSH 配置树。它解决的是:手机连上电脑开的移动热点后,用浏览器访问 http://192.168.137.1:18080,获得与桌面 Web GUI 同等的操控能力(流式输出、审批、提问、发指令、切会话等),而不是只读镜像。

插件 README 标明状态为 P1 已完成并在真机验证(手机经热点访问、HTTP + WebSocket 已实测通过)。DSH 引擎要求为 ^0.2.1-rc.5;运行环境为 Windows 11(移动热点基于 Wi-Fi Direct),Node ≥ 22 可由 DSH 自带运行时满足。

工作原理(为何不能裸转发)

DSH Web 服务监听 127.0.0.1:54362(README 示例端口),鉴权使用每进程随机 token 签名的 Cookie。简单端口转发会返回 401 dsh web authentication required。插件在 DSH 进程内通过官方 API 代持合法 Cookie,改写 Host / Origin,反向代理 HTTP 与 WebSocket(/api/remote.mux 双向透传,不设空闲超时以免打断流式输出);没有绕过或关闭 DSH 校验。监听只绑定热点网卡地址 192.168.137.1:18080,不是 0.0.0.0;代理层对路径做白名单,/connect 被显式拒绝。

手机浏览器 ──HTTP / WebSocket──▶ 192.168.137.1:18080
                                      │  插件代理 + Cookie 代持
                                      ▼
                                127.0.0.1:54362
                                DSH 自带 web server

Windows ICS 默认热点参数(README 实测稳定):电脑侧 / 手机网关 192.168.137.1,子网 192.168.137.0/24,手机地址为 192.168.137.x。电脑可保持原有 Wi-Fi 同时开热点,两者互不影响。

核心功能

  • 免装 App:手机浏览器直接访问,可「添加到主屏幕」。
  • 完整操控:与桌面 Web GUI 同级交互,不是只读。
  • 用完即关:DSH 界面右下角「局域网访问」悬浮开关;关闭后立即释放端口,局域网内无法再连入。
  • 不暴露公网:仅热点网卡;不提供隧道、域名、HTTPS 公共证书、多用户账号、登录页、二维码或密码(见安全说明)。
  • 随 DSH 启停:插件加载即注册,DSH 退出即释放端口。

开关交互(README):单击切换;长按约 450ms 可拖动位置(位置记忆,开关状态每次启动默认为关)。窄屏(宽度小于 820px)自动隐藏开关,避免挡住发送/确认按钮,需在电脑上点开。失败时显示红色「失败」,悬停可见原因(如「热点未开启」)。

安装与启用

1. 放行防火墙(管理员 PowerShell,只需一次)

手机访问若超时(如 Chrome ERR_TIMED_OUT),需对热点网段放行 TCP 18080:

New-NetFirewallRule -DisplayName "DSH LAN gate" -Direction Inbound -Protocol TCP `
  -LocalPort 18080 -RemoteAddress 192.168.137.0/24 -Action Allow

若曾在 DSH 首次联网弹窗中拒绝,Windows 可能为 DeepSeek Harness.exe 添加入站 Block 规则,优先级高于端口放行,需先删除 Block 规则(README 提供基于进程路径的 PowerShell 片段)。卸载插件时可执行:

Remove-NetFirewallRule -DisplayName "DSH LAN gate"

2. 安装插件

完全退出 DeepSeek Harness(托盘图标需选「退出」,非仅关窗口),再执行:

从 GitHub 安装(README 原文):

dsh plugin --profile desktop add github:HYF00246/dsh-lan-gate

本地开发可用 DSH 安装目录自带 CLI:

<DSH 安装目录>\resources\runtime\cli\bin\dsh.cmd plugin --profile desktop add link:<本仓库绝对路径>

安装命令会把插件登记到 profile 的 dsh.profile.bundles。

3. 启动 DSH

重启 DSH 后,界面右下角出现「局域网访问」悬浮开关,默认关闭。

典型用法

  1. 在电脑上开启「移动热点」,手机连上该热点(提示「此 WLAN 无法访问互联网」时选保持连接)。
  2. 在 DSH 右下角点开开关,变为绿色「开」。
  3. 手机浏览器打开 http://192.168.137.1:18080。
  4. 用完后在电脑上再点一次开关关闭。

关闭开关会立刻断开手机连接;已打开的页面仍留在浏览器中,DSH 客户端进入断线重连,手机上输入可暂存本地队列;重新打开开关后会自动重连并一次性发送队列内容。页面脚本约每 3 秒探测状态,连续失败约 6 秒会提示「局域网访问已关闭」,可选退出页面(丢弃本地排队内容)或继续等待(30 秒内不再打扰,重开开关则恢复)。本机 127.0.0.1 访问不经代理,不受上述弹窗影响。

适用场景与注意

适合:你本人控制 Windows 11 电脑与移动热点下的设备,临时用手机审批、看流式输出、发指令,且希望用完关闭端口、不长期监听局域网。

不适合(插件 README「不做什么」):公网访问、多用户体系、原生 App、自带登录/密码。

安全:同一热点下任意设备打开地址即可操控这台电脑上的 DSH(含执行命令、读写文件,权限与当前 DSH 进程一致)。插件按设计不设登录;只在你能控制热点内设备时使用,用完关闭开关。安装前请阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全策略。

排障摘要:超时 → 防火墙或热点未开,或 DSH 被应用级 Block;「连接被拒绝」→ 开关未开;按钮显示「热点未开启」→ 先开热点再点开关;按钮不出现 → 插件未装或未重启 DSH;iPhone 自动切回蜂窝 → 关闭「无线局域网助理」或调整热点 Internet 共享设置。完整表格见仓库 README。

DSH 生态理念是「一切皆插件」;社区目录站点 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系,本文仅介绍社区插件能力。

结尾

经过上面的步骤,你可以在 Windows 移动热点网段内用手机浏览器完整操控本机 DSH,并通过右下角开关控制监听生命周期。详情与更新以仓库为准:目录页 https://www.skillhub.cn/plugins/HYF00246/dsh-lan-gate ,GitHub https://github.com/HYF00246/dsh-lan-gate 。

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

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

小夜