AnkiDroid 同步备份:AnkiWeb、自建服务器与本地恢复

AnkiDroid 的牌组数据怎么做到换机不丢、误删可恢复?靠两件事配合:同步让手机与电脑(或多台设备)保持同一份集合,备份在误删、损坏时给你回滚的底气。本教程给出三种可靠方案——AnkiWeb、自建同步服务器、本地备份——并讲清冲突时怎么选。还没装好 App 的话,建议先按AnkiDroid 新手入门教程完成安装与基础设置。

一、定义:同步与备份不是一回事

同步(Sync)是把手机、电脑、平板上的同一份牌组集合保持一致的双向过程;备份(Backup)则是把当前集合打包存档,用于误删或换机后的恢复。AnkiDroid 支持两种同步后端:官方的 AnkiWeb(免费、需注册)与自建同步服务器(数据完全自己掌控)。两者都基于同一套同步协议,与桌面版 Anki 互通,复习所用的间隔重复算法在各端也保持一致(原理见AnkiDroid 算法原理)。

AnkiDroid 多端同步示意图:手机与云端同步服务器双向同步牌组与进度
图 1:AnkiDroid 与同步服务器双向同步牌组、进度与统计。

二、原理:同步如何避免冲突

同步时 AnkiDroid 会比较本地与服务器的「修改版本号」。若仅一端有改动,自动合并;若两端都改了同一份集合,就会触发冲突,App 弹出「上传 / 下载」二选一:选「上传」以手机为准覆盖服务器,选「下载」以服务器为准覆盖手机。理解这个机制,你就不会在冲突时乱点导致数据被覆盖。

三、方法:三种可靠方案

方案 A:AnkiWeb(最省事)

在 AnkiWeb 官网注册账号 → AnkiDroid「设置 → 同步」里登录 → 开启「自动同步」。此后每次打开和关闭 App 都会自动同步(最短间隔 10 分钟),多设备无缝衔接。

方案 B:自建同步服务器(隐私首选)

在自有服务器部署官方同步服务器,三种装法任选:桌面版 Anki 自带的 anki --syncserver(2.1.57+)、PyPI 独立包 anki 的 anki.syncserver 模块、或 Rust 版 anki-sync-server(2.1.66+)。用 SYNC_USER1=用户名:密码 设置好账号,再把 AnkiDroid「设置 → 同步」里的自定义同步服务器指向该地址即可。适合不愿把复习数据放在第三方的用户。两点官方提醒:这是高级功能,遇到网络/防火墙问题需自行排查;升级 Anki 客户端时可能得同步升级服务器,否则同步会失效。

方案 C:本地备份(最后防线)

AnkiDroid 其实自带两层本地防护。一是自动备份:每次启动 App 时,若距上次备份已超过 5 小时,就会在后台自动生成一份,默认保留最近 8 份(含卡片与统计,不含声音和图片),在牌组界面主菜单「恢复备份」里随时可以回滚,保留份数还能在设置里调整。二是手动导出集合包:牌组界面主菜单 →「导出」→ 导出为集合包(.colpkg),存到网盘或电脑;换机或误删时「导入集合包」整盘恢复,进度与统计全带走。导出时注意两个勾选项:保留「包含调度信息」(否则复习进度不进包),要带走声音图片就再勾上「包含媒体」。另外,Play 版 AnkiDroid 卸载时系统会连应用数据一起清掉(本机自动备份也在内),换机前务必先同步或导出。自动备份只留在本机,所以跨设备、防丢的底线,仍是那份自己导出的 .colpkg。

方案上手难度数据掌控适用场景
AnkiWeb低数据在官方绝大多数个人用户
自建服务器中完全自控隐私敏感 / 团队内网
本地备份低本地存档换机迁移 / 防误删
盲区(最易被忽略):自动同步≠备份。云端只保留「当前状态」,一旦你误删并同步,云端也会被删。因此再怎么同步,也要保留一份定期导出的 .colpkg 本地备份——它和本机自动备份互补:一个防「误删后同步」,一个防「手机丢失或损坏」。

四、案例:换机零丢失迁移

一位用户从旧安卓换到新机:旧机先「导出集合包」存到电脑,新机安装 AnkiDroid 后登录同一 AnkiWeb 账号自动拉取全部牌组与复习进度,再用集合包做一次校验导入,3000+ 张卡片与历史统计 100% 无损迁移。反常识点:单设备用户也该备份——同步解决的是「多端一致」,而备份解决的是「误删/损坏可回滚」,两者互补而非替代。(这是示例路径,供参考。)

五、FAQ

同步一直转圈或失败?

多为网络问题;自建服务器需确认 URL 与端口可达、账号密码正确,必要时改用 AnkiWeb 排查。另外 AnkiDroid 2.16 起自定义同步服务器只需填一个地址,更早的版本要分别填同步端点与媒体端点。

冲突时点「上传」还是「下载」?

以「改动更多的一端」为准:手机加了半天新卡就选上传,电脑整理了牌组就选下载。

自建服务器安全吗?

数据只在你自己的服务器,相对放心;但服务器默认监听未加密的 HTTP,暴露到公网一定要套 HTTPS 反向代理或 VPN(如 Tailscale)。账号用 SYNC_USER1=用户名:密码 设置,服务端数据也建议定期备份。

集合包和单纯导出牌组有什么区别?

集合包含进度与统计,是完整备份;单纯导出牌组只含卡片内容,不含复习历史。

能恢复到之前某一天的状态吗?

不能精确回到「某一天」,但可以回到某个快照:AnkiDroid 默认保留最近 8 份自动备份(含卡片与统计,不含声音和图片),在牌组界面主菜单「恢复备份」里选一份回滚;自己定期导出的 .colpkg 同理,导入哪份就回到哪个快照。

← 上一篇:高级技巧

本篇读完,回到AnkiDroid 中文站首页或使用教程目录继续。