DSH(DeepSeek Harness)通常只綁定在 127.0.0.1,限制了只能在本地訪問。要在局域網內的其他設備(如手機或辦公電腦)上查看 DSH 的 Web 界面,需要一個反向代理。dsh-3301 旨在解決這個問題。它將 DSH 的本地端口轉發到 http://<this-machine-ip>:3301,提供密碼保護、會話認證以及對 WebSocket 的支持。
核心功能¶
- LAN 訪問 DSH:將 DSH 的 Web 界面暴露在局域網內。
- 密碼保護的反向代理:支持 HTTP 和 WebSocket,防止未授權訪問。
- DSH 插件支持:作爲插件集成到 DSH 進程中,隨 DSH 啓動和停止,無需單獨運行守護進程。
- 會話 Cookie 認證:登錄後使用簽名 Cookie(默認有效期 30 天),避免了 Basic Auth 對 WebSocket 連接的頻繁中斷問題。
- 速率限制:防止暴力破解攻擊。
- 跨平臺支持:基於 Node.js 內置模塊,支持 Windows、macOS 和 Linux。
- 零安裝依賴:不依賴外部 npm 包。
安裝與部署¶
當前項目沒有發佈 npm 包,需要通過 Git 克隆並部署。請確保已安裝 Node.js 18 或更高版本。
- 克隆倉庫並進入目錄:
git clone https://github.com/Aztech-Lab/dsh-3301
cd dsh-3301
- 執行部署腳本:
node tools/deploy.mjs dsh-3301
腳本會將插件文件寫入 DSH 的配置目錄(通常在 `$DSH_HOME/profiles/<profile>`)。如果遇到權限拒絕錯誤,請檢查目錄權限或以所有者身份運行。
配置與使用¶
插件配置¶
重啓 DSH 後,在界面中進入 設置 -> 插件 -> 插件配置 -> dsh-3301。
| 配置項 | 說明 |
|---|---|
| 啓用 | 開啓後監聽指定端口,關閉則釋放端口。 |
| 綁定主機 | 0.0.0.0 允許局域網訪問,127.0.0.1 僅本機訪問。 |
| 端口 | 默認爲 3301。 |
| 用戶名 | 登錄表單的用戶名,默認爲 dsh。 |
| Session 有效期 | 會話 Cookie 的有效期,默認 30 天。 |
| 失敗鎖定 | IP 在多次登錄失敗後的鎖定策略。 |
| 密碼 | 寫入式輸入框。留空表示清除密碼;修改密碼需要輸入舊密碼。 |
訪問入口¶
配置並保存後,在局域網內的任意設備訪問:
http://<host-ip>:3301
首次訪問或重置密碼時,可訪問初始化設置頁:
http://127.0.0.1:3301/__gate/setup
檢查服務狀態(無需認證):
http://127.0.0.1:3301/__gate/health
注意事項¶
- 默認無密碼:插件啓動時沒有默認密碼。任何能訪問端口 3301 的設備都可以進入 DSH。建議在暴露到網絡前先設置密碼。
- 配置方式:插件的所有配置均通過設置卡片完成,不支持命令行參數。
- 樣式授權:插件的樣式代碼使用了 BSD-3-Clause 許可證。
- 獨立模式:除了作爲插件運行外,項目仍支持獨立的 CLI 模式,通過環境變量
DSH_PROXY_PASS進行配置。
適用場景¶
適合需要在局域網內使用 DSH 進行智能體開發或調試的開發者,特別是需要長時間保持 WebSocket 連接(如 SSE 或實時流式輸出)的場景。