一、 什么是 Element (Matrix)?
Element 是一个开源的即时通讯应用,它基于 Matrix 协议 构建。要理解 Element,必须先理解 Matrix 协议:
去中心化(联邦式架构):
就像电子邮件一样。如果你使用 Gmail,我可以从 Outlook 给你的 Gmail 发邮件。 在 Matrix 网络中,你可以选择注册在官方服务器(matrix.org),也可以自己搭建服务器(Self-hosted),甚至注册在某个志愿者提供的服务器上。无论你在哪个服务器,你都可以和网络中的任何人聊天。

端到端加密(E2EE):
Element 默认开启端到端加密。这意味着消息在离开你的手机前就被加密,只有接收方的设备能解密。即使是服务器的所有者(包括你自己)也无法看到聊天内容。
数据主权:
这是 Element 最大的卖点。企业或个人可以完全拥有自己的数据,而不必将聊天记录托管在某个科技巨头的云端。
二、 Element (Matrix) vs. Telegram:核心安全对比
Telegram 虽然以“安全”著称,但其安全模型与 Element 有着本质的区别。Telegram 是“传输加密”,Element 是“端到端加密”。
加密机制(最关键的区别)
| 特性 | Element (Matrix) | Telegram |
| 私聊加密 | 默认开启 E2EE。 采用 Olm/Megolm 算法(类似于 Signal 的双棘轮算法),业界公认最安全标准。 | 默认不开启 E2EE。 普通聊天仅在传输层加密,Telegram 服务器拥有密钥,可以直接查看你的消息内容。只有手动开启“秘密聊天(Secret Chat)”才是端到端加密。 |
| 群聊加密 | 支持 E2EE。 多人聊天室也可以全程加密。 | 不支持 E2EE。 Telegram 的群组(尤其是超级群组)完全不支持端到端加密。服务器可以读取所有群聊历史。 |
| 算法信任度 | 使用公开、经过审计的标准加密算法。 | 使用自研的 MTProto 协议。虽然目前未被攻破,但在密码学界一直存在争议(“不要自己发明加密算法”是密码学第一原则)。 |
数据存储与架构
-
Telegram (中心化云存储):
-
优点: 极度便利。你换一台新手机,登录账号,所有历史记录瞬间同步(因为数据都在 Telegram 的云端服务器上)。
-
缺点: 信任危机。你必须无条件信任 Telegram 团队(及其CEO Pavel Durov)不会作恶,也不会被迫向政府交出解密密钥。如果 Telegram 服务器被黑,你的普通聊天记录可能全部泄露。
-
-
Element (去中心化存储):
-
优点: 即使 matrix.org 倒闭了,如果你用的是自己的服务器,你的数据依然存在。如果你开启了 E2EE,即使服务器被黑客攻破,他们得到的也只是一堆无法解密的乱码。
-
缺点: 使用门槛稍高。由于是端到端加密,换新设备时需要验证(通过旧设备扫描二维码或输入恢复密钥),否则你无法查看旧的历史记录(因为服务器上存的是加密后的密文,没有密钥解不开)。
-
隐私与匿名性
-
注册方式:
-
Telegram: 强制绑定手机号码。虽然可以隐藏号码,但注册必须提供。这使得通过手机号反查用户身份(社工库)成为可能。
-
Element: 不需要手机号。大部分服务器仅需邮箱,甚至有的服务器允许纯用户名注册。匿名性极强。
-
-
元数据(Metadata):
-
Telegram 知道你什么时候和谁说了话、你的通讯录里有谁(它会上传通讯录以匹配好友)。
-
Element 也会产生元数据(服务器需要知道把消息投递给谁),但如果你自建服务器,这些元数据就掌握在你自己手中,而不是第三方手中。
-
代码透明度
-
Element: 客户端(App)和服务器端(Synapse/Dendrite)代码全部开源。任何人都可以审计。
-
Telegram: 客户端开源,但服务器端代码闭源。我们无法确定 Telegram 的服务器上到底运行着什么代码,是否存在“后门”。
手搓你自己的Element 服务器
系统: debian 13
配置要求: 2核 4G 即可
公网IP:无需,我们用cloudflare代理,隐藏你的真实IP地址,并且支持内网穿透
域名一个,啥都行,几块钱一年的那种就行,省事直接去cloudflare注册一个,不用切换托管。
官网直通车: cloudflare官网
步骤1. 安装基础环境
SSH连接到你的debian13, 切换到 root 用户 (如果已经是root下,则省略此步骤)
sudo su -
#输入你当前用户的密码
# 更新软件源列表并升级系统组件
apt update && apt upgrade -y
安装基础必备工具 (curl, wget, nano编辑器, sudo)
apt install -y curl wget nano sudo git
清理缓存(可选,保持系统干净)
apt autoremove -y
步骤2. 安装 Docker 和 Docker Compose
在 Debian 上安装 Docker 最简单的方法是使用官方的一键脚本
# 1. 运行 Docker 官方安装脚本
curl -fsSL https://get.docker.com | bash
# 2. 启动 Docker 并设置开机自启
systemctl start docker
systemctl enable docker
# 3. 验证安装是否成功 (应该输出 Docker 版本号)
docker --version
步骤3. 创建目录并生成 Synapse 配置文件
请将下方命令中的 matrix.yourdomain.com 替换为你实际的域名
# 1. 创建存放数据的目录
mkdir -p /opt/matrix/data
cd /opt/matrix
# 2. 生成配置文件 (注意替换域名!)
# 这一步会下载镜像并生成 homeserver.yaml
docker run -it --rm \
-v "$PWD/data:/data" \
-e SYNAPSE_SERVER_NAME=matrix.yourdomain.com \
-e SYNAPSE_REPORT_STATS=yes \
matrixdotorg/synapse:latest generate
步骤4. 开Cloudflare穿透
cloudflare面板- 网络- 连接器- 创建隧道- cloudflared

