🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

局域网手机网关 Bernardxu123/dsh-mobile-gate

DeepSeek Harness
Bernardxu12381 天前有提交已提供中文文档扫描:未发现敏感能力

让手机安全访问本机 DSH 网页并自动适配排版

33.3/100
综合分
6
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Bernardxu123/dsh-mobile-gate
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-mobile-gate(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/17 08:15:33

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    lib/lan-gate-server.cjs:40
    function forwardRequest(decisions,req,res,clientIp){var headers=cleanHeaders(req.headers,clientIp);var upstream=http.request({host:TARGET_HOST,port:TA
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 局域网手机访问DSH
  • 首次访问本机审批
  • 设备令牌与限流

局域网手机安全访问 DSH 的即插即用网关:首次访问审批、按设备发放 token、限流、注入手机端布局。

README

由 DeepSeek 最新模型翻译生成
dsh-mobile-gate · DSH 局域网手机访问网关 让局域网内的手机、平板等设备安全访问本机 DeepSeek Harness (DSH) Web UI,并自动注入手机端紧凑排版。 English: README.en.md · LLM 索引: llms.txt · Agent 指南: AGENTS.md dsh-plugin DeepSeek Harness license install 关键词 / Keywords: dsh-plugin · deepseek-harness-plugin · 局域网 · LAN · 手机访问 · mobile · 反向代理 · reverse-proxy · 远程访问 · remote-access · 审批 · approval · 网关 · gateway 📑 目录 - ✨ 特性 - 🏗️ 工作原理 - 🚀 快速开始 - ⚙️ 配置 - 🧑💻 管理 API - 🧱 手机端布局优化 - ❓ 常见问题 - ⚠️ 安全须知 - 📦 项目结构 - 🙏 致谢 ✨ 特性 | 特性 | 说明 |
展开完整文档(README 剩余 1 节)
dsh-mobile-gate · DSH 局域网手机访问网关

让局域网内的手机、平板等设备安全访问本机 DeepSeek Harness (DSH) Web UI,并自动注入手机端紧凑排版。

English: README.en.md · LLM 索引: llms.txt · Agent 指南: AGENTS.md

dsh-plugin DeepSeek Harness license install

关键词 / Keywords: dsh-plugin · deepseek-harness-plugin · 局域网 · LAN · 手机访问 · mobile · 反向代理 · reverse-proxy · 远程访问 · remote-access · 审批 · approval · 网关 · gateway

📑 目录

- ✨ 特性
- 🏗️ 工作原理
- 🚀 快速开始
- ⚙️ 配置
- 🧑💻 管理 API
- 🧱 手机端布局优化
- ❓ 常见问题
- ⚠️ 安全须知
- 📦 项目结构
- 🙏 致谢

✨ 特性

| 特性 | 说明 |
| 📱 手机端适配 | 代理 HTML 时自动注入 data-lan-device 标记 + 紧凑排版 CSS + crypto.randomUUID polyfill(HTTP 非安全上下文必需),输入区权限/模型选择器压缩为小胶囊按钮,不再重叠 |
| 🔒 首次访问审批 | 手机第一次访问显示「等待本机批准」,需在电脑上手动允许,杜绝未授权设备访问 |
| 🎟️ 设备令牌 + Cookie 绑定 | 批准后生成一次性令牌,一次批准只绑定一个浏览器,令牌无法被其他设备复用 |
| 🛡️ 每 IP 限流 | 默认每分钟 120 次请求,超限返回 429,防止滥用 |
| 🏠 本机免审批 | 回环地址与本机 LAN IP 直接放行,电脑端体验不变 |
| 🚀 零侵入主服务 | 独立子进程网关,不动 DSH 主服务——webserver 仍只监听 127.0.0.1,/api 信任栅栏不受影响;网关挂掉也不影响 DSH |
| 🧹 即插即用 / 可卸载 | dsh plugin add 安装、cordis.patch.yml 挂载、或动态插件,三种方式;移除即终止 |

🏗️ 工作原理

手机 http://192.168.31.108:3088 └─ 网关(独立 Node 进程,0.0.0.0:3088) ├─ 未批准 → 「等待本机批准」页面(含设备 IP,自动轮询) ├─ 已批准 + Cookie 令牌 → 反向代理到 DSH Web UI (127.0.0.1:3080) │ └─ HTML 注入:data-lan-device="phone" + 手机紧凑排版 CSS + randomUUID polyfill └─ 超限 → 429 限流页

电脑 http://127.0.0.1:3088/lan-gate/admin → 管理页(批准/拒绝/撤销/设置访问方式)

- 网关是独立子进程,与 DSH 主进程隔离:崩溃不影响主服务,插件停止时自动终止。
- DSH 主 webserver 仍只监听 127.0.0.1,不暴露到局域网(官方 CLI 有意禁止 --host 0.0.0.0,因为 /api 无认证层)。只有经本网关批准、持有令牌的设备才能到达 DSH。

🚀 快速开始

方式零:dsh plugin add(标准安装,官方插件生态)

本地目录安装(先在仓库所在目录执行)
dsh plugin --profile web add ./dsh-mobile-gate

本仓库声明了 dsh.bundle manifest,安装后自动激活配置层,无需手写 patch。

方式一:静态挂载(推荐,重启后常驻)

1. 把本仓库 clone 或下载到本机任意目录:
git clone https://github.com/Bernardxu123/dsh-mobile-gate.git

2. 编辑 DSH 配置补丁 ~/.dsh/profiles/web/cordis.patch.yml(没有则创建,内容是空数组 [] 时直接替换),参照 cordis.patch.yml.example 追加:
- insert:
- id: dsh-mobile-gate
Windows 绝对路径用 file:/// 形式 name: 'file:///D:/path/to/dsh-mobile-gate/lan-gate.mjs'

3. 重启 DSH。网关自动监听 0.0.0.0:3088。

方式二:动态插件(不重启 DSH,即时生效)

在 DSH 会话中把 lan-gate.mjs 的 apply 逻辑作为动态 Cordis 插件注册(Host 端),插件通过 subprocess 服务 spawn 网关进程;插件停止/卸载时网关随之终止。

使用流程

1. 电脑浏览器打开管理页:(本机也可直接打开 DSH)
2. 手机连上同一 Wi-Fi,访问管理页中列出的地址,例如 http://192.168.31.108:3088
3. 手机显示「等待本机批准」;回到电脑管理页,在「待批准设备」中为它选择访问方式:
- 手机 = 紧凑排版(推荐)
- 电脑 = 桌面布局
- 自动 = 按设备自适应
4. 点「允许」,手机刷新页面即自动领取令牌并进入 DSH Web UI。

⚙️ 配置

环境变量(修改 lib/lan-gate-server.cjs 顶部默认值,或启动前设置环境变量):

| 变量 | 默认 | 说明 |
| LAN_GATE_PORT | 3088 | 网关监听端口 |
| LAN_GATE_HOST | 0.0.0.0 | 监听地址(收紧为 127.0.0.1 可仅本机使用) |
| LAN_GATE_TARGET_PORT | 3080 | DSH Web UI 端口 |
| LAN_GATE_RATE_LIMIT | 120 | 每 IP 每分钟请求上限 |

- 端口被占用时自动递增尝试(最多 +20)。
- 设备审批记录持久化在 ~/.dsh/lan-gate-state.json(重启 DSH 后已批准设备仍在;待批准列表为内存态,重启后需重新访问触发)。

🧑💻 管理 API(仅本机可调用)

| 方法 | 路径 | 说明 |
| GET | /lan-gate/status | 状态 JSON:地址列表、待批准/已批准/已拒绝设备 |
| POST | /lan-gate/action | {action: approve\|deny\|revoke\|revoke-all\|set-kind, ip, kind} |

示例:
curl http://127.0.0.1:3088/lan-gate/status
curl -X POST http://127.0.0.1:3088/lan-gate/action \
-H 'Content-Type: application/json' \
-d '{"action":"approve","ip":"192.168.31.125","kind":"phone"}'

🧱 手机端布局优化(已内置)

代理返回的 HTML 自动注入(仅对 html[data-lan-device="phone"] 生效,电脑端完全不受影响):

- 对话字号/行距压缩,Markdown 排版适配窄屏
- 输入区底部:权限选择器与模型选择器压缩为 24px 小胶囊按钮,字号 11px,模型隐藏 effort 后缀、超长省略,彻底解决手机端两元素重叠
- 弹窗/菜单全屏适配,触摸目标加大(min-height:32px、touch-action:manipulation)
- crypto.randomUUID polyfill(HTTP 非安全上下文必需,否则前端白屏)

❓ 常见问题

Q: 手机访问提示「连接被拒绝」?
A: 确认手机与电脑在同一局域网;Windows 首次监听可能弹防火墙提示,需允许 Node.js 入站,或手动添加: New-NetFirewallRule -DisplayName 'DSH Mobile Gate 3088' -Direction Inbound -LocalPort 3088 -Protocol TCP -Action Allow -Profile Any

Q: 电脑管理页一直显示「加载中…」?
A: 刷新页面即可(旧版管理页内嵌 JS 存在引号嵌套 bug,已在 v1.0.0 修复;如仍异常请确认浏览器无缓存)。

Q: 批准后手机页面空白?
A: 多为 HTTP 非安全上下文缺少 crypto.randomUUID,网关已注入 polyfill;若仍异常请反馈浏览器型号与版本。

Q: 如何彻底移除?
A: 静态挂载:删除 cordis.patch.yml 中的 insert 条目并重启;动态插件:直接 stop/undefine 插件,网关进程随之终止。

⚠️ 安全须知

- 网关无独立认证层,仅限可信局域网使用;批准设备前请确认其身份。
- DSH Web UI 走明文 HTTP,令牌经 Cookie 传递,请勿跨不可信网络使用。
- 建议定期在管理页「全部撤销」,重新审批设备。

📦 项目结构

dsh-mobile-gate/
├── lan-gate.mjs # Cordis 插件入口(subprocess 拉起网关,管理生命周期) ├── lib/ │ └── lan-gate-server.cjs # 独立网关服务器(零依赖,单文件 ~30KB) ├── cordis.patch.yml # dsh.bundle 配置层(dsh plugin add 安装用) ├── cordis.patch.yml.example # 静态挂载示例 ├── AGENTS.md # AI agent 仓库指南 ├── llms.txt / llms-full.txt # LLM 文档索引 / 全文 ├── package.json # npm 元数据 + dsh.bundle manifest ├── README.md / README.en.md # 双语文档 └── LICENSE

🙏 致谢

借鉴了社区优秀项目:
- hchao3335-maker/dsh-lan-gate — 门禁审批、设备令牌、限流、手机适配的设计
- Leon0555/dsh-lan-access — webserver 绑定 0.0.0.0 的直连思路

本实现与其主要差异:网关为独立子进程(不修改 DSH 主服务配置、不动信任栅栏),并通过 aria-haspopup/slot 稳定选择器注入手机 CSS(抗前端版本升级)。

📄 License

MIT
预览分享卡片长什么样 ↓Bernardxu123/dsh-mobile-gate
分享 · DeepSeek Harness Hub
Bernardxu123/dsh-mobile-gate

让手机安全访问本机 DSH 网页并自动适配排版

这是你的仓库?认领条目

回到顶部