为什么要搭建自己的Anki服务器
- 为了提高同步速度
- 保证自己的数据不会落在别人手里
- 避免具有大量图片和音频的牌组同步时间过长
前提条件
- 需要一个远程服务器或者在局域网中有自己的树莓派之类的产品
搭建环境
- python2.7
- pip软件包管理工具
- Ubuntu Server 16.04 LTS
具体步骤
1. 安装AnkiServer。
easy_install AnkiServer # 使用ankiserverctl.py测试安装是否成功
2. 在主目录文件夹下新建一个名为Anki文件夹,用来存放相关数据。
mkdir Anki
cd Anki
cp /usr/local/lib/python2.7/dist-packages/AnkiServer-2.0.6-py2.7.egg/examples/example.ini production.ini
vim production.ini
3. 修改production.ini文件内容并保存。
host= 10.XX.XX.XX # 自己服务器的私网地址,不是公网地址。 allowed_hosts=0.0.0.0 # 允许同步的客户端ip地址,使用0.0.0.0表示允许任何ip地址连接
4. 添加用户,将来在Anki客户端登录时使用的用户,使用一下指令添加用户,然后输入对应的密码。
ankiserverctl.py adduser username # usename替换为你的用户名,如xiaoming
ankiserverctl.py lsuser # 列出用户列表,能看到上一步添加的用户即为成功
5. 测试服务器
ankiserverctl.py debug # 调试模式,如果没有报错,则可以正常运行。
6. 正常运行服务
ankiserverctl.py start # 前提需要关闭第5个步骤的程序。
7. 外网测试是否连上端口(端口扫描-站长工具)
填入外网IP及端口27701,如果状态开放则服务端配置告一段落。
如果端口关闭则需要在阿里云安全组里手动输入打开27701端口。
服务器系统也要打开该端口:nc -lp 27701 &
Anki桌面版设定
1. 点击工具->插件->打开插件文件夹。
2. 创建一个名为mysyncserver.py的文件。
3. 修改里面的内容为。
import anki.sync anki.sync.SYNC_BASE = 'http://192.168.0.100:27701/' # 这里的IP是你服务器外网IP。 anki.sync.SYNC_MEDIA_BASE = 'http://192.168.0.100:27701/msync/'
保存后重新启动Anki程序。
4. 点击同步,输入之前在服务端注册的账户完成登录。
Android版设定
1. 依次点击设定->高级设定->自定义同步服务器。
2. 勾选 使用自定义同步服务器。
3. 输入指定的服务器IP和端口地址。
Sync url :http://192.168.0.100:207701/
Media sync url:http://192.168.0.100:207701/msync/
参考资料:
https://zhuanlan.zhihu.com/p/26981059