欢迎来到威聚,大家如果有需要哪个项目编译好的软件但无法自己下载可以进入项目推荐页面告诉我,我上传到网盘供大家下载使用!
威扬盘搜

Tuwunel

网络工具 Rust Apache-2.0 Rust 人工编写 推荐 ★5 中等

更新于 2026-09-19 20:36:47

先说清楚它的来历

很多人还在推荐「Conduit」——但那条线已经换了两代,现在是 Tuwunel:

项目 状态
Conduit(timokoesters/conduit) 早期 Rust Matrix 服务端,GitHub 上只是镜像
conduwuit(x86pup/conduwuit) Conduit 的功能增强分支,仓库已 archived(归档)
Tuwunel(本项目) conduwuit 的官方继任者,现役主力,每日提交
continuwuity 另一条社区路线,主仓库在 Forgejo(GitHub 仅镜像)

所以 2026 年要自建轻量 Matrix homeserver,先看 Tuwunel,不要再看 Conduit 的老教程。

它是什么

纯 Rust 实现的 Matrix 服务端,定位就是「Synapse 的轻量替代」:可以用你喜欢的任意 Matrix 客户端(Element 等)、bridge、bot 接入,完整实现 Matrix 规范(除极冷门特性)。

关键事实(不是宣传语,是 README 原话):

  • 已被多家公司投入生产使用,主要赞助方是瑞士政府,且目前在为瑞士公民部署
  • 支持 Docker / 单文件静态二进制 / deb / rpm / apt 源 / COPR(Fedora)/ AUR(Arch)/ Nix + NixOS 模块 / Alpine / Gentoo
  • Ansible 一键部署:matrix-docker-ansible-deploy 有专门的 tuwunel 剧本
  • 官方 demo 服务器:https://try.tuwunel.chat
  • 许可证 Apache-2.0(比 Synapse 的 AGPL-3.0 对商用闭源集成更友好)

快速上手

Rust 党最舒服的方式是 Docker,配置只需要两个必填项:

cp tuwunel-example.toml tuwunel.toml
# 必填:server_name(你的域名)、database_path(RocksDB 路径)
docker pull ghcr.io/matrix-construct/tuwunel:latest

推荐搭配 Caddy 自动签证书,把 Tuwunel 和 Element Web 放一起:

tuwunel.me, tuwunel.me:8448 {
    reverse_proxy localhost:8008
}
web.tuwunel.me {
    root * /var/www/element/
    file_server
}

两个官方 TIP,能省很多事:

  1. server_name 永远不要用子域名,而且一旦定了就不能改。想用子域,后面靠 .well-known 委派(delegation)解决——顺序不能反。
  2. 配好 registration_token 并设置 allow_registration = true,第一个注册的账号自动成为服务端管理员。

迁移:能搬的、不能搬的

官方给了一张明确的表,这点比含糊其辞的项目靠谱:

从哪迁来 是否支持
conduwuit ✅ 二进制换名即可(yaml、CONDUWUIT_ 前缀环境变量都还能认)
conduwuit 的某个 fork ✅ 首次启动原地迁移 RocksDB
Conduit ✅ 原地迁移,房间历史/账号数据/媒体自动带过来
Synapse ❌ 暂不支持(issue #2 在建,这是目前最大的短板)
其他 Conduit fork ❌ 不行,必须白名单内的来源

⚠️ 官方警告:Conduit 系的各个分支共用一条数据库版本线但互不知情,在两个不同的 fork 之间来回切换数据库可能永久损坏数据。迁移前务必备份。

语音/视频怎么接

Matrix 服务端本身不碰媒体流,它只管信令和消息。所以要凑齐"低延迟语音"这一环:

  • 1:1 通话:Element 走 Matrix VoIP(WebRTC),点一下就能打
  • 群组通话:用 Element Call,底层是 LiveKit(SFU,不用 mesh,百人会议也不至于把上行打爆)
  • 替代方案:服务端挂 Jitsi Meet,Element 里以 widget 形式嵌入,这也是最经典的自建组合

也就是说:Tuwunel 负责"数据 + 身份 + 权限",LiveKit / Jitsi 负责"低延迟音视频",两者是搭配关系,不是二选一。

必须知道的坑

  1. Synapse → Tuwunel 还不能迁。老实例想换,现在只有全新开局或等官方支持。
  2. server_name 不可变。早期选错域名的代价就是重建实例。
  3. 它对资源的胃口小,但不是零。RocksDB 吃磁盘 IO,小 VPS 上建议 SSD;媒体文件建议单独挂盘或接 S3(矩阵媒体会慢慢吃掉整个盘)。
  4. 规范覆盖有边界:README 自己写的是"除最冷门的部分外全实现",遇到企业级边缘特性(复杂 MSC)可能碰壁。要 100% 规范兼容,还是 Synapse。
  5. 单一维护者风险依然存在(项目由 Jason Volk 主导),不过已有瑞士政府与多家公司赞助,比纯个人项目稳。
  6. 联邦默认是开着的,内部自用要主动限制(私网 federation 白名单/关闭联邦)。

二开与集成建议

  1. 组合拳推荐:Tuwunel(Rust,轻)+ Element Web(客户端)+ LiveKit(群通话)+ Jitsi(可选,会议 widget),一台 2~4GB 内存的 VPS 就能撑起小团队完整协作。
  2. 管理侧:Tuwunel 自带管理 API,用户/房间/媒体清理可以脚本化;要图形界面就配 Synapse Admin(第三方 Web UI)或直接写调用脚本。
  3. 部署就别手搓:直接上 matrix-docker-ansible-deploy,升级、证书、Element、Coturn、LiveKit 都有人替你串好。
  4. 监控:盯 RocksDB 目录体积 + 媒体存储增长,这两项是长期运维里最容易爆的地方。

一句话总结

Conduit 那条轻量路线并没有死,而是收敛成了 Tuwunel——Rust、Apache-2.0、已经进了瑞士政府的生产环境;如果你想要 Matrix 的联邦与端到端加密,又不想被 Synapse 的内存和运维劝退,这是目前最值得上的那一台;唯一要提前接受的是:Synapse 老实例暂时搬不过来。

按更新时间依次阅读