Anki-Sync-Server 与 Anki 桌面端集成:完整配置教程
【免费下载链接】anki-sync-serverA personal Anki sync server (so you can sync against your own server rather than AnkiWeb)项目地址: https://gitcode.com/gh_mirrors/ank/anki-sync-server
想要完全掌控自己的 Anki 学习数据吗?厌倦了依赖 AnkiWeb 的同步服务?本文将为您详细介绍如何搭建和配置 Anki-Sync-Server 个人同步服务器,并与 Anki 桌面端完美集成。这个完整的配置教程将帮助您快速建立属于自己的 Anki 同步服务,实现数据自主管理!
📋 什么是 Anki-Sync-Server?
Anki-Sync-Server 是一个开源的个人 Anki 同步服务器,让您可以将学习数据同步到自己的服务器,而不是依赖官方的 AnkiWeb 服务。这对于注重隐私保护、需要离线同步或希望自定义同步策略的用户来说,是一个完美的解决方案。
🚀 快速安装 Anki-Sync-Server
环境准备与安装
首先,您需要准备一个运行环境。Anki-Sync-Server 基于 Python 开发,支持多种安装方式:
使用 pip 一键安装(推荐)
pip install AnkiServer从源码安装(获取最新功能)
# 安装依赖 pip install webob PasteDeploy PasteScript sqlalchemy simplejson # 克隆仓库 git clone https://gitcode.com/gh_mirrors/ank/anki-sync-server # 进入目录 cd anki-sync-server # 生成 egg 信息文件 python setup.py egg_info配置虚拟环境(可选但推荐)
为了保持环境整洁,建议使用虚拟环境:
# 创建虚拟环境 virtualenv anki-env # 激活虚拟环境 source anki-env/bin/activate # 安装 AnkiServer pip install AnkiServer⚙️ 服务器配置详解
基础配置文件设置
Anki-Sync-Server 的核心配置文件是example.ini。首先复制并修改它:
cp example.ini production.ini打开production.ini文件,您会看到以下关键配置部分:
服务器设置
[server:main] use = egg:AnkiServer#server host = 127.0.0.1 # 监听地址 port = 27701 # 监听端口应用路由配置
[app:real] use = egg:Paste#urlmap / = rest_app # REST API 端点 /msync = sync_app # 媒体同步端点 /sync = sync_app # 主同步端点数据存储配置
[app:sync_app] use = egg:AnkiServer#sync_app data_root = ./collections # 数据存储目录 base_url = /sync/ base_media_url = /msync/ session_db_path = ./session.db # 会话数据库 auth_db_path = ./auth.db # 认证数据库用户管理操作
使用ankiserverctl.py脚本进行用户管理:
# 添加新用户 ./ankiserverctl.py adduser username # 删除用户 ./ankiserverctl.py deluser username # 修改密码 ./ankiserverctl.py passwd username # 列出所有用户 ./ankiserverctl.py lsuser🔗 Anki 桌面端集成配置
创建同步插件
这是最关键的一步!您需要在 Anki 的插件目录中创建一个简单的 Python 文件:
创建插件文件
打开 Anki 的插件目录:
- Windows:
%APPDATA%\Anki2\addons21\ - macOS:
~/Library/Application Support/Anki2/addons21/ - Linux:
~/.local/share/Anki2/addons21/
- Windows:
创建文件
mysyncserver.py,内容如下:
import anki.sync # 设置同步服务器地址 anki.sync.SYNC_BASE = 'http://127.0.0.1:27701/' anki.sync.SYNC_MEDIA_BASE = 'http://127.0.0.1:27701/msync/'重要提示:将127.0.0.1:27701替换为您实际的服务器地址和端口。
TLS/SSL 安全配置(可选)
如果您使用 HTTPS,需要添加证书验证配置:
import anki.sync import os.path # 同步服务器地址 anki.sync.SYNC_BASE = 'https://your-domain.com:27701/' anki.sync.SYNC_MEDIA_BASE = 'https://your-domain.com:27701/msync/' # 证书配置 CERTPATH = 'server.pem' # 覆盖 TLS 证书路径 httpCon_anki = anki.sync.httpCon def httpCon_patch(): conn = httpCon_anki() conn.ca_certs = os.path.join(os.path.dirname(__file__), CERTPATH) return conn anki.sync.httpCon = httpCon_patch🎯 启动与测试
启动服务器
调试模式(推荐首次测试)
./ankiserverctl.py debug生产模式
./ankiserverctl.py start停止服务器
./ankiserverctl.py stop验证连接
启动 Anki 桌面端,尝试同步操作。如果一切正常,您会看到:
- ✅ 同步进度正常显示
- ✅ 卡片数据成功上传/下载
- ✅ 媒体文件同步正常
🔧 高级配置选项
Supervisor 进程管理
对于生产环境,建议使用 Supervisor 管理进程:
- 安装 Supervisor
sudo apt-get install supervisor- 配置 Supervisor
# 复制配置文件 sudo cp supervisor-anki-server.conf /etc/supervisor/conf.d/anki-server.conf # 编辑配置文件,调整路径和参数 sudo nano /etc/supervisor/conf.d/anki-server.conf- 管理服务
# 重新加载配置 sudo supervisorctl reload # 查看日志 sudo supervisorctl tail anki-server # 管理服务 sudo supervisorctl start anki-server sudo supervisorctl stop anki-server sudo supervisorctl restart anki-serverNginx 反向代理配置
如果您希望通过域名访问,可以使用 Nginx 反向代理:
server { listen 80; listen [::]:80; server_name anki.your-domain.com; location / { client_max_body_size 0; proxy_pass http://localhost:27701; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }🚨 故障排除指南
常见问题及解决方案
问题1:同步失败,连接被拒绝
- ✅ 检查服务器是否正在运行:
./ankiserverctl.py debug - ✅ 确认端口 27701 未被防火墙阻止
- ✅ 验证 Anki 插件中的服务器地址是否正确
问题2:认证失败
- ✅ 确认用户名和密码正确
- ✅ 使用
./ankiserverctl.py passwd username重置密码 - ✅ 检查
auth.db文件权限
问题3:媒体文件无法同步
- ✅ 确认
data_root目录有写入权限 - ✅ 检查磁盘空间是否充足
- ✅ 验证
base_media_url配置正确
日志查看技巧
查看详细日志
# 调试模式启动时,日志直接输出到控制台 ./ankiserverctl.py debug # 查看生产模式日志 tail -f collections/anki.log📊 性能优化建议
存储优化
- 定期清理旧的同步会话
- 使用 SSD 存储提高 I/O 性能
- 设置合理的备份策略
网络优化
- 启用 gzip 压缩(已在配置中默认开启)
- 优化 Nginx/Apache 缓存设置
- 考虑使用 CDN 加速媒体文件
🔄 多设备同步策略
桌面端与移动端协同
AnkiDroid 配置
- 打开 AnkiDroid 设置
- 进入"高级" → "自定义同步服务器"
- 启用"使用自定义同步服务器"
- 设置同步地址和媒体同步地址
同步注意事项
- 所有设备使用相同的用户名/密码
- 首次同步前确保网络稳定
- 定期检查同步冲突
🛡️ 安全最佳实践
数据安全
- 定期备份
collections目录 - 使用强密码策略
- 启用 HTTPS 加密传输
访问控制
- 配置防火墙,限制访问 IP
- 定期更新依赖包
- 监控异常登录尝试
🎉 开始使用您的个人同步服务
完成以上配置后,您就拥有了一个完全自主控制的 Anki 同步服务!现在您可以:
- 享受数据自主权:所有学习数据都在您的服务器上
- 无限制同步:摆脱 AnkiWeb 的同步限制
- 定制化体验:根据需求调整服务器配置
- 隐私保护:敏感学习数据不再上传到第三方服务
下一步行动建议
- 先在小规模测试环境中验证配置
- 逐步迁移现有卡片到新服务器
- 建立定期备份机制
- 考虑高可用部署方案
通过本教程,您已经掌握了 Anki-Sync-Server 的完整配置流程。这个强大的工具让您能够完全掌控自己的学习数据,享受真正自由的同步体验!🚀
【免费下载链接】anki-sync-serverA personal Anki sync server (so you can sync against your own server rather than AnkiWeb)项目地址: https://gitcode.com/gh_mirrors/ank/anki-sync-server
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考