跳至內容

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 中的設置才會工作。