文章摘要
作者分享了自己5年来自托管Matrix服务器的经验,主要用于亲友间的文字聊天和WhatsApp桥接。他认为Matrix协议的数据复制机制虽能减轻原服务器负担,但也导致跨服务器消息无法撤回。Synapse服务器是唯一支持桥接的选择,作者直接在VPS上运行Synapse、PostgreSQL和coturn,整体运行稳定可靠。
文章总结
自建Matrix服务器五年经验谈
协议与服务器选择
作者五年来在小型VPS上自建Matrix服务器(使用Synapse+PostgreSQL+coturn非容器化方案),主要用于亲友间文字聊天和WhatsApp桥接。对Matrix协议的数据复制机制存疑——当A服务器用户加入B服务器聊天室时,数据会双向同步,这种设计虽减轻源服务器负担,却导致联邦网络中的发言无法彻底删除,与隐私理念形成悖论。
Synapse实战体验
优势: - 稳定支持桥接功能 - API文档完善,可通过HTTP调用发送未加密消息 - 2020年后运行效率提升
痛点: 1. 管理缺失:需自行开发管理页面(作者开源了简易管理工具) 2. 强制联邦:初始设置默认开启联邦,仅能通过空白白名单变相禁用 3. 数据膨胀: - 数据库即便定期清理仍可能达GB级 - 状态记录表(stategroupsstate)采用只增模式,需手动压缩 - 含附件消息删除后文件仍驻留服务器 4. 账户顽疾:用户仅能停用无法彻底删除,存在GDPR合规争议
客户端对比
Element Classic: - 多平台体验统一 - 缺失图片说明功能 - 通知延迟、离线状态提示不明确 - 密钥管理流程对新手不友好
Element X(新版): - 操作延迟明显(对话加载需0.5-1秒) - 对话排序逻辑混乱 - 缺乏后台同步功能 - 必须配合ESS的"滑动同步"功能 - 通话功能不向下兼容
注册困境
新旧客户端均存在严重注册障碍: - Element X强制第三方认证,不支持基础用户名密码注册 - Element Classic移动端常提示"不支持此注册流程" - 管理员需权衡开放注册与令牌注册的安全风险
未来走向
Element公司推出的ESS社区版(需2CPU/2GB内存/Kubernetes)对小型实例过于沉重,相比XMPP方案Snikket(仅需1CPU/128MB内存)显得臃肿。作者认为Matrix生态过度倾向政企需求,计划转向更轻量的Snikket方案。
(注:原文中涉及的图片链接及技术细节已作简化处理,保留核心观点)
评论总结
Matrix评论总结
正面评价
部署与维护体验良好
- 用户推荐使用Ansible脚本部署,认为设置简单且运行稳定(评论3:"This playbook is awesome and it’s pretty easy to set up and keep running")。
- 长期用户反馈资源占用优化明显,PostgreSQL表现稳定(评论12:"RAM usage decreased by 60%... it flies")。
功能与隐私优势
- 认可其联邦化和端到端加密特性(评论7:"The upside is that it is federated and at least messages and files are E2EE")。
- 新版客户端Element X获得好评(评论8:"X is becoming a good client")。
负面评价
技术问题与稳定性
- 加密同步失败、消息延迟严重(评论5:"encryption between mobile and webapp breaks all the time... insane delays on notifications")。
- Dendrite服务器软件被指维护不善,存在严重缺陷(评论7:"abruptly become defunded... stopped processing messages for minutes at a time")。
生态碎片化与复杂性
- 客户端兼容性问题突出(评论12:"I do not know how to fix calling between old and new clients")。
- 自托管门槛过高,文档不完善(评论10:"lost days messing with coturn... docs need to point to recommended setup")。
数据管理缺陷
- 消息清理困难,附件无法彻底删除(评论5:"loading old content took hours... eventually stopped working";评论12:"50GBs of stuff I cannot delete")。
争议性观点
联邦化是否必需
- 有用户成功运行非联邦化家庭服务器(评论4:"had federation disabled... zero issues"),但其他讨论默认联邦化为核心特性。
协议设计理念
- 对元数据泄漏提出批评(评论7:"room names are not encrypted... leaks metadata"),但承认现有技术限制(评论9:"No protocol can force deletion across devices")。
代表性引用
部署便捷性:
"This playbook is awesome... easy to set up"(评论3)
"Running synapse for 2 years... smooth sail"(评论15)技术痛点:
"Cannot decrypt a lot... insane delays"(评论5)
"Dendrite... abruptly become defunded"(评论7)生态问题:
"Self-hosting complexity is out of hand"(评论16)
"Client software felt bloated... notifications finally work on XMPP"(评论17)