在 DeepSeek Harness(DSH)環境中進行開發或調試時,有時需要在本地或網絡中共享文件目錄。除了使用外部 FTP 服務,也可以直接在 Harness 內部啓動一個 FTP 服務。dsh-plugin-ftp-server 插件正是爲此設計,它能在 Harness 進程內啓動一個純 Node.js 實現的 FTP 服務器,並通過瀏覽器設置面板進行管理。
安裝與啓用¶
- 在命令行中執行以下命令安裝插件:
dsh plugin --profile web add github:YinjiangCN/dsh-plugin-ftp-server
-
安裝完成後重啓 DeepSeek Harness。
-
在瀏覽器中打開設置頁面,找到「FTP 服務」選項卡,填寫配置並點擊「啓動服務」。
配置說明¶
插件啓動後,可以通過設置面板控制服務狀態。默認配置如下:
| 字段 | 默認值 | 說明 |
|---|---|---|
| 監聽地址 (host) | 0.0.0.0 |
FTP 服務綁定的網絡地址 |
| 端口 (port) | 2121 |
FTP 控制端口 |
| 共享根目錄 (root) | workspace/ftp-root |
FTP 可訪問的根目錄 |
| 用戶名 (user) | ftp |
登錄用戶名(匿名模式忽略此項) |
| 密碼 (pass) | (空) | 登錄密碼(匿名模式忽略此項) |
| 允許匿名 (anonymous) | off | 是否允許匿名登錄 |
客戶端連接地址格式爲 ftp://<user>@<host>:<port>。密碼僅存儲在內存中,通過子進程參數傳遞,不會寫入磁盤。
核心功能¶
- 零依賴核心:FTP 服務器核心完全基於 Node.js 內置模塊編寫,不依賴第三方庫。
- 完整協議支持:支持標準 FTP 命令,包括 USER/PASS、PWD/CWD/CDUP、LIST/NLST/MLSD、RETR/STOR/APPE、DELE/MKD/RMD、RNFR/RNTO、SIZE/MDTM/REST、PASV/EPSV/PORT、FEAT/STAT/ABOR/NOOP。
- 安全隔離:文件系統被 Chroot 到共享根目錄,阻止路徑逃逸(如
..),且根目錄本身不可刪除或重命名。 - 管理面板:提供瀏覽器界面,可查看運行狀態(PID、運行時間)、共享根目錄列表、實時日誌,以及啓停控制。
- 進程管理:具備空閒超時(180秒)、崩潰檢測以及在插件停止時自動清理子進程的能力。
安全與注意事項¶
- 明文傳輸:該插件基於純 FTP 協議,不提供 TLS 加密。憑據和數據以明文傳輸,僅建議在內部或可信網絡中使用。
- 權限風險:服務器以 Harness 用戶的權限運行。如果將「共享根目錄」設置爲
/,任何持有憑證的用戶都可以讀寫整個文件系統。 - 單實例限制:當前版本每個實例僅支持一個賬戶。如需多用戶訪問,請運行多個實例並使用不同端口。
總結¶
該插件爲 DeepSeek Harness 提供了一個輕量級、內嵌式的文件共享方案。通過瀏覽器即可管理 FTP 服務,適合在本地調試或內部網絡中臨時共享文件目錄。
GitHub 倉庫:YinjiangCN/dsh-plugin-ftp-server