Debian 9 安装 Matrix.org 的服务器 Synapse 。

本文讲述如何在服务器部署 Matrix.org 的服务器 Synapse 。

本文针对 Debian 9 编写 。

Matrix 是通过 IP 实现的互通,分散,实时通信的开放标准。它可以给即时通讯, VoIP 和物联网通信提供支持

Synapse 是来自 matrix.org 的核心开发团队的参考家庭服务器实现,用 Python / Twisted 编写。

最终实现 s.unus.me ,开始使用 unus 的服务器 m.unus.me

事先准备:

  • Debian 9
  • Root 权限
  • 域名,如 message.example.com

Ⅰ.更新和升级你的系统

登录到您的 Debian 服务器并添加存储库密钥,以确保开发人员已签署任何安装和更新,并在你的服务器上阻止安装任何未经授权的软件包。

注:使用 root 登陆到 Debian 所以本文所用到的命令并不会在前面添加 sudo 如果您不是通过 root 登陆请在命令前添加 sudo

wget -qO - https://matrix.org/packages/debian/repo-key.asc | apt-key add -

首先安装包以添加存储库,以添加最新版本的 matrix-synapse 的存储库。

apt install software-properties-common
add-apt-repository https://matrix.org/packages/debian/

使用下面的apt命令更新存储库并升级所有软件包。

apt update
apt upgrade

如果在更新或升级时出现错误找不到包,请尝试以下命令。这是 sources.list 文件缺少 “http” 的支持。详细解决方案 :链接

apt install apt-transport-https

apt update
apt upgrade

如下所示。安装包名为 matrix-synapse

apt install matrix-synapse

在安装过程中,它会询问 Matrix 服务器名称,输入你的域名如 message.example.com

注意!请输入域名,不要留空直接下一步

如果您想通过匿名数据报告向团队提供有关您的设置的信息,请选择“ yes ”,否则请将其保留为“ no ”。

Synapse 安装完成后,启动该服务并设置在系统启动时自启动(开机启动)。

systemctl start matrix-synapse.service
systemctl enable matrix-synapse.service

Synapse 现在使用端口 ‘8008’ 和 ‘8448’ 上的默认配置启动并运行。 使用netstat命令检查打开的端口。

netstat -plntu

(您可能需要首先下载 net-tools 才能使用 netstat,并使用以下命令 apt install net-tools )

Ⅱ. 配置 Synapse。

在 Synapse 安装之后,我们将其配置为在本地 IP 地址下运行,并禁用了 Synapse 注册,并启用registration-shared-secret

在编辑主服务器配置之前,我们需要使用以下命令生成共享密钥。

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1

你会得到一个生成的密钥。然后将密钥先复制记下到 homeserver 配置文件中。如果启用用户注册,请在 enable_registration: False 更改为 enable_registration: True

vim /etc/matrix-synapse/homeserver.yaml
enable_registration: False
registration_shared_secret: “输入你记下的密钥”

检查侦听器和联合端口

现在检查 HTTP 和 HTTPS 侦听器端口 “8008” 以及联合端口 “8448” 是否绑定到IP地址 0.0.0.0(而不是 127.0.0.1。同样在 /etc/matrix-synapse/homeserver.yaml 配置文件中。

port: 8448
    bind_addresses:
      - '0.0.0.0'

    - port: 8008
    bind_addresses: ['0.0.0.0']

保存并退出。

重启您的 Synapse 服务。

systemctl restart matrix-synapse.service

使用以下命令检查 homeserver 服务。

netstat -plntu

您将获得 Synapse 服务现在在本地 IP 地址。我们已经完成了 Synapse 的安装和配置。

Ⅲ. 安装 NGINX 并配置 SSL 。

apt install nginx

新建 NGINX 的配置文件。

vim /etc/nginx/conf.d/message.example.com.conf

message.example.com.conf 可以你的服务器名字。

更多配置请查看 NGINX 的文档,这里不多表述。 Nginx 配置教程

Matrix 客户端发出连接到 Synapse 的请求。您需要配置 Nginx 以侦听这些请求并将它们传递给Synapse,后者正在端口上进行本地侦听。

将以下内容复制并粘贴到文件中。vim /etc/nginx/conf.d/message.example.com.conf

server {
    server_name message.example.com;
    
    location / {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

软件包提供的默认示例站点配置。如果你不使用,就请删除它:

mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.disabled

运行该命令测试配置文件中的语法错误。

nginx -t

根据错误输出更正语法(如果有)。如果未报告任何错误,请使用systemctl重新加载Nginx以使更改生效。

systemctl reload nginx

要使用 Let’s Encrypt 的加密证书完成 Nginx 的安全保护,可以用 https://certbot.eff.org/ 来进行自动化配置。全部完成之后,你的 message.example.com.conf 看起来会是这样。 如何安装
Let’s Encrypt 加密证书请看 Debian 9 ,NGINX 安装 Let’s Encrypt 加密证书

server {
    server_name message.example.com;

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/message.example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/message.example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    location / {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

设置好 Let’s Encrypt 的加密后,您可以继续配置防火墙,以便 Synapse 与其他主机服务器进行通信所需的流量。

Ⅳ. 设置防火墙。

客户端流量通过 HTTPS 端口连接到 Synapse 443(已在防火墙中从Nginx指南打开)。但是,来自其他服务器的流量直接连接到端口上的 Synapse 8448 而不通过Nginx代理,因此您还需要允许此流量通过防火墙。

ufw allow ssh
ufw allow http
ufw allow https
ufw allow 8448

start 检查UFW的状态。

ufw enable
ufw status

它应该如下所示:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx Full                 ALLOW       Anywhere                  
8448                       ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx Full (v6)            ALLOW       Anywhere (v6)             
8448 (v6)                  ALLOW       Anywhere (v6)

. 创建一个用户。

在此阶段,Synapse homeserver 安装和配置已完成。在这一步中,我们需要从服务器上的命令行添加一个新的 Matrix  用户。要创建新的 Matrix  用户,请运行以下命令。

register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008

现在,您需要输入用户名,密码,并确定用户是否具有管理员权限。我们创建了一个具有管理员权限的新 Matrix  用户。

Ⅵ. 选择客户端登陆。

这里以 Riot 为例。

发表评论

电子邮件地址不会被公开。 必填项已用*标注