Matrix / Element 自托管即时通讯:搭一个不被监控的私有聊天服务器(2026)
2026-08-15 · DevCraft Studio
想在微信、钉钉之外拥有一个真正属于自己的聊天服务器?本文手把手教你在 VPS 上用 Matrix + Element 搭建私有即时通讯,对比 Synapse 与 Conduit 选型、讲清联邦联通与端到端加密原理、并给出国内访问优化方案。适合想要隐私通讯与跨平台群聊、又不想把聊天记录交给大厂的中高阶玩家。
说句大实话:我们每天在微信、钉钉、Discord 里聊的东西,本质上都不在自己手里。服务商能读元数据、能调聊天记录、能随时改规则甚至封号。很多人想要一个"自己的聊天服务器"——既能像微信一样多端同步、建群开聊,又没人能偷看、没人能删档。Matrix 协议加 Element 客户端,就是目前开源圈最接近这个目标、且能真正跑起来的方案。这篇我把 2026 年实测过的搭建思路、选型坑和国内访问优化全摊开讲。
延伸阅读
更多相关攻略推荐:别被多核骗了!为什么买 VPS 必须看单核(Single-Core)、【区块链节点 03】用 VPS 运行比特币全节点:UTXO、prun、在 VPS 上自托管 CI Runner:GitLab Runner、【VPS 自建影音与网盘 01】用 VPS 搭建私人影音服务器:Je、Immich / PhotoPrism 自建照片备份:把 Googl。
一、为什么要在 VPS 上自建 Matrix / Element
Matrix 不是某个 App,而是一套开放协议,你可以理解成"聊天界的电子邮件"。你自己跑的那台服务器叫 homeserver(家庭服务器,别被名字骗了,它跑在 VPS 上),负责存消息、管账号、和其他 Matrix 服务器互相联通;你手机电脑上装的 Element、FluffyChat、Cinny 只是客户端。好处有三条,而且都很硬:
- 数据归你:聊天记录存在你租的 VPS 硬盘上,服务商动不了,你也随时能导出备份。
- 联邦互通:你的服务器能和世界上任何一台 Matrix 服务器聊天,@alice:你的域名 能直接私聊 @bob:matrix.org,就像你自建邮箱也能给 Gmail 发信。
- 端到端加密:一对一私聊默认端到端加密,连你的服务器都只能看到密文,更别提第三方。
当然也得泼盆冷水:自托管是实打实的运维活。你要管域名、证书、防火墙、升级和备份。如果你的需求只是"找个群聊天",直接用 matrix.org 或 Element 官方托管更省心;但如果你在意掌控感,往下看。
二、先选 homeserver:Synapse、Conduit、Dendrite 到底用哪个
这是整篇文章最关键的决策。Matrix 官方和社区目前主要有三个成熟实现,定位完全不同:
| 实现 | 语言 | 空闲内存 | 数据库 | 成熟度 | 适合谁 |
|---|---|---|---|---|---|
| Synapse | Python | 1–4 GB | PostgreSQL(必须) | 参考实现,最全 | 多用户社群、要桥接 |
| Conduit | Rust | 50–300 MB | 内嵌 RocksDB | 稳定,功能略少 | 个人 / 小团队,省资源 |
| Dendrite | Go | 200–500 MB | PostgreSQL | 稳定,仍在追赶 | 想要比 Synapse 省、又比 Conduit 全 |
一句话结论:个人或小家庭用,闭眼选 Conduit——它是 Rust 写的单文件二进制,起步只要几十 MB 内存,不用装 PostgreSQL,配置文件就一小撮;如果要开公开注册、做几十人以上的社群、或想把 Discord/Telegram 桥接进来,老老实实用 Synapse,它的桥接生态和 worker 横向扩展是最成熟的。还有一个叫 conduwuit 的 Rust 分支,活跃度不错,本质和 Conduit 一类,先别碰以免踩坑。
三、配置需求:你的 VPS 到底要吃多少资源
很多人被"聊天服务器"吓到,其实 Conduit 极省。下面是 2026 年实测的参考区间:
| 场景 | 推荐配置 | 说明 |
|---|---|---|
| 个人 Conduit | 1 核 / 1–2 GB / 20 GB SSD | 单用户或三五好友,内存 100–300 MB 闲时占用 |
| 小社群 Synapse | 2 核 / 4 GB / 40 GB SSD | 联邦回源时内存会脉冲到 4 GB 以上,4 GB 是底线 |
| 公开大社群 Synapse | 4 核 / 8 GB+ / 100 GB+ | 需开 worker 拆分 federation、媒体、sync,配 Redis 缓存 |
经验法则:Conduit 在 1 GB 内存的机器上能跑得很舒服,这也是它被称为"五美元 VPS 或树莓派级别负载"的原因;Synapse 单用户空闲就要吃掉 1–2 GB,加入 matrix.org 那种大型公共房间后数据库几个月能涨到 5–15 GB,所以磁盘别太小。媒体(图片、文件)是占用大头,人多建议把媒体存到对象存储或定期清理。
四、域名、端口与联邦:别人怎么找到你的服务器
Matrix 的联邦(federation)有点像邮件的 SMTP:别的服务器要能连上你,才能给你发消息。默认规则有两条路,选一条即可:
- 端口 8448:在你的 server_name 对应的主机名上开放 8448(TLS),这是最直观的方式,但要在防火墙放行。
- .well-known 委托:更灵活,你在域名根下提供
https://你的域名/.well-known/matrix/server这个 JSON,里面写明真正处理联邦的地址和端口,就能把联邦流量引到 443,避免额外开端口。绝大多数教程推荐这条。
客户端流量走标准 443(你在前面套 Nginx/Caddy 反代,自动签 Let's Encrypt 证书)。部署完去 Matrix 官方的 Federation Tester 测一下,三处连接全绿才算联邦真正通了。另外别忘了 DNS:给 matrix.你的域名 建一条 A 记录指向 VPS IP。
五、用 Docker 部署 Synapse(成熟全家桶)
下面是简化版 docker-compose,把 Synapse 和 PostgreSQL 串起来。先生成配置:
docker run --rm \
-v $PWD/synapse-data:/data \
-e SYNAPSE_SERVER_NAME=matrix.example.com \
-e SYNAPSE_REPORT_STATS=no \
matrixdotorg/synapse:v1.149.1 generate然后把 homeserver.yaml 里的数据库换成 PostgreSQL(默认是 SQLite,正式用不推荐),并给 registration_shared_secret、macaroon_secret_key、form_secret 各填一个 openssl rand -hex 32 生成的强随机串。compose 文件大致长这样:
services:
synapse:
image: matrixdotorg/synapse:v1.149.1
restart: unless-stopped
volumes:
- ./synapse-data:/data
depends_on:
- postgres
ports:
- "8008:8008"
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: synapse
POSTGRES_USER: synapse
POSTGRES_PASSWORD: 换成你的强密码
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:启动后创建第一个管理员账号(默认客户端注册是关的):
docker compose exec synapse register_new_matrix_user \
-c /data/homeserver.yaml http://localhost:8008这一步大约要 20–40 分钟跑通,Synapse 整体从零到能聊天通常得 1–2 小时,耐心点。
六、用 Docker 部署 Conduit(极省内存的轻量之选)
如果你只是自己用,Conduit 明显更香,一条 compose 搞定,连数据库都不用单独装:
services:
conduit:
image: matrixconduit/matrix-conduit:latest
restart: unless-stopped
ports:
- "6167:6167"
volumes:
- ./conduit-data:/var/lib/matrix-conduit
environment:
CONDUIT_SERVER_NAME: matrix.example.com
CONDUIT_DATABASE_BACKEND: rocksdb
CONDUIT_PORT: 6167
CONDUIT_ALLOW_REGISTRATION: "false"
CONDUIT_ALLOW_FEDERATION: "true"
CONDUIT_TRUSTED_SERVERS: '["matrix.org"]'注意:部署完、自己注册好账号后,记得把 CONDUIT_ALLOW_REGISTRATION 改回 "false",免得被扫到开放注册。Conduit 从安装到发出第一条消息一般 15–30 分钟,对低配 VPS 极其友好。
七、端到端加密:你的消息到底安不安全
这是隐私通讯的核心,得把它讲透。Matrix 的端到端加密(叫 Olm/Megolm)在私聊里默认开启:消息在客户端就用你的设备密钥加密,服务器只负责中转密文,所以连你自己的 homeserver 管理员都看不到聊天内容。但有两件事要清醒:
- 服务器仍看得到元数据:谁和谁在聊、什么时候、房间里有哪些人,这些"信封表面信息"服务器是知道的。要彻底匿名,得配合不收集 KYC 的离岸 VPS。
- 密钥设备绑定:换手机或重装客户端,需要用安全密钥或旧设备做"密钥备份/交叉签名"恢复历史消息,否则旧记录解不开。第一次用务必把安全密钥抄下来。
群聊的加密体验在 Element 里也很顺,创建加密房间即可。语音视频走 Element Call 或 Jitsi,Synapse 支持最完整,Conduit 也在补。
八、客户端与桥接:把微信、Discord、Telegram 接进来
服务器和客户端是彻底分离的——你装 Element 官方 App,登录时把"服务器地址"改成你的域名就行,其他体验和官方一模一样。想体验更轻的,可以试试 FluffyChat(手机)或 Cinny(网页)。
真正让 Matrix 封神的,是桥接(bridge):通过 matrix-appservice 或 mautrix 系列桥,你能把 Telegram、Discord、Slack 甚至 WhatsApp 的聊天"镜像"进你的 Matrix 房间,在一个客户端里统一收发。这里要划重点:桥接生态是 Synapse 的绝对强项,Conduit 的桥接还在补课,复杂桥接会卡壳。所以"想用桥接"基本等于"得用 Synapse"。
九、国内访问优化:让 Matrix 在天朝也能稳
大陆用户自建 Matrix 最大的痛是网络。两点建议:
- 选对 VPS 线路:matrix.org 等海外大服务器在国内直连质量差异很大。如果你主要给自己和国内朋友用,优先选带三网优化/直连线路的商家(如 RackNerd、Contabo 的部分节点,或用本站评测过的低延迟节点),别盲目上欧洲裸机,否则图片加载转圈。
- 用 .well-known 委托 + 443 反代:尽量少开 8448 这种非常规端口,全部收口到 443,叠加 CDN 或反代可以缓解部分链路质量问题。媒体走你自己的服务器,带宽和流量额度要留足。
- 接受联邦延迟:和境外大房间联邦时,回源拉取历史消息会慢,这是物理距离决定的,不是你配置错了。
另外,部分大型公共服务器会对"隐私激进"的实例限制联邦,属于正常风控,别慌;自建小圈子的价值本来就不靠和 matrix.org 互通。
十、备份与运维:丢了数据库就丢了全部聊天记录
自托管最惨的事不是部署失败,是硬盘坏了、聊天全没。两个铁律:
- 定期备份数据库:Synapse 用
pg_dump导出 PostgreSQL;Conduit 直接打包 RocksDB 数据目录做快照。用 Restic 或 Borg 自动跑,异地再存一份。 - 媒体单独管:图片文件占空间,备份策略可以和数据库分开,或丢到 S3 兼容存储。
运维上:Synapse 升级前先看 changelog,大版本有数据库迁移;Conduit 升级基本无感。前面套一层 fail2ban 或 CrowdSec,防止有人暴力扫你的登录接口。监控可以用 Uptime Kuma 探 /_matrix/federation/v1/version 看联邦是否还活着。
#Matrix #Element #自托管 #VPS #即时通讯 #端到端加密 #Synapse #Conduit