为 DSH Host 提供经认证的局域网、Tailnet 与公网 HTTPS 接入,支持持久主机身份、配对和二维码配置。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-network
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:baixianger/dsh-network
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH Network
从局域网、Tailnet 或已有的 HTTPS 入口连接 DeepSeek Harness。客户端完成配对后,同一主机可以保留多条访问路径。
一台主机,多种连接方式
| 路径 | 地址 | 设置方式 |
|---|---|---|
| 局域网 | 可达的本地网关地址 | 选择 LAN,扫描配对二维码。 |
| Tailnet | Tailscale 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 下载卡片;未配置时不显示。
配置
| 字段 | 默认值 | 用途 |
|---|---|---|
gatewayPort |
3081 |
认证网关端口。 |
bindHost |
0.0.0.0 |
网关监听接口;127.0.0.1 仅监听本机。 |
hostName |
系统主机名 | 主机显示名称。 |
statePath |
$DSH_HOME/network/state.json |
配对与设备状态。 |
historyChunkTrim |
true |
移除历史响应中已完成步骤的冗余流式片段。 |
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
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-remote-web-ui★ 8598
手机/PC 远程操控 dsh web 工作区:扫码配对、令牌门控通道、SSE 实时同步,提供移动端与完整桌面 GUI 两种远程形态。
zhu1090093659/dsh-web#packages/dsh-ssh★ 8598
SSH 远程运维面板:Web 终端、SFTP 传输、本地端口转发与一条命令并发集群执行,Agent 与面板共用同一份主机配置。
saya-ch/dsh-mobile★ 421
通过 Android App 或手机浏览器访问 DeepSeek Harness,支持安全局域网连接、远程访问、持久设备配对和可自定义移动界面。
ZSeven-W/dsh-ios★ 317
在对话里直接操作 iOS 模拟器或 USB 连接的 iPhone:22 个 Agent 工具用于启动、构建、按无障碍标识或 OCR 文本驱动 UI、列表行操作与 SwiftUI 预览热重载,并附带可点击拖拽的流式侧边栏面板。
liguobao/ds-harness-remote★ 307
DeepSeek Harness 多端远程访问:从手机、平板、浏览器或另一台电脑继续进行中的会话,端到端加密通道(Noise IK + 自适应 Relay/WebRTC 传输),设备授权管理;远程端仅开放 ApiProxy 能力,支持 dsh-file-viewer 只读文件预览,不提供 Shell、远程桌面或写入权限。
wenbin-wb/dsh-bridge★ 191
DeepSeek Harness 远程与移动端接入插件:提供局域网扫码直连、Cloudflare 与自建公网隧道,以及微信、QQ、飞书、Telegram 机器人交互,内置安全认证与访问控制。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。