Simplest anki sync tutorial

From 清冽之泉
Jump to navigation Jump to search

作为一款强大的记忆卡软件,原理如同一张纸质卡片,正面记问题,反面记答案,再加一套渐进式、抗遗忘、间隔复习的算法,Anki 对许多学生的知识记忆,起到了不可估量的作用。Anki 在知识记忆领域的生态蓬勃发展,未来将会有更多人参与进来,Anki 的功能也会更加强大。

Anki 的多端同步,之前叫人头疼,但现在已经非常方便了。要实现多端同步,需要一个中转站,此中转站,即称云端服务器。循环工作流是这样的:电脑上操作了,同步到云端服务器;手机要用,就先从云端服务器取回进度;手机更改了,同步到云端服务器;电脑又用,又先从云端服务器取回进度。

简而言之:更改后同步进度至云端服务器;使用前先从云端服务器取回进度。

为了安全和速度,我们往往不想使用 Anki 自身提供的云端服务器,而是自己买一台云端服务器。买后自行设立自己的同步中转站,也非常简单——

首先,购买一台服务器,阿里云经常有 99 元一年的服务器,可以长期按这个价格续费。学生认证后购买更便宜,有时相当于免费送。有的大学也会免费给学生送服务器。本站用的服务器是 这款,99 元一年,用了好几年了。

其次,以下操作均在服务器完成:

# 打开服务器,一键开一个 Debian 系统
sudo apt install python3 # 安装 Python 3
# 安装 Anki 同步软件:
python3 -m venv ~/syncserver
cd ~/syncserver/bin
source activate
pip install anki
# 在你的服务器上,防火墙打开相应端口,默认是 8080
sudo apt install screen # 安装一个后台挂机软件 screen
screen # 打开虚拟屏幕,在它中间打开同步,可以让我们离开服务器时,Anki 同步服务依旧持续地在虚拟屏幕中正常运行
SYNC_USER1=user:passwd SYNC_PORT=8080 ~/syncserver/bin/python -m anki.syncserver
Ctrl a d # 把同步服务放进后台的虚拟屏幕,之后叉掉浏览器,也不影响我们的同步服务在后台活跃
screen -r # 以后想查看同步服务的运行详情时,可以用这个命令连回去

最后,在电脑或手机 Anki 上设置同步服务器为 http://12.34.56.78:8080/,IP 用你自己的服务器 IP,账密使用你在 Anki 自身注册的账密,即可实现多端同步。一次设置,只要云端服务器一直续费,同步就永恒有效。


注意,上边的教程够用了。以下为非必需步骤。进阶用法只适合懂一点 apache 或 nginx 服务器知识的人:

如果你嫌弃上边的同步,未经过 https,不太安全。那你得知道一点 apache 或 nginx 服务器的知识,核心的认知是:你必须让开启 anki.syncserver 的目录,处于 https 流量的管辖之下。[1] [2]如果你能看明白前一句话,那么你只需要在 apache conf 文件的 virtualhost 配置里加上如下两行,即可实现 https 传输:

ProxyPass /syncserver/ http://127.0.0.1:8080/
ProxyPassReverse /syncserver/ http://127.0.0.1:8080/

当然,加了后使用 sudo a2enmod proxy proxy_http proxy_wstunnel 开启相应模块,以及 sudo systemctl restart apache2重启一下服务器。

我就是这样用的,仅设置一次后,天天极速同步,在几台电脑和手机上,随时随地都能专注学习。

插播一句:若你不想折腾只想快速用起来,本人提供付费服务,暂定 0.3 元一天。可加我微信 qlzq-tqp,我教你注册一个 AnkiWeb 账号,同时在我的服务器为你提供同步服务。只适合同步不涉及隐私的学习内容,因为我必须有你的账号密码才能把它加进我的服务器同步进程里,介意就别来啦~

如果你想使用进阶用法,请彻底读明白这两篇参考文章: