runfali/dsh-login-gateway ↗★ 2
dsh-login-gateway
DeepSeek Harness 登录门卫插件:为 dsh Web UI 提供外部访问入口 + 用户名密码登录验证
AI Analysis
核心用途是为 DSH Web UI 提供安全的外部访问入口,支持用户名密码登录、IP 失败锁定及反向代理。适合需要将本地 DSH 服务暴露到公网并进行安全防护的用户。
Install
This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗
README
Read the full README ↗配置项
所有配置都有默认值,新装默认配置即可工作。完整配置表如下:
| 配置项 | 默认值 | 说明 |
|---|---|---|
listenHost | 0.0.0.0 | 门卫监听地址,暴露给外部 |
listenPort | 3081 | 门卫监听端口 |
targetHost | 127.0.0.1 | dsh Web UI 监听地址 |
targetPort | 3080 | dsh Web UI 监听端口 |
sessionTtlHours | 24 | 登录会话有效期(小时) |
maxLoginAttempts | 5 | 同一 IP 连续失败多少次后锁定 |
lockMinutes | 5 | 锁定持续分钟数 |
setupMaxAttempts | 5 | /setup 初始化时,同一 IP 连续失败多少次后锁定 |
setupLockMinutes | 30 | /setup 初始化锁定持续分钟数 |
proxyTimeoutMs | 60000 | 反代上游响应头等待超时(毫秒),超时返回 504;WS 握手超时取与 15s 的较小值 |
streamIdleTimeoutMs | 1800000 | 反代响应流空闲超时(毫秒,默认 30 分钟) |
maxConnections | 512 | HTTP 服务最大并发连接数,超出后新连接被丢弃 |
userStorePath | ~/.dsh-login-gateway/users.json | 用户数据文件路径(可自定义) |
使用说明
- 登录:打开
http://:3081/,输入用户名密码。成功后会种下会话 Cookie(dsh_gw_session,HttpOnly+SameSite=Strict),之后访问全部走反代,包括 WebSocket。 - 登出:
POST /logout。页面无入口时可直接调用:curl -X POST http://:3081/logout。 - 未登录访问:
/返回登录页;其余路径返回401JSON。 - 登录限速:同一 IP 连续输错
maxLoginAttempts次会被锁定lockMinutes分钟。 - 账号锁定:同一用户名跨 IP 累计失败
maxLoginAttempts次也会被锁定,可防代理池分布式爆破。 - 初始化限速:
/setup同样按 IP 限速,令牌错误、用户名空、密码过短、两次密码不一致都计失败。