跳转到内容

Matrix

来自 Arch Linux 中文维基

Matrix 是一个新的开放式联邦化的即时通信和 VoIP 生态系统。其包含服务端、客户端和桥接工具,可以连接到已有的通信解决方案如IRC。

Arch Linux 的官方 Matrix 空间位于#public-space:archlinux.org。要想加入空间,请联系已加入空间的成员或 @heftig:archlinux.org 寻求邀请。想加入 Arch Linux CN 的官方 Matrix 房间可以参考 Arch Linux 中文社区#Matrix 房间。一些国际社区有其自己的 Matrix 房间,请参阅国际社区以了解详细信息。

对于客户端,请参阅应用程序列表/互联网#Matrix 客户端。

您可以使用已有的 Matrix 服务器如 https://matrix.org 或创建您自己的服务器。下文是创建一台广泛使用的服务器的教程。

安装

Matrix 的服务端实现 Synapse 由 matrix-synapse包 提供,其会创建一个 synapse 用户。

配置

安装完成后需要生成一个配置文件,synapse 用户应当能够读取该文件:

# generate_config --server-name my.domain.name \
                  --config-dir /etc/synapse \
                  --data-dir /var/lib/synapse \
                  --report-stats yes \
                  --generate-secrets \
                  --output-file /etc/synapse/homeserver.yaml
# generate_log_config -o /etc/synapse/my.domain.name.log.config \
                      -f /var/log/synapse/homeserver.log
# generate_signing_key --output_file /etc/synapse/my.domain.name.signing.key
# chown -R synapse:synapse /etc/synapse /var/log/synapse


请注意这会为指定的服务器名称生成相应的 SSL 和自签名证书,若您更改了服务器名称,则应重新生成。

注意:若您的 Synapse 服务器可通过互联网访问,那么非常建议您为其设置反向代理。

数据库

Synapse 仅用 SQLite 测试服务器,操作时使用 Postgres。

要使用 Postgres,请安装 python-psycopg2包。

注意:您可在官网的使用 Postgres 文档中读到更多有关安装和配置的信息,注意如果您错过了这个步骤,您需要稍后执行迁移。在这个领域 SQlite 并不是很精通。

服务

matrix-synapse包 包含 systemd 服务 synapse.service,其会按照配置文件 /etc/synapse/homeserver.yaml 以用户 synapse 启动 Synapse 服务端。

用户管理

您的新 synapse 服务器需要至少一个用户,可以执行以下命令创建您的默认非 root 用户:

[synapse]$ register_new_matrix_user -c /etc/synapse/homeserver.yaml http://127.0.0.1:8008

也可以使用一个 matrix 客户端,例如 element-desktop包,或 libpurpleAUR 的 purple-matrix-gitAUR 插件。

蜘蛛爬虫

如需为链接预览等功能启用蜘蛛爬虫,请安装 python-lxml包 和 python-netaddr包。之后在 homeserver.yaml 中设定 url_preview_enabled: True。欲使 synapse 服务器拒绝指向内部服务器的 GET 请求,请设定 url_preview_ip_range_blacklist:。

警告:黑名单默认空白:不配置的话 synapse 服务器可以爬取您所有的内部主机。

可以取消一些黑名单示例的注释。把您本地的 IP 地址范围添加到列表中可以阻止 synapse 服务器尝试爬取它们。在编辑 homeserver.yaml 后,必须重启服务。

您可能感兴趣的频道

KDE 社区有一系列的 matrix 房间用于特定的应用、语言、事件等。详情请查看 https://community.kde.org/Matrix。

GNOME 社区也有一个有一系列房间的 matrix 实例用于社区即时交流。详情请查看 https://wiki.gnome.org/GettingInTouch/Matrix。

故障排除

只读文件系统

默认情况下,synapse 只能写入由服务文件设置的工作目录 (/var/lib/synapse)。当 synapse 写入另一个路径时,可能会发生写入错误,例如您设置了媒体存储于 /var/lib/matrix-synapse/media。

您可以创建一个 synapse.service 的替换单元文件并添加 ReadWritePaths=欲写入的路径 到 [Service] 节来允许 synapse 访问其他路径。

高内存占用

synapse 的内存占用可以通过安装 jemalloc包 被大幅减少[1]。要启用 jemalloc 内存管理器,环境变量 LD_PRELOAD 需要按下方示例设置。可以修改 /etc/default/synapse 文件,systemd 会自动加载该配置中的环境变量。[2]

/etc/default/synapse
LD_PRELOAD=/usr/lib/libjemalloc.so

启用 jemalloc 后,通过调整缓存设置[3]可以进一步降低内存占用。

/etc/synapse/homeserver.yaml
caches:
  cache_autotuning:
    max_cache_memory_usage: 1024M
    target_cache_memory_usage: 758M
    min_cache_ttl: 5m

只有 jemalloc 启用时,cache_autotuning 中的设置才会工作。