dsh-web-relay:不經端口轉發,把本機 dsh web 交給遠程設備

前言

DeepSeek Harness(dsh)的 dsh web 只監聽 127.0.0.1,這是安全模型的一部分:認證面向單操作者,啓動令牌換長期 Cookie,沒有多用戶與會話吊銷。人在外網時,若只想用手機或另一臺電腦繼續用家裏那臺機器上的 Web 界面,常見做法是 VPN 或路由器端口轉發——前者要額外維護一套接入,後者等於把能執行命令的界面直接暴露到公網,和 DSH 的設計前提衝突。

下面介紹社區插件 dsh-web-relay(維護者 LFF28):內網主機主動連出一臺自建中繼,經 SSH 反向隧道和 Caddy 網關,在不開入站端口的前提下,讓遠程設備通過 HTTPS 訪問本機 dsh web。

這是什麼

dsh-web-relay 是 DSH 的聯網類插件(npm 包名 dsh-web-relay,當前資料中版本 0.1.0,MIT 許可)。它解決的是:在不改 dsh web 仍只綁 loopback 的前提下,從公網側安全地「用到」這臺 Web 控制台。

中繼側只依賴系統自帶的 sshd 與 Caddy,不安裝本倉庫代碼;連接方向始終由內網主機發起,瀏覽器只與中繼通信。

核心功能

資料中可覈對的能力如下。

拓撲與不變量

flowchart LR
  D["設備<br/>手機 / 電腦"] -->|"HTTPS + 網關口令"| R["中繼服務器<br/>Caddy + sshd"]
  R -->|"SSH 反向隧道<br/>由內網主機主動撥出"| H["內網主機<br/>dsh web"]
  • 內網主機不開放任何入站端口;隧道端點在中繼上只綁 loopback,能連它的只有同機 Caddy。
  • 設置頁填寫參數後點「部署」,引導會在中繼上冪等完成受限賬號、sshd 加固、Caddy、證書與隧道;失敗可原樣重跑。
  • 四層彼此獨立的校驗:TLS、網關口令、DSH 會話 Cookie、Host/Origin 圍欄;中繼上不存 DSH 憑據,對外通常只開一個 HTTPS 網關端口。

你會得到什麼(README 歸納)

  • 穿透 NAT,且不把 dsh web 直接綁到公網接口。
  • 部署完成後終端會打印訪問 URL,以及根證書指紋、中繼主機密鑰指紋、Caddy 版本等信息(示例見下文典型用法)。
  • 包內文檔覆蓋工作原理、部署、配置項、本機/中繼改動、安全設計與排障(倉庫 docs/ 目錄)。

安裝與啓用

前置條件(來自 README):

  • 一臺有公網地址的中繼(如 VPS),安全組放行將要使用的網關端口。
  • 中繼上管理賬號支持公鑰登錄,且可免密 sudo。
  • 本機已安裝 DSH,能正常運行 dsh web。

從 npm 安裝(官方命令,需 web profile):

dsh plugin --profile web add dsh-web-relay

安裝後重啓 dsh web,插件纔會加載設置頁與相關邏輯。

典型用法

1. 在本機完成首次配置

必須在運行 dsh web 的那臺機器本機打開設置:DSH 對非 loopback 訪問會把設置持久化降級爲內存,遠程頁面無法寫入配置。

在本機瀏覽器訪問:

http://127.0.0.1:<dshPort>

進入 設置 ▸ 遠程訪問,填入中繼地址、管理賬號、網關端口與網關口令等,點擊「部署」。

2. 收藏遠程訪問地址

部署成功後,終端會出現類似輸出:

dsh-web-relay: https://203.0.113.7:8443/
  根證書指紋 SHA256:…
  中繼主機密鑰 SHA256:…
  Caddy v2.11.4

將第一行的 HTTPS 地址保存到手機或外出用的電腦。訪問時需輸入部署時設置的網關口令,再按 DSH 常規定完成會話認證。

3. 根證書(強烈建議)

中繼使用私有 CA 時,瀏覽器會提示證書不受信任。README 說明:不安裝 CA 則只有加密、沒有身份驗證。在設置頁狀態區「下載根證書」,覈對指紋後安裝到設備,可減少警告並恢復對中繼身份的校驗。

配置說明

設置頁字段包括中繼地址、管理賬號、網關端口、網關口令等部署參數;另有包內默認值可調的行爲項(如重連退避、超時、入口開關)。字段含義見倉庫 configuration.md。

適用場景與注意

適合誰

  • 已有或可自備一臺 VPS 作中繼,希望在外網用瀏覽器操作家裏/辦公室那臺 DSH,又不想在內網主機上開入站端口。
  • 能接受自建中繼的運維成本,並願意按文檔做網關口令與 TLS 相關配置。

務必知曉

  • 插件在當前 dsh 進程權限下運行;安裝前應閱讀源碼與 MIT 許可證,理解 安全設計 中的威脅模型與已知限制。
  • 網關口令是必需項,不是可選加固;DSH 自身認證強度不足以直接面向公網。
  • 中繼上建議只跑 sshd 與 Caddy,且只暴露網關所需 HTTP(S) 端口——多開端口可能增加會話 Cookie 被讀到的面。
  • 中繼被攻破時,隧道上的明文可能被讀取;這是該架構的固有代價。
  • 社區目錄 SkillHub 插件頁 與 GitHub 倉庫由社區維護,與 DeepSeek / 幻方無官方從屬關係;DSH 生態本身是「一切皆插件」,本文僅介紹該插件在資料中寫明的行爲。

結尾

dsh-web-relay 用「內網主動出站 + 中繼 TLS 與網關口令 + 本地仍只監聽 127.0.0.1」的方式,把遠程訪問和 DSH 的單操作者安全邊界拆開處理。若你的場景符合上文前置條件,可按 npm 安裝命令啓用,並在本機設置頁完成一次性部署。

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

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

小夜