FluxDown FTP — 和 HTTP 同队列、独立引擎、断点续传
FTP 在 FluxDown 里的定位
FluxDown 的 FTP 是独立引擎——不是简单用 HTTP 协议层包一层,而是自己实现了 FTP 协议栈(PASV/PORT、被动/主动模式、LIST、RETR、REST)。好处是:
- 和 HTTP 共用同一个队列(排队时 FTP 任务和 HTTP 任务不区分)。
- 享受同一套 Work Stealing、全局限速、SQLite 持久化。
- 断点续传真正基于 FTP
REST命令,不是下载完再 append。
连接模式
FluxDown 默认使用 被动模式(PASV),绝大多数 FTP 服务器和 NAT/防火墙配置都兼容。主动模式(PORT)作为备选,在服务器端要求客户端开放入站端口时才启用——可以在「设置 → FTP → 连接模式」里切换。
主动模式和被动模式的区别是:被动模式由客户端主动连服务器开放的端口,主动模式是服务器来连客户端的端口。在 NAT 后面,主动模式通常连不上,所以 FluxDown 默认被动。
断点续传细节
FTP 断点续传的关键是 REST <offset> 命令——告诉服务器从文件的第 N 个字节开始传。FluxDown 的 SQLite 分段表里记录了每个分段的已下载偏移,重启后直接对每个分段发 REST 命令从断点续。
与 HTTP Range 一样,FTP 断点续传也要求服务器支持 REST 命令(大多数现代 FTP 服务器都支持)。老的或严格安全配置的 FTP 服务器可能不支持,此时 FluxDown 会回退为从头下载整个文件。
认证与加密
| 类型 | 支持 | 说明 |
|---|---|---|
| 匿名登录 | 有 | 默认 user=anonymous / password=空 |
| 用户名密码 | 有 | URL 形式 ftp://user:pass@host/path,或新建下载时填 |
| FTPS(隐式 TLS) | 有 | 在 FTP 设置里开启「使用 TLS」 |
| SFTP | 没有 | SFTP 是 SSH 协议,不是 FTP 扩展;FluxDown 不支持 |
与专用 FTP 客户端的差异
相比 FileZilla、WinSCP 这类 FTP 客户端,FluxDown 的 FTP 实现更偏「下载管线」:它没有目录浏览、拖拽上传、同步等 FTP 专用功能。你粘贴一个 FTP URL,它就下载,不做其他事。好处是如果你已经用 FluxDown 管 HTTP/BT/HLS 下载,FTP 也能放进来统一排队,不用再开一个客户端。