baixianger/dsh-network

baixianger/dsh-network

为 DSH Host 提供经认证的局域网、Tailnet 与公网 HTTPS 接入,支持持久主机身份、配对和二维码配置。

远程与移动端
DSH Network

DSH Network

English · 简体中文

从局域网、Tailnet 或已有的 HTTPS 入口连接 DeepSeek Harness。客户端完成配对后,同一主机可以保留多条访问路径。

一台主机,多种连接方式

路径地址设置方式
局域网可达的本地网关地址选择 LAN,扫描配对二维码。
TailnetTailscale Serve MagicDNS HTTPS 地址在已登录的主机上选择 Tailscale。
自定义 HTTPS已运行的反向代理地址创建二维码时提供该地址。

DSH 保持监听 loopback;插件在前面提供认证网关,使用短时配对票据、轮换的设备凭证和持久主机 ID。

快速开始

dsh plugin --profile web add dsh-network@latest
dsh web

打开 设置 → Network 查看主机并生成配对二维码,也可以在另一个终端运行设置向导:

dsh plugin --profile web exec dsh-network setup

选择 LAN、Tailscale 或 自定义地址,再用兼容客户端扫码。未指定模式时,向导会询问,不会自行选择。

默认网关端口是 3081。底层 DSH Web 服务仍在其配置端口监听 loopback。

选择连接路径

# 局域网:两台设备需要互相可达
dsh plugin --profile web exec dsh-network setup lan

# Tailnet:需要先安装并登录 Tailscale
dsh plugin --profile web exec dsh-network setup tailscale

# 已有、可正常工作的 HTTPS 网关
dsh plugin --profile web exec dsh-network setup custom --url https://dsh.example.com

LAN 自动探测选错网卡时,可以用 --url http://HOST:3081 指定地址。Tailscale 设置会配置 Serve 转发到认证网关。公网自定义路径需要已有可信 HTTPS 和 HTTP/WebSocket 转发;本插件不配置 DNS、证书、防火墙或反向代理。

清晰的设置状态

Network 页面把主机身份和设备配对分开,提供字段标签、等待状态和就地错误提示,适配中英文与浅深色主题。离开设置页会取消仍在等待的请求。

配置有效的 HTTPS iosAppDownloadURL 后,可以显示可关闭的 App 下载卡片;未配置时不显示。

配置

字段默认值用途
gatewayPort3081认证网关端口。
bindHost0.0.0.0网关监听接口;127.0.0.1 仅监听本机。
hostName系统主机名主机显示名称。
statePath$DSH_HOME/network/state.json配对与设备状态。
historyChunkTrimtrue移除历史响应中已完成步骤的冗余流式片段。
historyTrustedHosts[]历史路由允许的额外直连 Web Host 值。
iosAppDownloadURL未设置可选下载卡片的 App Store 或 TestFlight HTTPS 地址。

DSH_HOME 默认是 ~/.dsh。历史裁剪保留已显示消息、首 token 时间和当前未完成输出,减少重复增量,具体收益取决于会话;这些路由继续执行宿主的 origin 与跨站检查。

配对与凭证

配对票据一次有效,五分钟后过期。配对成功后,客户端获得刷新凭证和一小时有效的访问 token,刷新时两者一起轮换。主机仅保存哈希,不保存原始凭证;配对链接按需生成,不主动广播。

局域网 HTTP 依赖可信本地网络。公网应通过 HTTPS 暴露认证网关,不要暴露底层 DSH Web 端口。详见公网部署边界。

常见问题

现象检查方向
LAN 地址打不开设备可达性、私有接口防火墙规则和选中的 IP。
Tailscale 设置失败tailscale status 和已有登录状态。
公网路径失败可信 TLS,以及 HTTP/WebSocket 反向代理转发。
二维码过期重新生成一次性配对票据。

设置页的完整设备列表与撤销控制仍属后续工作;当前面板提供主机状态、已配对设备数量和配对入口。

开发与反馈

npm ci
npm run check

提交问题 · 版本记录 · MIT 许可证