🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

hchao3335-maker/dsh-lan-gate

DeepSeek Harnessspec-screened扫描:低风险在 GitHub 查看 ↗
需源码安装

一个DSH内网访问插件 局域网设备安全访问本机 DSH…

暂不能直接安装(需源码编译或环境不满足):仓库缺少 package.json,无法用 dsh 插件安装命令安装。 · 最近上游提交 2026/8/14 · 已提供中文文档

一个DSH内网访问插件 局域网设备安全访问本机 DSH 的即插即用网关:本机审批、设备令牌、限流、手机适配,单文件零依赖。

综合分
34.4
GitHub 分
34.4
用户评分
—
★ Stars
13
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add hchao3335-maker/dsh-lan-gate
仓库缺少 package.json,无法用 dsh 插件安装命令安装,改用 GitHub 源安装
信任档位:已验证本站已于 4 天前真实安装成功(L4 · 真实安装)
是什么
dsh 原生插件 · other
装得上吗
本站已真实安装成功(L4 · 真实安装,非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
更新放缓:最近一次提交在 42 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/22
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

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

✗npm 包dsh-lan-gate(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

仓库缺少 package.json,无法用 dsh 插件安装命令安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/21 23:26:23

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
DSH 内网访问网关(dsh-lan-gate)

让同一局域网内的手机、平板、其他电脑通过网页访问本机 DeepSeek Harness(DSH),并且首次访问需要本机批准。

一个自包含的单文件插件(lan-gate.mjs),进程内反向代理 + 首页注入,无外部依赖、无子进程。

功能特性

- 内网访问:插件在本机启动反向代理 0.0.0.0:3088 → 127.0.0.1:3080,局域网内设备打开 http://:3088 即可使用 DSH 网页
- 首次访问批准:新设备第一次访问会看到「等待本机批准」页面,本机在 DSH 的 设置 → 内网访问 面板中允许后,该设备自动进入 DSH;拒绝则看到拒绝页
- 每台设备指定访问方式:
- 自动 —— 按屏幕宽度适配
- 手机 —— 强制紧凑手机排版(更小字号、更紧间距、全宽消息区、防 iOS 聚焦放大)
- 电脑 —— 即使窗口很窄也保持桌面排版
- 手机端完整适配:等待/拒绝门禁页移动端设计、设置面板全屏化、模型选择与上下文弹层防遮挡、crypto.randomUUID polyfill(内网 HTTP 非安全上下文兼容)
- 本机管理面板:注入到 DSH 设置界面(设置 → 内网访问),支持状态查看、启停、批准/拒绝、切换访问方式、撤销、复制访问地址
- 状态持久化:批准记录保存在 $DSH_HOME/lan-gate-state.json,重启 DSH 后依然有效
- 安全边界:管理接口(/lan-gate/status、/lan-gate/action)仅放行本机请求(校验 x-forwarded-for);代理转发时重写 Host 为回环地址并通过 DSH 的信任栅栏;撤销设备后其已建立的连接会在数秒内被强制断开
- 设备令牌 + Cookie 绑定:每次批准会生成随机令牌(32 位十六进制),设备通过一次性认领链接换取 lg_token Cookie(HttpOnly + SameSite),后续请求必须携带匹配的 Cookie 才能转发;令牌只发放给第一个认领的浏览器,其他浏览器(或 Cookie 被清掉的同设备)会看到「已绑定到其他浏览器」页,需撤销后重新批准
- 请求限流:每个来源 IP 每分钟最多 120 个请求(滑动窗口),超限返回 429(含 Retry-After),防止内网扫描与暴力尝试
- 监听地址可配:默认 0.0.0.0(全局域网可达);放在前置反向代理/隧道后面时可收紧为 127.0.0.1,只让本机代理接入

架构

局域网设备 ──HTTP──▶ 0.0.0.0:3088(本插件进程内代理)
│ 未批准 → 门禁页 / 拒绝页
│ 已批准但无有效 Cookie → 一次性认领链接(换取 lg_token Cookie)
│ 已批准且 Cookie 匹配 → 转发(Host 重写 + WebSocket 升级转发)
▼
127.0.0.1:3080(DSH Web 服务)

插件同时通过 webServer.tapIndex 向首页注入:crypto.randomUUID polyfill、设备排版 CSS、以及设置界面内的管理面板(原生 JS 实现,仅本机可见)。

安装(跟着做,三步完成)

第 1 步:把插件文件放到 DSH 数据目录

DSH 的数据目录(DSH_HOME)里存放着你的配置,插件就放这里。先确认它在哪:

Windows(PowerShell),复制执行:

echo $env:DSH_HOME
如果上面输出为空,则默认在:C:\Users\你的用户名\.dsh

macOS / Linux(终端),复制执行:

echo "${DSH_HOME:-$HOME/.dsh}"

确认目录后,把插件放进去:

Windows(PowerShell)(把下面第一行换成你实际的 DSH 数据目录):

$dsh = "D:\deepseek-harness-master\.dsh"
New-Item -ItemType Directory -Force -Path "$dsh\lan-gate" | Out-Null
Copy-Item ".\lan-gate.mjs" "$dsh\lan-gate\lan-gate.mjs" -Force

macOS / Linux:

DSH_DIR="${DSH_HOME:-$HOME/.dsh}"
mkdir -p "$DSH_DIR/lan-gate"
cp ./lan-gate.mjs "$DSH_DIR/lan-gate/lan-gate.mjs"

执行完,你应该能看到这个文件:\lan-gate\lan-gate.mjs

第 2 步:注册插件(改一行配置文件)

打开文件:\profiles\web\cordis.patch.yml

- 如果文件不存在,就新建一个;
- 如果文件里是 [](空配置),把 [] 整个替换成下面内容;
- 如果文件里已经有内容,把下面这段追加到末尾。

- insert:
- id: lan-gate
name: 'file:///D:/deepseek-harness-master/.dsh/lan-gate/lan-gate.mjs'

把 name: 里的路径换成你第 1 步实际放置的完整路径,规则如下:

| 系统 | 写法 | 例子 |
|---|---|---|
| Windows | file:///盘符:/完整路径 | file:///D:/deepseek-harness-master/.dsh/lan-gate/lan-gate.mjs |
| macOS / Linux | file:///完整路径 | file:///home/me/.dsh/lan-gate/lan-gate.mjs |
⚠️ 最容易踩的坑(Windows):必须写 file:///D:/...,不能写 D:/...。DSH 的插件加载器不会自动把 Windows 路径转成 URL,裸写会报错 ERR_UNSUPPORTED_ESM_URL_SCHEME。

改完保存即可,不用改任何源码。

第 3 步:重启 DSH 并验证

1. 完全退出正在运行的 DSH(终端里 Ctrl+C 结束),再重新启动:

pnpm dsh web        # 从源码运行时
或你平时启动 DSH 的命令

2. 验证插件已加载(二选一):
- 浏览器打开 http://127.0.0.1:3080/lan-gate/status,看到类似
{"state":"running","port":3088,...} 就成功了;
- 或者打开 DSH 网页 → 左下角齿轮进入设置,左侧导航出现「🌐 内网访问」。

3. 之后的日常使用见下方「使用」。

常见问题(按症状查)

| 现象 | 原因与解决 |
|---|---|
| 启动时报 ERR_UNSUPPORTED_ESM_URL_SCHEME | 第 2 步的路径没写成 file:/// 形式,改过来再重启 |
| /lan-gate/status 打不开或 404 | 插件没加载成功,检查第 2 步配置,重启后看启动日志 |
| 面板显示「出错:EADDRINUSE」 | 3088 端口被占用:打开 lan-gate.mjs,把顶部 PROXY_PORT = 3088 改成其它端口(如 3089),重启 DSH |
| 手机打不开 http://:3088 | ① 确认手机和电脑在同一网络;② 系统防火墙放行:Windows 管理员 PowerShell 执行 netsh advfirewall firewall add rule name="DSH LAN" dir=in action=allow protocol=TCP localport=3088 |
| 设置里看不到「内网访问」 | 面板只在本机显示,内网设备看不到是正常的;本机看不到说明插件未加载(回第 3 步验证) |
| 重启后手机又要重新批准 | 批准记录在 \lan-gate-state.json,文件被删除或 DSH_HOME 变了才会丢;从旧版(临时插件)升级的用户需重新批准一次 |
| 手机显示「已绑定到其他浏览器」 | 该设备的令牌已发放给另一个浏览器(例如换浏览器、清了 Cookie、或同 IP 的别的设备抢先认领了)。在本机面板撤销该设备再重新批准,手机会自动重新认领 |
| 页面出现 429(请求过于频繁) | 该 IP 超过每分钟 120 个请求上限,等一分钟自动恢复;正常使用不会触发(网页应用远比这个频率低) |
| 用反向代理/隧道转发到本插件时全部被拒 | 前置代理过来的请求源 IP 不是本机局域网地址,需要在前置代理上配置登录认证后放行;然后把 LISTEN_HOST 改为 127.0.0.1 只让本机代理接入 |

使用

1. 打开 DSH 设置(左下角齿轮)→ 内网访问:面板显示运行状态与全部访问地址(点击可复制)
2. 把地址发给手机(微信/QQ 发给自己即可),手机浏览器打开
3. 手机显示「等待本机批准」,本机面板的待批准设备里选择 自动/手机/电脑 → 点允许,手机自动进入 DSH
4. 随时在面板中切换每台设备的访问方式、撤销、或停止服务

配置

插件顶部常量可按需修改(改完重启 DSH),也可以用环境变量覆盖(推荐,改文件升级时不易丢):

| 常量 | 默认值 | 环境变量 | 说明 |
|---|---|---|---|
| PROXY_PORT | 3088 | LAN_GATE_PORT | 内网访问端口 |
| LISTEN_HOST | 0.0.0.0 | LAN_GATE_HOST | 监听地址;放在前置代理/隧道后建议改为 127.0.0.1 |
| RATE_LIMIT_PER_MIN | 120 | — | 每 IP 每分钟请求上限,超限返回 429 |
| TARGET_HOST | 127.0.0.1 | — | DSH 服务地址 |
| TARGET_PORT | 3080 | — | DSH 服务端口 |

卸载

删除 cordis.patch.yml 中的 lan-gate 行(或整段 - insert:),重启 DSH。批准记录如需清除,删除 $DSH_HOME/lan-gate-state.json。

安全提示

- 本插件是内网转发:传输没有加密,请只在可信的局域网内使用,不要把 3088 端口直接暴露到公网(端口映射到公网 = 裸奔)
- 要上外网(WAN)必须先加 HTTPS + 登录认证,推荐方案(二选一):
- Cloudflare Tunnel + Cloudflare Access(免费,不需要公网 IP):Access 的登录与 MFA 挡在所有流量前面,再到本插件
- Caddy(自动 HTTPS)+ Authelia / basic_auth:有公网 IP/域名时的自托管方案
- 用了前置代理后,把 LISTEN_HOST 改成 127.0.0.1(或设 LAN_GATE_HOST=127.0.0.1),只让本机代理接入
- 本插件的自带防线(v1.1):每 IP 限流、设备令牌 + Cookie 绑定、管理接口仅本机、撤销即断开
- 已知限制(请了解):令牌绑定按 IP + Cookie 实现,同一个 IP 后面的多个设备(例如同一 NAT / 同一路由后的多台手机)共享一次批准;极端情况下同 IP 的攻击者理论上可在认领瞬间抢先换取 Cookie。真正的多设备/多用户隔离,请用上面推荐的「前置代理 + 登录认证」方案
- 撤销 = 立即断开对应设备(含已建立的连接),且撤销后重新批准会签发全新令牌,旧 Cookie 立即失效

兼容性

- DeepSeek Harness(run-from-source 的 web profile)
- Node ≥ 18(仅使用内置模块)
- 现代浏览器(Chrome / Safari / Firefox / 微信内置浏览器)
插件有问题欢迎联系我
QQ:3405822503
(请备注好)

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群