Free Download Manager 中文文档 下载 App

FDM 断点续传原理与过期链接处理

为什么断点续传重要

下载大文件时(系统镜像、游戏安装包、4K 视频),"下载到 90% 断网"是每个下载者的噩梦。没有断点续传意味着从零开始——之前的 90% 都白跑了。

FDM 的断点续传功能确保你只下载上次没下完的那部分,不管是网络中断、程序崩溃、电脑重启、还是屏幕睡了唤醒。

工作原理

断点续传依赖两件事:

服务端支持 Range 请求——和分段加速用的是同一个 HTTP 机制。服务器需要能响应 Range: bytes=X-Y 这种请求头,返回 206 Partial Content。绝大多数现代服务器都支持,但少数老服务器或配置简陋的不支持。

客户端保存下载进度——FDM 每下载完一段,就把已下载的字节偏移量写入一个临时文件。下次打开 FDM 时读取这个文件,知道已经下了多少,从哪里接着下。

FDM 的临时文件机制

当你开始下载一个 URL 时,FDM 不会直接创建目标文件,而是:

  1. 在目标文件旁边创建一个 .fjd 临时文件(和目标文件同目录,文件名多了 .fjd 后缀)
  2. .fjd 文件里实际保存着已经下载的全部数据(每个分段对应一段字节)
  3. 所有分段完成后,把 .fjd 重命名为目标文件名(去掉 .fjd 后缀)

这个机制的好处是:任何时候你看到的 .fjd 文件就是已下载的完整内容。如果 FDM 崩溃了但 .fjd 文件还在,下次启动 FDM 会自动识别并接着下载。如果你手动删了 .fjd 文件,那这个下载任务就彻底重置了。

网络中断的自动恢复

FDM 对下载过程中的网络中断有三层自动恢复:

第一层:分段内连接重试——某一段的 TCP 连接断开时,FDM 会立刻重连同一个服务器,从该段的断点继续。重试次数默认 3 次,可以在偏好设置里调整(下载列表 → 失败时自动重试次数)。

第二层:服务器切换——如果主服务器多次重试都失败,FDM 会尝试你添加的镜像源(如果你手动配置了多个下载地址),从镜像源接着下载剩余部分。

第三层:下载任务挂起——如果所有镜像源全部重试失败,FDM 把任务标记为「暂停(出错)」状态,等你手动恢复。恢复时它会再次尝试所有源,同时检查原来的主服务器链接是否过期。

链接过期的处理(重点)

很多资源服务器(特别是网盘、直链分享服务)的链接有时效性——比如阿里云盘的直链有效期 1 小时,百度网盘的直链有时限制每天次数。如果下载开始后超过了有效期怎么办?

FDM 的默认行为是:链接过期后自动暂停任务,等待你手动更新下载地址。更新方法:

  1. 右键点击任务 → 「属性」
  2. 在「下载地址」栏里粘贴最新的、有效的 URL
  3. 确定 → 恢复任务

FDM 会用新的 URL 向服务器请求 Range: bytes=已下载偏移量-,服务器如果认可这个新链接,就会从断点续传。

如果新链接指向的文件和旧链接不是同一个(比如文件被分享者更新了、内容变了),FDM 会检测到文件大小或 ETag 不一致,提示你是否放弃续传、重新开始下载。这时候建议放弃续传、重下,因为续传一个内容变了的文件会导致文件损坏。

服务器不支持续传怎么办

少数服务器(比如一些老的静态文件服务器、配置了奇怪的 CDN 规则)不支持 Range 请求。遇到这种情况:

  1. FDM 会在下载开始时检测——如果服务器返回 200 OK(全量响应)而不是 206 Partial Content,说明不支持续传
  2. FDM 会在任务属性里标记「此服务器不支持断点续传」
  3. 一旦中断,这个任务必须从头开始

遇到这种情况的解决办法:

实战:一个断点续传的完整例子

时间线:
T0  开始下载 5 GB 的 Ubuntu 镜像,8 段同时跑
T1  下载 2.3 GB 后家里路由器断电
T2  路由器恢复,FDM 检测到之前的任务
T3  FDM 读取 .fjd 文件,确认已下载 2.3 GB
T4  重新向服务器发送 Range 请求:bytes=2469606195-
T5  服务器返回 206,从 2.3 GB 位置继续下载剩余的 2.7 GB
T6  剩余部分全部完成,.fjd 重命名为 ubuntu-24.04-desktop-amd64.iso

整个过程不需要任何人工干预——这就是 FDM 断点续传的标准流程。

常见问题

我关闭 FDM 后下次打开任务还在吗?

在。只要 .fjd 文件没被手动删除,FDM 下次启动会自动扫描并恢复所有未完成的任务。

为什么续传速度比第一次下载慢?

可能原因:

能跨电脑续传吗(把 .fjd 文件带到另一台电脑上)?

理论上可以——把 FDM 配置文件夹里的下载历史和对应的 .fjd 文件一起拷到新电脑,FDM 能识别并接着下。但跨电脑续传需要新电脑能访问同一个下载 URL,且 URL 没过期。实际场景里几乎没人这么用,但原理上可行。


断点续传是下载可靠性的基础,和分段加速一起构成 FDM 下载引擎的两根支柱。继续看 添加下载任务 了解如何把 URL 送进下载引擎。