群晖 DSM 系统提供了 CardDAV Server 套件,使用 CardDAV 协议实现通讯录的同步功能。
CardDAV 协议
关于 CardDAV 的知识,可以查看 Wiki 文档,此处做个简短描述:
vCard Extensions to WebDAV (CardDAV) 是一个基于“客户端/服务器”形式的通讯录协议,允许用户存取和分享服务器上的联系人信息。
CardDAV 协议由 IETF 机构研发,在2011年9月作为 RFC 6352 发布出来。CardDAV 基于 WebDAV,WebDAV 基于 HTTP,使用 vCard 数据格式来传输联系人信息。
WebDAV:
Web Distributed Authoring and Versioning (WebDAV) 是 HTTP 协议的一种扩展,允许客户端进行远端 Web 内容授权操作。
安装 CardDAV Server 套件
在套件中心搜索“CardDAV”即可找到 CardDAV Server 套件,点击“安装套件”按钮,开始安装。
套件安装结束之后会自动启动服务。
CardDAV Server 配置
打开 CardDAV 套件,可以看到如下可配置项:
推荐尽量配置成如上图所示的形式。
而“通讯簿”下面就是当前 DSM 系统中每个用户的通讯录了:
我这边系统就有上图所示的4个用户,双击特定用户,可以进入该用户的通讯簿管理界面:
很常规的操作,此处不赘述。
接下来就需要配置一下端口转发了,打开“控制面板->外部访问->路由器配置”,点击新增按钮,弹出如下对话框:
选择“内置应用程序”,点击下一步,选择两个 CardDAV Server 条目:
点击“应用”按钮,回到“路由器配置”界面,然后点击“保存”按钮,将刚才的改动写入到路由器端口转发规则中去。
iOS 系统配置
服务器配置好之后,就开始配置客户端了,本文的客户端以 iOS 系统为例讲述。
进入 iOS 的“设置->账户与密码”界面:
点击“添加账户”:
选择“其他”:
选择“添加 CardDAV 账户”:
假设我们的群晖主机能通过域名 test.synology.me
访问,那么上图中的服务器栏填写:
https://test.synology.me:8008
用户名和密码填写你在 DSM 中注册的账号就行了。
填好之后点击右上角的“下一步”,iOS 就会自动检测 CardDAV 服务了,中途可能会弹出一个框:
直接点击“继续”就行了。
配置好之后,就可以在“设置->账户与密码”界面看到刚才添加的账户了。
为了测试上述内容是否配置成功,可以在 DSM 中打开 CardDAV Server 套件,在刚才所添加账号对应的用户下,新建一个联系人,然后在 iOS 通讯录中查看是否同步过来刚刚添加的联系人。
备份 iOS 中已有的联系人
实际上,上述配置只是会让 CardDAV Server 账户中的联系人同步到 iOS 中,并不会将已有的联系人备份到 CardDAV Server 服务中去。
在 iOS 通讯录中,每个 CardDAV 账户都会被映射到一个特定的分组(言下之意也就是说通讯录中还有其他很多种分组)。默认情况下,通讯录是会显示所有分组的联系人,可以设置要显示哪些分组的联系人。其实此处我们预期达到的目标是,将除 CardDAV 账户之外的所有联系人都导入到 CardDAV Server 里去,这样就能使用 CardDAV 协议管理所有联系人了。
先将所有联系人同步到 iCloud 中,然后从浏览器进入 https://www.icloud.com/#contacts
,可以看到同步到 iCloud 的所有联系人,点击左下角的“设置”图标,选择“导出 vCard...”:
会下载一个 **.vcf
到本地磁盘。
从浏览器进入 DSM 系统,打开 CardDAV Server 套件,进入特定账号的通讯簿管理界面,点击“导入”按钮:
选中刚刚导出的 **.vcf
文件,即可将所有联系人导入 CardDAV 服务。
至此,完美实现通讯录同步流程,后续在 iOS 中新添加的联系人也会自动同步至 CardDAV 服务。