前言¶
DSH 的 Web 界面如果通過 Tailscale 做遠程訪問,通常需要同時確認幾件事:HTTPS 入口是否可用、本機代理是否會攔掉 *.ts.net 和 100.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 片段生成問題。
核心功能¶
下面列出已覈實的卡片能力:
- 設備與在線提醒:按設備顯示在線/離線狀態;離線設備恢復在線時自動提醒。
- 健康檢查:一鍵檢查 HTTPS 入口、頁面、
/apisession list、/sidebar/api、server direct path、proxy bypass。 - HTTPS 入口:查看 Tailscale Serve 狀態和 URL,並提供開啓/關閉開關,支持驗證和重試。
- 代理繞過:檢查 macOS 系統代理繞過列表中的
*.ts.net和100.64.0.0/10,可一鍵重新應用;僅 macOS 可用。 - 中繼服務器:查看中繼服務器在 Tailnet 中的狀態,啓用 Peer Relay,並做 ping 驗證。
- 訪問:展示遠程 HTTPS URL、本地 URL,以及完整的
dsh web啓動命令。 - ACL 片段:根據當前設備 IP 生成
tailscale.com/cap/relaygrants JSON。
安裝與啓用¶
包名爲 dsh-tailscale-console。已覈實資料沒有給出官方安裝命令,爲避免憑名稱拼接,本文不給出具體安裝命令。
啓用前可以先確認運行前提:
- DSH 版本不低於
0.1.0-rc.6,因爲需要--trusted-host和webRuntimeservice。 - profile 運行環境使用 Node 20.x 和 pnpm >= 9;已驗證過的組合是 Node 20.19.2 和 pnpm 10.27.0。
- 修改
cordis.patch.yml、插件代碼或dsh-better-sidebarpatch 後,需要重啓dsh web,這會中斷當前運行的會話。 - 插件以當前
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.net 和 100.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 40000 和 41641。
適用場景與注意¶
- 適合在 macOS 本機運行 DSH web,並通過 Tailscale 手機或遠程設備訪問的場景。
- 適合需要維護 HTTPS 入口、代理繞過、relay server 和 ACL 的運維場景。
- 面板中的代理繞過卡片只適用於 macOS;非 macOS 會隱藏該卡片。
dsh-better-sidebar0.10.3 的trustedHostsOf存在問題;如果 profile 使用它,node_modules中的 patch 會在pnpm install後丟失,需要重新應用。- 修改
cordis.patch.yml、插件代碼或dsh-better-sidebarpatch 後,需要重啓dsh web,並會中斷當前會話。 - 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證。
結尾¶
dsh-tailscale-console 把 DSH 遠程訪問中容易分散的幾個檢查點集中到面板裏:入口、代理、中繼、訪問命令和 ACL。DSH 的插件生態強調「一切皆插件」;社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。
目錄頁地址未在已覈實資料中確認,本文不列出。GitHub 地址爲:
https://github.com/evanfang0054/dsh-tailscale-console