DSH Remote Gateway:通過反向代理安全訪問 DeepSeek Harness

DeepSeek Harness (DSH) 的設計理念是將特權瀏覽器能力保留在本地(loopback)。普通的反向代理雖然可以遠程渲染頁面,但在處理設置、插件包、WebSocket 或原生目錄選擇時通常會失敗。jiachi5533/dsh-remote-gateway 插件提供了一個兼容性網關,它僅修補必要的連接模塊,將流量代理至內部 DSH 服務,而不直接暴露 DSH 的 Web 服務器。

插件定位

  • 名稱:jiachi5533/dsh-remote-gateway
  • 簡介:受源過濾的遠程網關,用於通過經過身份驗證的反向代理訪問 DeepSeek Harness。
  • 維護者:Jiachi5533
  • 許可證:MIT

核心功能

該插件主要解決遠程訪問時的兼容性問題,並保證安全性:

  • 協議支持:代理 HTTP、SSE 和 WebSocket 流量。
  • 源地址過濾:僅接受來自明確列出的源 IP 地址的請求。
  • 網絡隔離:內部 DSH Web 服務器始終綁定在 127.0.0.1,不對外監聽。
  • 請求重寫:將上游請求的 Host 和 Origin 重寫爲內部 loopback 權限。
  • 頭信息剝離:在請求進入 DSH 之前,移除邊緣認證和客戶端身份轉發頭(如 Authorization, Proxy-Authorization, Forwarded, X-Forwarded-*, X-Real-IP)。
  • 精準修補:僅修補特定的 dsh-client-connection 能力探測模塊,其他插件包內容保持字節對字節轉發。
  • 目錄選擇:替換主機的原生目錄對話框,使用 DSH 內置的文件系統瀏覽器。
  • 生命週期:隨 DSH 插件生命週期啓動和停止,由 DSH 的 supervisor(如 systemd)統一管理。

安裝與配置

前置要求:
* DSH Web 配置文件
* Node.js 22.19 或更新版本
* 支持WebSocket轉發和認證的反向代理

  1. 安裝插件:
    使用官方 CLI 命令從 GitHub 安裝:
    dsh plugin --profile web add github:Jiachi5533/dsh-remote-gateway
  1. 編輯配置文件:
    安裝後,編輯生成的 remote-gateway 配置條目,路徑爲 ~/.dsh/profiles/web/cordis.patch.yml:
    - id: remote-gateway
      name: '@jiachi/dsh-remote-gateway'
      config:
        host: 0.0.0.0
        port: 3080
        allowedSources:
          - 192.0.2.10 # exact LAN address of the reverse proxy
          - 127.0.0.1  # optional local health checks
  1. 重啓服務:
    首次安裝後需重啓 DSH Web 進程。

典型用法

  1. 配置反向代理:
    將反向代理的 HTTP 和 WebSocket 流量轉發到 DSH 主機的 LAN 地址和端口 3080:
    http://DSH_HOST_LAN_IP:3080

  2. 啓用安全層:
    在反向代理處啓用 HTTPS 和用戶認證。TLS 和用戶認證在此終止。

  3. 健康檢查:
    允許列出的監控系統可以訪問 GET /_dsh-remote-gateway/health 端點。該端點返回 200 ok,不向上游 DSH 發起請求,用於驗證網關進程和源地址策略。

安全模型與注意事項

該插件的安全模型由多層防禦構成:

  • 反向代理爲邊界:TLS 和用戶認證在反向代理處終止。
  • 源地址白名單:網關只接受反向代理的 LAN 地址。注意,當前實現僅支持精確的 IPv4 或 IPv6 地址,不支持 CIDR 範圍。
  • Loopback 隔離:內部 DSH Web 服務器始終只監聽本地迴環地址。
  • 頭信息清理:所有轉發頭被移除,防止信息泄露或權限提升。

重要警告:
* 永遠不要直接將端口 3080 暴露到互聯網。
* 不要在 allowedSources 中添加廣泛的網絡範圍(如 0.0.0.0/0),這無法保護內部服務。
* 插件以 DSH 進程的權限運行。在安裝任何第三方插件之前,務必審查其源碼和許可證。

插件僅修補特定的連接兼容性模塊,其餘插件包內容保持不變,因此大多數標準插件在遠程環境下可以正常工作。

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

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

小夜