myfire2014/dsh-admin-gateway ↗★ 0
dsh-admin-gateway
DeepSeek Harness 管理员验证网关插件 — 自起独立 HTTP 网关,密码登录 + 反向代理 + WebSocket/SSE 透传,防止未授权访问
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:myfire2014/dsh-admin-gateway说明文档
阅读完整 README ↗dsh-admin-gateway
DeepSeek Harness (dsh) 管理员验证网关插件。
核心优势
- 零成本公网暴露:只需一个绑定在 Cloudflare 的域名,无需公网 IP、无需开防火墙端口、无需购买服务器,一条 Cloudflare Tunnel 即可让 dsh web 安全上线公网(HTTPS / DDoS 防护全由 Cloudflare 提供)
- 开箱即用的安全防线:管理员密码登录 + 会话 Cookie + 防暴力破解限速 + 防 DNS rebinding,未认证流量永远到不了 dsh 本体
- 即插即用:npm 安装 → 配置密码 → 绑定域名,三步完成,无需改 dsh 一行代码
它解决什么问题
dsh 的 HTTP 服务器(ctx.webServer)没有请求级中间件钩子,host 默认绑定 127.0.0.1,无 TLS / 认证 / origin 策略。本插件自起一个独立的 node:http 网关,先做管理员验证,通过后反向代理到 dsh web 本体,并正确改写 Host / Origin / Referer 头以满足 dsh Connection 信任检查(isTrustedApiRequest)。
配合 Cloudflare Tunnel 使用时,隧道只把流量送到网关端口,未认证请求永远到不了 dsh 本体。
功能特性
- 管理员密码登录(scrypt 哈希 +
timingSafeEqual时序安全比较) - HttpOnly + SameSite=Strict 会话 Cookie,服务端内存会话,TTL 可配
- 登录失败按 IP 限速锁定(防暴力破解)
- Host 头白名单校验(防 DNS rebinding)
- 请求体大小上限(防超大报文攻击)
- 可选 per-IP 请求速率限制
- 安全响应头(X-Frame-Options / X-Content-Type-Options / Referrer-Policy)
/api未认证返回 401 JSON;浏览器页面未认证 302 跳转登录页- 反向代理时改写 Host / Origin / Referer,满足 dsh 信任检查
- WebSocket / SSE 升级代理(dsh web UI 依赖事件流)
安装
npm install dsh-admin-gateway
作为 dsh 插件(bundle)安装到 profile:
# 在插件目录的父目录执行(不要在插件目录内写 ./dsh-admin-gateway)
cd /path/to/parent && dsh plugin --profile web add ./dsh-admin-gateway
# 或通过 npm 安装包名引用
dsh plugin --profile web add dsh-admin-gateway
确认插件已生效:
dsh --profile web --dump-config | grep -A3 'admin-gateway'
# 看到 "# == dsh-admin-gateway" 层 = 成功
配置
插件通过 cordis.patch.yml(或 profile 的配置层)注入,示例:
- insert:
- id: admin-gateway
name: dsh-admin-gateway
config:
port: 3081
upstream: 'http://127.0.0.1:3080'
allowedHosts:
- dsh.example.com
sessionTtlMs: 43200000
maxBodyBytes: 5242880
配置项
| 字段 | 默认值 | 说明 |
|---|---|---|
port | 3081 | 网关监听端口 |
host | 127.0.0.1 | 网关监听地址,只应绑定回环(由 cloudflared 从本机连入) |