dsh-tailnet-admin: 讓 DSH 設置頁在非迴環地址可用

DeepSeek Harness(DSH)默認將“本機”定義爲桌面殼注入的 globalThis.__DSH_TRANSPORT__ 或迴環地址(localhost)。當通過 Tailscale Tailnet 或反向代理域名訪問 DSH 時,設置頁會報 settings are unavailable in this browser,且瀏覽器會話認證(token)在重啓後失效。dsh-tailnet-admin 插件將這兩個問題拆解爲獨立開關,讓設置頁在非迴環地址可用,並支持按需關閉瀏覽器會話校驗,同時保留 Host/Origin 柵欄。

基本信息

  • 插件名:dsh-tailnet-admin
  • 維護者:he0119
  • 分類:聯網工具
  • 許可證:MIT
  • 核心價值:把 Tailnet / 反向代理頁面當作“本機”來用:啓用 host 持久化設置,並按需關閉瀏覽器會話校驗(Host/Origin 柵欄保持不動)。

核心功能

  1. 設置頁可用性:允許 DSH 的設置頁在非迴環地址上可用,解決 settings are unavailable in this browser 的問題。
  2. 會話認證控制:提供開關關閉瀏覽器會話校驗(disableBrowserAuth),解決重啓後 token 失效的問題。
  3. 安全柵欄保留:保留 Host/Origin 柵欄,僅移除瀏覽器端的 token 校驗。
  4. 本地開發支持:支持通過 link:/path/to/... 進行本地開發安裝。

安裝與配置

1. 安裝插件

安裝前請確保 Node.js 版本爲 ^22.19.0 || >=24.0.0。

使用官方命令安裝:

npx @deepseek-ai/dsh plugin --profile web add @he0119/dsh-tailnet-admin

本地開發時,先構建再通過鏈接安裝:

pnpm run build
npx @deepseek-ai/dsh plugin --profile web add link:/path/to/dsh-tailnet-admin

2. 註冊爲 Bundle

dsh plugin add 僅執行 pnpm add,DSH 啓動時只讀取 dsh.profile.bundles。安裝後需在 profile 的 package.json 中註冊。

// ~/.dsh/profiles/web/package.json
{
  "dsh": {
    "profile": {
      "bundles": [
        "@he0119/dsh-tailnet-admin"
      ]
    }
  }
}

也可以在 DSH 界面操作:設置 → 插件,找到“已安裝但未啓用”的包,啓用一次即可完成註冊。

3. 配置開關

插件提供兩個獨立配置項:pageHosts 和 disableBrowserAuth。

方法一:通過配置頁

  1. 打開 DSH 設置 → 插件。
  2. 找到 dsh-tailnet-admin 插件頁面。
  3. pageHosts:按“本機”處理的頁面主機,一行一條。
    • . 開頭表示後綴匹配(如 .ts.net 匹配 a.ts.net)。
    • * 表示匹配所有。
    • 默認爲空,需手動配置。
  4. disableBrowserAuth:關閉瀏覽器會話校驗。默認關閉,打開前請閱讀“安全邊界”。
  5. 保存配置。

方法二:修改配置文件

直接編輯 ~/.dsh/profiles/web/cordis.patch.yml:

- id: tailnet-admin            # 插件固定約定的 id
  name: '@he0119/dsh-tailnet-admin'
  config:
    pageHosts:
      - .ts.net              # 或精確主機名,或 *
    disableBrowserAuth: true # 默認 false

注意:disableBrowserAuth 立即生效,pageHosts 需刷新頁面生效。

安全邊界

disableBrowserAuth 打開後無瀏覽器 token 認證,依賴 Host/Origin 柵欄。這意味着任何能打開此頁面的人即可擁有機器控制權(讀寫文件、執行命令、動用 API key)。暴露面取決於 Tailscale ACL 或反向代理的訪問控制。

建議組合:
* pageHosts 按需開啓。
* disableBrowserAuth 僅在需要解決 token 頻繁失效問題時開啓。
* 開啓後確認 Tailscale ACL 僅放行可信設備。

排障

現象 原因
設置頁仍報 settings are unavailable in this browser pageHosts 未命中當前主機名(需帶點後綴),或未刷新頁面
請求直接 403 Host/Origin 柵欄未過:需在 dsh web 啓動參數中添加 --trusted-host <authority>
仍然要 ?token= disableBrowserAuth 未打開
啓動日誌沒有 [dsh-tailnet-admin] 包名未加到 dsh.profile.bundles,或包未安裝
配置頁顯示“只寫進這個瀏覽器” 當前頁面未被當作“本機”,需先從迴環地址打開或修改 cordis.patch.yml

總結

dsh-tailnet-admin 解決了 DSH 在 Tailnet 或反向代理環境下的設置頁不可用及會話認證問題。通過拆分 pageHosts 和 disableBrowserAuth 兩個開關,在保留安全柵欄的前提下,提供了靈活的配置能力。

  • GitHub: https://github.com/he0119/dsh-tailnet-admin
  • 目錄: https://www.skillhub.cn/plugins/he0119/dsh-tailnet-admin
羽毛球分组比赛记分
小程序二维码

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

小夜