给隧道命名,随便起个名字

系统选择docker,复制 Token:你会看到一段代码 docker run ... --token eyJhbG...。
只复制 --token 后面的那一长串乱码字符(这是你的密钥)。

步骤5. 编写docker-compose.yml
这是最关键的一步,我们将服务和穿透定义在一起
# 使用 nano 创建并编辑文件
nano docker-compose.yml
将以下内容粘贴进去(记得替换 Token):
version: '3.3'
services:
# Matrix 服务端 (Synapse)
synapse:
image: matrixdotorg/synapse:latest
container_name: synapse
restart: unless-stopped
volumes:
- ./data:/data
# 不需要 ports,因为我们走内网 Tunnel
# Cloudflare Tunnel (穿透)
tunnel:
image: cloudflare/cloudflared:latest
container_name: tunnel
restart: unless-stopped
command: tunnel run
environment:
- TUNNEL_TOKEN=这里粘贴你的那一长串Token字符
按 Ctrl + O,然后按 Enter 确认保存,最后按 Ctrl + X 退出编辑器.
步骤6. 启动服务
# 在 /opt/matrix 目录下执行
docker compose up -d
如果看到两个绿色的 Started,服务器已经在跑了!
步骤7. 配置 Cloudflare 后台 (最后一步网络配置)
回到 Cloudflare Zero Trust 的网页配置界面,点击 Next 进入 Public Hostname 设置:
-
Public Hostname (添加一条记录):
-
Subdomain:
matrix(或者你的域名前缀) -
Domain:
yourdomain.com -
Path: 空着不填
-
-
Service (关键!):
-
Type:
HTTP -
URL:
synapse:8008 -
(解释:为什么填
synapse而不是localhost?因为在 Docker Compose 网络里,容器之间通过服务名互相访问。)
-
-
点击 Save Tunnel。
步骤8 创建管理员账号
不需要修改配置文件开启注册,我们直接在服务器后台“空降”一个管理员。
在 SSH 终端执行:
docker exec -it synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008
按照提示输入:
-
User ID:
admin(或者你想要的名字) -
Password: 设置一个强密码
-
Confirm Password: 再次输入
-
Make admin: 输入
yes
完成
你的 Element 服务器已经完美运行在 Debian 13 上了。
-
客户端登录地址:
https://matrix.yourdomain.com -
用户名:
@admin:matrix.yourdomain.com(根据你刚才创建的) -
密码: 你刚才设置的密码
整个系统非常干净,只有 /opt/matrix 目录包含你的数据,没有任何多余的垃圾文件。












- 最新
- 最热
只看作者