DeepSeek Harness 遠程設置兼容與訪問網關插件

前言

DeepSeek Harness(DSH)採用插件化架構,在遠程部署或代理訪問時,開發者通常需要分別處理遠程設置的安全來源(Origin)和獨立的密碼訪問網關。如果不加以區分,容易導致權限校驗混亂或安全邊界不清。

lemoncat7/dsh-remote-settings-compat 插件旨在將這兩項能力收斂到一個安裝包中。它通過統一的配置入口,提供可信瀏覽器 Origin 管理、獨立密碼網關以及 Knowledge 匿名分享功能,同時保持與 DSH 主程序解耦。

插件定位

這是一個 DeepSeek Harness 的統一遠程訪問兼容插件,由開發者 lemoncat7 維護。它不修改 DSH 主程序,也不接管 Knowledge 或 SSH 業務路由,而是通過官方 Bundle 接口提供擴展能力。

核心功能

該插件主要包含以下能力:

  • 可信瀏覽器 Origin 管理:允許顯式指定的瀏覽器 Origin 使用 DSH 官方模型、憑證和插件設置。這是 Origin 權威來源,同時用於遠程設置和密碼門禁校驗。
  • 獨立密碼網關:提供從端口 3081 到 3080 的透明代理。密碼使用 scrypt 不可逆存儲,瀏覽器使用 HttpOnly、SameSite 會話 Cookie。
  • 安全策略:包含登錄限速、會話過期、可選 IP 綁定與一鍵撤銷全部會話。
  • 機器 API 兼容:配置的機器 API(如 /knowledge-api/v1)可繼續使用 Bearer Token,Token 由目標插件驗證。
  • Knowledge 匿名分享:可顯式開啓 Knowledge 匿名讀取,僅放行形如 /knowledge-api/v1/shared/share_... 的合法分享頁、清單和內容 GET 請求,不開放搜索、回寫或管理接口。

安裝

使用 Node.js 環境安裝:

npm install

環境要求:Node.js 版本需爲 ^22.19.0 或 >=24.0.0。

典型用法

Docker 部署配置

在 docker-compose.yml 中配置端口映射。端口 3081 作爲密碼網關入口,3080 爲 DSH 原生服務。

services:
  dsh:
    ports:
      # 僅允許迴環訪問,或根據網絡環境調整
      - "127.0.0.1:3080:3080"
      # 密碼網關,同機 Nginx 時可綁定 127.0.0.1
      - "127.0.0.1:3081:3081"

插件內部配置示例:

dsh-access-gate:
  enabled: true
  listenHost: 0.0.0.0
  listenPort: 3081
  secureCookies: true

remote-settings-compat:
  trustedOrigins:
    - https://dsh.example.com:2439

Nginx 反向代理配置

Nginx 需將流量整體代理到 3081,並嚴格保留 Host 頭。

location / {
    proxy_pass http://127.0.0.1:3081;

    # 必須保留非默認端口;不能用 $host
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Port $server_port;

    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_http_version 1.1;
}

首次啓用流程

啓用流程分爲七個階段,避免因配置不當導致訪問中斷:

1、在「設置 → 插件 → 遠程訪問」填寫完整的 trustedOrigins。

2、啓用網關,保存監聽地址、端口和 Cookie 策略(如 secureCookies: true)。

3、使用 DSH 啓動日誌中的一次性初始化令牌設置密碼。

4、發佈 3081 端口,重啓 DSH,並先確認 3081 能打開登錄頁。

5、把反向代理從 3080 整體切到 3081。

6、打開「部署自檢」,確認 Host、Origin、當前入口和 Credentials 全部正常。

7、最後刪除 3080 的對外發布,或將它收緊到宿主機迴環地址。

升級與兼容

從獨立的 dsh-access-gate 升級時,插件會繼續讀取舊的設置命名空間和憑證記錄,無需重設密碼或公開 Origin。但新包生效後,必須從 profile 中移除舊的 dsh-access-gate Bundle,避免兩個網關同時監聽同一端口。

注意事項

  • 配置分離:配置 trustedOrigins 不會自動啓用 3081 或密碼功能,需分別設置。
  • Nginx 規則:嚴禁使用 $host 變量,必須使用 $http_host 以保留非默認端口。
  • Credentials 權限:使用官方本地 Provider 時,密碼文件建議權限爲 600,避免被其他進程讀取。
  • 業務路由:插件不接管 Knowledge 或 SSH 業務路由,這些功能仍由 DSH 原生插件處理。

結語

該插件通過統一入口管理遠程訪問的安全策略,爲開發者提供了從 Origin 校驗到密碼網關的一體化解決方案。使用前請確認 Node.js 版本,並仔細檢查 Nginx 配置以避免 Host 頭丟失導致的安全問題。

項目地址:https://github.com/lemoncat7/dsh-remote-settings-compat

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

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

小夜