Anki-Sync-Server 与 Anki 桌面端集成:完整配置教程
2026/7/6 18:30:35 网站建设 项目流程

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 文件:

创建插件文件

  1. 打开 Anki 的插件目录:

    • Windows:%APPDATA%\Anki2\addons21\
    • macOS:~/Library/Application Support/Anki2/addons21/
    • Linux:~/.local/share/Anki2/addons21/
  2. 创建文件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 管理进程:

  1. 安装 Supervisor
sudo apt-get install supervisor
  1. 配置 Supervisor
# 复制配置文件 sudo cp supervisor-anki-server.conf /etc/supervisor/conf.d/anki-server.conf # 编辑配置文件,调整路径和参数 sudo nano /etc/supervisor/conf.d/anki-server.conf
  1. 管理服务
# 重新加载配置 sudo supervisorctl reload # 查看日志 sudo supervisorctl tail anki-server # 管理服务 sudo supervisorctl start anki-server sudo supervisorctl stop anki-server sudo supervisorctl restart anki-server

Nginx 反向代理配置

如果您希望通过域名访问,可以使用 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 配置

  1. 打开 AnkiDroid 设置
  2. 进入"高级" → "自定义同步服务器"
  3. 启用"使用自定义同步服务器"
  4. 设置同步地址和媒体同步地址

同步注意事项

  • 所有设备使用相同的用户名/密码
  • 首次同步前确保网络稳定
  • 定期检查同步冲突

🛡️ 安全最佳实践

数据安全

  • 定期备份collections目录
  • 使用强密码策略
  • 启用 HTTPS 加密传输

访问控制

  • 配置防火墙,限制访问 IP
  • 定期更新依赖包
  • 监控异常登录尝试

🎉 开始使用您的个人同步服务

完成以上配置后,您就拥有了一个完全自主控制的 Anki 同步服务!现在您可以:

  1. 享受数据自主权:所有学习数据都在您的服务器上
  2. 无限制同步:摆脱 AnkiWeb 的同步限制
  3. 定制化体验:根据需求调整服务器配置
  4. 隐私保护:敏感学习数据不再上传到第三方服务

下一步行动建议

  • 先在小规模测试环境中验证配置
  • 逐步迁移现有卡片到新服务器
  • 建立定期备份机制
  • 考虑高可用部署方案

通过本教程,您已经掌握了 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询