在 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