前言¶
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