dsh-tailscale-console:DSH Web 的 Tailscale 遠程訪問運營面板

前言

DSH 的 Web 界面如果通過 Tailscale 做遠程訪問,通常需要同時確認幾件事:HTTPS 入口是否可用、本機代理是否會攔掉 *.ts.net100.64.0.0/10、中繼服務器是否可用、DSH 是否信任遠端訪問地址。這些步驟分散在 Tailscale、系統代理、DSH profile 和 ACL 中,容易漏掉其中一項。

下面介紹 dsh-tailscale-console。它是 DSH 的一個插件,把這些常見檢查和修復入口集中到一個面板裏。

這是什麼

dsh-tailscale-console 是 DeepSeek Harness(DSH)的 Tailscale 遠程訪問運營面板,由 evanfang0054 維護,許可證爲 MIT。

它面向已經使用 DSH web profile 的場景,主要解決遠程訪問過程中的入口檢查、macOS 代理繞過、中繼服務器運維和 ACL 片段生成問題。

核心功能

下面列出已覈實的卡片能力:

  1. 設備與在線提醒:按設備顯示在線/離線狀態;離線設備恢復在線時自動提醒。
  2. 健康檢查:一鍵檢查 HTTPS 入口、頁面、/api session list、/sidebar/api、server direct path、proxy bypass。
  3. HTTPS 入口:查看 Tailscale Serve 狀態和 URL,並提供開啓/關閉開關,支持驗證和重試。
  4. 代理繞過:檢查 macOS 系統代理繞過列表中的 *.ts.net100.64.0.0/10,可一鍵重新應用;僅 macOS 可用。
  5. 中繼服務器:查看中繼服務器在 Tailnet 中的狀態,啓用 Peer Relay,並做 ping 驗證。
  6. 訪問:展示遠程 HTTPS URL、本地 URL,以及完整的 dsh web 啓動命令。
  7. ACL 片段:根據當前設備 IP 生成 tailscale.com/cap/relay grants JSON。

安裝與啓用

包名爲 dsh-tailscale-console。已覈實資料沒有給出官方安裝命令,爲避免憑名稱拼接,本文不給出具體安裝命令。

啓用前可以先確認運行前提:

  1. DSH 版本不低於 0.1.0-rc.6,因爲需要 --trusted-hostwebRuntime service。
  2. profile 運行環境使用 Node 20.x 和 pnpm >= 9;已驗證過的組合是 Node 20.19.2 和 pnpm 10.27.0。
  3. 修改 cordis.patch.yml、插件代碼或 dsh-better-sidebar patch 後,需要重啓 dsh web,這會中斷當前運行的會話。
  4. 插件以當前 dsh 進程權限運行;安裝前應檢查源碼與許可證。當前已覈實許可證爲 MIT。

典型用法

先確認 HTTPS 入口

Tailscale Serve 用於把本地服務暴露到 tailnet 內的 HTTPS 地址。先執行:

tailscale serve --bg 3080

再查看狀態:

tailscale serve status

HTTPS 是必須的,因爲瀏覽器只在 secure context 下暴露 crypto.randomUUID

啓動 DSH Web

啓動 dsh web 時,把本地 tailnet IP 和 <hostname>.<tailnet>.ts.net 都加入 trusted host:

dsh web --trusted-host <local-tailnet-ip>:3080 --trusted-host <hostname>.<tailnet>.ts.net

如果希望把 trustedHosts 固化到 profile,可以把對應 trustedHosts 追加到:

~/.dsh/profiles/web/cordis.patch.yml

說明:修改後需要重啓 dsh web

macOS 代理繞過

如果本機使用會修改系統代理的代理工具,*.ts.net100.64.0.0/10 可能被代理攔掉。先查看當前繞過列表:

networksetup -getproxybypassdomains "Wi-Fi"

再寫入包含 Tailscale 域段的繞過列表:

networksetup -setproxybypassdomains "Wi-Fi" "*.ts.net" "100.64.0.0/10" "*.local" "<local>" "localhost" "127.0.0.1" "192.168.0.0/16" "10.0.0.0/8" "172.16.0.0/12"

說明:-setproxybypassdomains 會替換該網絡服務的整個繞過列表,所以先備份。該卡片只適用於 macOS;非 macOS 系統會隱藏該卡片。

配置中繼 ACL

如果需要通過手機做中繼,需要爲設備到中繼服務器之間的 relay 能力授權。可以在 Tailscale ACL 的 grants 中加入類似片段:

{
  "grants": [
    {
      "src": ["<device-A-ip>", "<device-B-ip>"],
      "dst": ["<server-tailnet-ip>"],
      "app": { "tailscale.com/cap/relay": [] }
    }
  ]
}

說明:src 是允許使用 relay 的設備,dst 是 relay server。缺少該授權時,手機中繼會不可用。

中繼端口與安全組

如果配置 Peer Relay,已覈實資料要求雲安全組允許入站 UDP 4000041641

適用場景與注意

  • 適合在 macOS 本機運行 DSH web,並通過 Tailscale 手機或遠程設備訪問的場景。
  • 適合需要維護 HTTPS 入口、代理繞過、relay server 和 ACL 的運維場景。
  • 面板中的代理繞過卡片只適用於 macOS;非 macOS 會隱藏該卡片。
  • dsh-better-sidebar 0.10.3 的 trustedHostsOf 存在問題;如果 profile 使用它,node_modules 中的 patch 會在 pnpm install 後丟失,需要重新應用。
  • 修改 cordis.patch.yml、插件代碼或 dsh-better-sidebar patch 後,需要重啓 dsh web,並會中斷當前會話。
  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。

結尾

dsh-tailscale-console 把 DSH 遠程訪問中容易分散的幾個檢查點集中到面板裏:入口、代理、中繼、訪問命令和 ACL。DSH 的插件生態強調「一切皆插件」;社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。

目錄頁地址未在已覈實資料中確認,本文不列出。GitHub 地址爲:

https://github.com/evanfang0054/dsh-tailscale-console

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

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

小夜