用 Tailscale 把桌面端安全开放到手机浏览器
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/13 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wuuuuu123-32/dsh-remote-proxy该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · desktop
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 19 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
- 发起网络请求check.mjs:39
const req = https.request({ host: AUTHORITY, port: 443, path: '/', method: 'GET', headers, servername: AUTHORITY }, (res) => { - 发起网络请求check.mjs:56
const req = http.request({ host: '127.0.0.1', port: LISTEN_PORT, path: '/', method: 'GET', headers }, (res) => { - 发起网络请求check.mjs:73
const req = https.request( - 发起网络请求check.mjs:90
const req = https.request( - 执行外部命令来自配置/变量config.mjs:48
return execFileSync(exe, args, { encoding: 'utf8', timeout, windowsHide: true }); - 执行外部命令来自配置/变量config.mjs:167
return execFileSync(file, args, { encoding: 'utf8', windowsHide: true, timeout, maxBuffer: 8 * 1024 * 1024 }); - 发起网络请求config.mjs:235
const res = await fetch('http://127.0.0.1:' + port + '/', { signal: controller.signal, redirect: 'manual' }); - 发起网络请求proxy.mjs:204
const upstream = http.request({
扫描于 2026/11/1(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 手机浏览器HTTPS访问
- 支持PWA免token
把 DSH 桌面应用通过 Tailscale 暴露到手机——HTTPS、PWA,手机上不用 token
README
由 DeepSeek 最新模型翻译生成dsh-remote-proxy
用 Tailscale 把电脑上的 DSH 桌面端 安全地开放给手机 —— 免费、HTTPS、可装 PWA、手机不用带 token。
DSH(DeepSeek Harness)桌面端内置的 Web 服务只监听 127.0.0.1:19387,手机够不着。
Tailscale 能把请求从外面送进来,但还有两个拦路虎,这个小代理一次解决:
1. 403:DSH 的信任栅栏 —— 它检查 Host 头,默认只放行 127.0.0.1 和局域网 IP,xxx.ts.net 会被拒。
2. 无限 303:跨站导航丢掉 cookie —— 从微信/短信点开链接属于跨站导航,浏览器不会带上 SameSite=Strict 的登录 cookie,于是来回跳转直到 ERR_TOO_MANY_REDIRECTS。
展开完整文档(README 剩余 1 节)
dsh-remote-proxy 用 Tailscale 把电脑上的 DSH 桌面端 安全地开放给手机 —— 免费、HTTPS、可装 PWA、手机不用带 token。 DSH(DeepSeek Harness)桌面端内置的 Web 服务只监听 127.0.0.1:19387,手机够不着。 Tailscale 能把请求从外面送进来,但还有两个拦路虎,这个小代理一次解决: 1. 403:DSH 的信任栅栏 —— 它检查 Host 头,默认只放行 127.0.0.1 和局域网 IP,xxx.ts.net 会被拒。 2. 无限 303:跨站导航丢掉 cookie —— 从微信/短信点开链接属于跨站导航,浏览器不会带上 SameSite=Strict 的登录 cookie,于是来回跳转直到 ERR_TOO_MANY_REDIRECTS。 原理 手机浏览器 └─ https://<机器名>.<tailnet>.ts.net ← Tailscale 自动签发 TLS 证书 │ (加密隧道,只在你自己登录的设备之间) ▼ 电脑上的 Tailscale 客户端 └─ tailscale serve → http://127.0.0.1:3080 │ ▼ proxy.mjs(本仓库) · 原样转发给 DSH,Host 透传 · 用 DSH 自己的密钥签一个登录 cookie 替手机带上 · 401 时换新 cookie 自己重取一次(浏览器侧零跳转 → 不可能循环) │ ▼ DSH 桌面端 127.0.0.1:19387 关键点:DSH 完全不用改监听地址,仍然只听回环。是 Tailscale 在本地帮它做了 HTTPS 反代。 前置条件 - DSH 桌面端(本项目在 0.2.0-rc.2 上验证通过) - Tailscale(个人版免费,最多 100 台设备) - Node.js 18+ 快速开始 1. 装 Tailscale(电脑 + 手机,登录同一个账号) - 电脑:https://tailscale.com/download - 手机:应用商店搜 Tailscale 两边必须在同一个 tailnet(同一账号),否则互相看不见。 2. 开启 HTTPS 并启动 serve tailscale serve --bg 3080 第一次跑会弹出同意页面引导你开启 HTTPS。成功后它会打印你的访问域名: https://<机器名>.<tailnet>.ts.net Windows 上这一步通常需要管理员权限的终端。 3. 让 DSH 接受这个域名 编辑 DSH profile 的 cordis.patch.yml(通常在 ~/.dsh/profiles/<profile>/cordis.patch.yml),在 web-runtime 条目里加 trustedHosts: - id: web-runtime name: "@deepseek-ai/dsh-web-app" config: openBrowser: false printUrl: true surfaceContext: true trustedHosts: - <机器名>.<tailnet>.ts.net ⚠️ profile patch 是整段替换 config,所以要连同已有的键一起保留,不能只写 trustedHosts。 ⚠️ 改这个文件前先备份 —— 写坏了 DSH 会起不来。 然后重启 DSH 桌面端。 4. 启动代理 node setup.mjs # 先自检,看还差哪一步 node proxy.mjs # 启动代理 Windows 上双击 start-proxy.cmd 也行(要保持窗口开着)。 5. 手机打开 https://<机器名>.<tailnet>.ts.net/ 不需要 token —— 代理会自动帮你登录,并种一个 30 天有效的 cookie。 想当 App 用:用浏览器菜单「添加到主屏幕」(iPhone 必须用 Safari,Chrome 不支持)。 验证 两个脚本,用途不同: node setup.mjs # 装机自检:7 项逐一检查,告诉你还差哪一步 node check.mjs # 链路自检:实测手机入口是否真的通到桌面端 setup.mjs 的输出长这样: DSH 远程访问自检 ───────────────────────────────────────────── ✓ Tailscale 客户端 C:\Program Files\Tailscale\tailscale.exe ✓ 访问域名 <机器名>.<tailnet>.ts.net ✓ DSH 凭据文件 C:\Users\you\.dsh\.credentials.yaml ✓ DSH 桌面端 :19387 在监听 ✓ 本代理 :3080 已在运行 ✓ tailscale serve 已指向 3080 ✓ profile 信任白名单 desktop 已包含该域名 ───────────────────────────────────────────── 全部就绪 ✓ 手机打开:https://<机器名>.<tailnet>.ts.net/ check.mjs 会实测四条:新手机(无 cookie)、残留旧 cookie、本机直连、对话的实时通道(WSS)。 期望看到 HTTP 200 + set-cookie=有,以及 101 Switching Protocols。 环境变量 全部有默认值,通常一个都不用设。 | 变量 | 默认 | 说明 | | DSH_AUTHORITY | 自动探测 | 访问域名。探测方式:tailscale status --json 的 Self.DNSName | | DSH_REMOTE_PORT | 3080 | 代理监听端口(要和 tailscale serve 的目标一致) | | DSH_TARGET_PORT | 19387 | DSH 桌面端 Web 端口 | | DSH_HOME | ~/.dsh | DSH 数据目录 | | DSH_CREDENTIALS | <DSH_HOME>/.credentials.yaml | 凭据文件路径 | 排错 | 症状 | 原因 / 解决 | | 自检说「探测失败」 | Tailscale 没装或没登录。托盘图标右键 → Log in | | 手机打开 403 | profile 没配 trustedHosts,或域名写错。改完要重启 DSH | | 手机打开 502 | 代理活着但 DSH 桌面端没开 | | 证书错误 | HTTPS 没启用。跑一次不带 --bg 的 tailscale serve 走完同意流程 | | 手机打不开页面 | 手机 Tailscale 没开,或没登同一账号 | | 无限跳转 303 | 还有旧版代理在跑。结束掉旧 node 进程后重启 | | 界面残缺(没输入框) | 浏览器缓存了旧前端壳。代理已对 HTML 加 no-store,硬刷新一次 | | serve 重启后失效 | 重新跑 tailscale serve --bg 3080 | 安全性 - 代理只监听 127.0.0.1,不向局域网暴露任何端口。关掉 Tailscale 就完全够不着。 - 只对匹配域名的 Host 签 cookie,其它 Host 一律不签,交给 DSH 自己的信任栅栏处理。 - 密钥不外传:从本地凭据文件读,只用于本地签 cookie,不发往任何第三方。 - 数据路径只在你自己的设备之间,不经过任何中继服务器(除 Tailscale 打洞失败时的官方 DERP 中继,端到端加密)。 隐私提醒:启用 Tailscale HTTPS 后,你的机器名和 tailnet 名会出现在公开的证书透明度(CT)账本里。 机器名含敏感信息的话,先去 https://console.tailscale.com/admin/machines 改名。 已知限制 - 依赖 DSH 的内部实现 —— cookie 签名格式(v1.<payload>.<hmac>)和凭据文件里 client-connection/browser-session 的结构都不是公开 API,DSH 升级后可能失效。 - 只在 Windows + DSH 桌面端 0.2.0-rc.2 上实测过。代码本身没有平台相关的依赖(macOS / Linux 的 tailscale 路径也都考虑了),但这两个平台没有实测。 - 手机上看到的是 DSH 原生桌面布局,会挤一些。这个工具只管网络,不管界面。 许可 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wuuuuu123-32/dsh-remote-proxy
用 Tailscale 把桌面端安全开放到手机浏览器
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,080已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,109已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,425已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,279已汉化DSH
70.8
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,353已汉化DSH
70.2