前言¶
DeepSeek Harness (DSH) 的 Web 界面默认绑定在本地回环地址。在自托管或 Homelab 场景中,开发者通常需要从局域网内的其他设备访问该服务。然而,官方 CLI 不支持直接指定 --host 0.0.0.0,这导致在非回环地址暴露服务存在安全风险。dsh-lan-gate 通过插件层配置,允许监听所有接口,并强制实施密码和 CIDR 白名单,解决这一痛点。
插件介绍¶
dsh-lan-gate 是一个 DeepSeek Harness (DSH) 插件,定位为 admin-security 类别。它由用户 maxesisnclaw 维护。核心功能是为 DSH Web 界面和 /api 接口提供密码保护,并结合 CIDR 白名单机制,确保只有内网特定网段可以访问服务。
核心功能¶
- 全接口监听:通过 bundle patch 修改
webserver.host配置项为0.0.0.0,从而在所有网络接口上监听服务。 - 密码保护:初始状态无密码,必须先在回环地址设置密码。只有通过验证后,UI 和 API 才会对非回环客户端可见。
- CIDR 白名单:默认允许以下 IPv4 内网网段:
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。超出此范围的请求将被拒绝。 - 拒绝代理头:插件会拦截并拒绝包含
X-Forwarded-*、Forwarded或Via头的请求。 - 回环绕过:为了便于调试和恢复,本地回环地址访问无需密码即可通过。
- 安全存储:密码使用 scrypt 验证器存储,会话令牌为随机 32 字节值,仅将 SHA-256 哈希值保留在内存中。
- 配置文件:策略文件位于
$DSH_HOME/lan-gate.json,文件权限默认设置为0600。
安装与启用¶
使用 DSH 官方插件源安装:
dsh plugin --profile web add dsh-lan-gate
安装完成后,插件会自动应用配置补丁并启动。
配置与使用¶
- 初始化密码:首先在本地访问初始化页面设置密码。地址为
http://127.0.0.1:3080/dsh-lan-full/login。此步骤仅允许通过回环地址访问。 - 局域网访问:配置完成后,局域网内的客户端尝试访问 DSH Web 界面时,会自动重定向至登录页。
- 策略管理:在 DSH 的设置界面中,进入 LAN 访问 选项,可编辑 CIDR 白名单、代理头拒绝策略以及修改密码。
注意事项与适用场景¶
该插件以当前 DSH 进程的权限运行。在安装前,建议检查源码与许可证(MIT)。
- 非 TLS 终止器:插件不提供 TLS 加密,在明文 HTTP 下,局域网内的观察者仍可能嗅探到密码和 Cookie。切勿将其部署在公共互联网。
- 反向代理限制:不要将此插件部署在添加了转发头(Forwarding Headers)的反向代理后面,插件设计上会拒绝此类请求。
总结¶
dsh-lan-gate 提供了在 Homelab 环境下安全暴露 DSH Web 服务的基础能力。更多细节请参考 GitHub 仓库 或 DSH 社区目录。