dsh-net-access: Controlling DeepSeek Harness Web Access Scope

前言

DeepSeek Harness (DSH) 提供了 Web GUI 用于管理智能体任务。默认情况下,Web 服务器的访问控制通常较为严格或需要修改底层配置。dsh-net-access 插件通过设置页提供了一种集中式配置方案,支持将访问范围限定为本机、Tailscale 网段、局域网,或者直接关闭。

核心功能

该插件通过一套配置项控制 Web GUI 的可达性,核心能力包括:

  • 四种访问模式:支持“仅本机”、“仅 Tailscale”、“所有本地网络”和“关闭”四种状态。
  • 热切换机制:除“关闭”模式外,其他三种模式支持在设置页中直接切换,无需重启进程。
  • 信任围栏:通过 Host 头验证来拦截未授权请求,在应用层执行访问控制。
  • 自动探测:自动探测 Tailscale 网卡名称并解析 tailnet 地址,无需手动填写 IP。
  • 扩展授权:支持通过 extraTrustedHosts 添加额外的授权 host[:port]。

安装与启用

插件安装需要通过 DSH 的插件管理器添加。

  1. 执行安装命令:
    dsh plugin --profile web add dsh-net-access
  1. 安装后必须重启 GUI 以加载新组合包:
    dsh --profile web
启动时会打印可访问的 URL,例如 `dsh web: http://127.0.0.1:3080/?token=...`。

配置与模式说明

配置位于 DSH 的设置 → 远程访问中,也可以写入 cordis.patch.yml 的 config 块。

字段 默认值 说明
mode local local、tailscale、all 或 off
address "" 固定 tailnet 地址;留空则自动探测
extraTrustedHosts [] 额外接受的 host[:port] 授权

模式差异与工作原理

DSH 在启动时只绑定一次 HTTP 监听端口,因此改变绑定地址(如关闭模式)必须重启。其余三种模式保持套接字在所有网卡上监听,通过应用层的“信任围栏”来过滤请求。

1. 仅本机(local)

默认模式。端口对所有网卡开放,但任何非回环地址的请求都会被拦截(返回 403)。
* 特点:局域网端口扫描可见,TCP 握手可完成,但无法通过认证。
* 注意:文档中关于该模式“能热切换”与“已知限制中需重启”存在描述矛盾,请以设置页实际生效为准。

2. 仅 Tailscale(tailscale)

仅允许来自 Tailscale tailnet 地址的请求。
* 特点:自动探测 tailnet 地址。如果探测失败,插件会回退到“关闭”模式并记录原因,不会静默放宽为局域网访问。

3. 所有本地网络(all)

允许局域网内所有 IPv4 设备访问。
* 特点:地址按请求采样,但绑定地址不会随网络切换而移动。

4. 关闭(off)

将监听地址收回为回环(127.0.0.1)。
* 特点:端口对局域网不可见,需要重启生效。

适用场景与注意事项

  • 适用场景:需要在手机上通过 Tailscale 访问 GUI、开放给局域网内其他设备、或希望完全关闭远程访问。
  • 限制:插件仅支持 IPv4,不探测 IPv6 网段。GUI 本身使用 HTTP,不提供 TLS 加密,流量依赖 Tailscale 或局域网本身的安全机制。
  • 依赖:需要 Node.js 引擎版本 ^22.19.0 || >=24.0.0。

总结

dsh-net-access 通过应用层的信任围栏机制,解决了 DSH 默认配置在灵活性和安全性之间的平衡问题。它允许在不重启进程的情况下动态调整访问策略(除关闭模式外),适合对 Web 访问范围有精细控制需求的 DSH 用户。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye