- Регистрация
- 21.07.20
- Сообщения
- 40.408
- Реакции
- 1
- Репутация
- 0
Привет, меня зовут Михаил Подивилов. Я специализируюсь на сетевых технологиях и преподаю в Сетевой академии Cisco.
Рассказываю, почему я использую Matrix вместо Telegram, как присоединиться к сети Matrix и настроить свой сервер.
Почему я использую Matrix вместо Telegram
На Хабре
Matrix — это открытый и децентрализованный протокол мгновенного обмена сообщениями, разрабатываемый энтузиастами из
У протокола существует полноценная реализация
Клиент
Чтобы не перечислять все преимущества, выделю некоторые из них, которые склонили меня к использованию этого протокола и мессенджера:
Почему не Jabber?
Потому что протокол XMPP переполнен многочисленными
Почему не Signal?
Потому что Signal не поддерживает децентрализацию.
Почему не Telegram?
Потому что исходные коды протокола MTProto, который используется в Telegram, никогда не были опубликованы.
Конечно, Telegram больше любят за его UI/UX — но Element на данный момент почти ничем не уступает Telegram: там есть и мосты, и комнаты, и боты, и даже стикеры — а вот людей относительно мало. К сожалению, проекту в действительности не хватает хорошего пиара.
Как подключиться к Matrix через чужой сервер
Это очень просто — просто используйте
Как подключиться к Matrix через свой сервер
Для этого необходимо настроить свой HomeServer на Synapse — официальном сервере Matrix. Ниже я привёл инструкции, как это можно сделать.
Процесс настройки сервера Synapse мало чем отличается на разных дистрибутивах Linux — основное отличие заключается в том, какую команду необходимо отдать операционной системе, чтобы та поняла, какой пакетный менеджер нужно использовать для установки.
Я буду объяснять на примере дистрибутива Ubuntu Server 20.04.
Шаг 1. Установка сервера Synapse
Подготавливаем нашу рабочую среду к установке сервера Synapse:
sudo apt install -y lsb-release wget apt-transport-https
sudo wget -qO /usr/share/keyrings/matrix-org-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg]
sudo tee /etc/apt/sources.list.d/matrix-org.list
Загружаем непосредственно сам Synapse:
sudo apt update
sudo apt install matrix-synapse-py3
В процессе установки пакета будет запрошено название доменного имени, на котором будет располагаться ваш сервер Synapse. Как правило, это домен вида matrix.example.com, где A-запись поддомена matrix указывает непосредственно на ваш сервер с запущенным Synapse.
После установщик спросит вас, хотите ли вы отправлять анонимную статистику разработчикам.
На этом установка сервера Synapse завершена. Теперь необходимо включить Synapse при загрузке операционной системы:
systemctl start matrix-synapse
systemctl enable matrix-synapse
Мы также можем убедиться, как идут дела у сервера и работает ли он в принципе:
systemctl status matrix-synapse
ss -plnt
Шаг 2. Настройка сервера Synapse
Используйте текстовый редактор (например, nano или vim) и откройте файл /etc/matrix-synapse/homeserver.yaml для редактирования.
Найдите строку listeners: и приведите секцию в следующий вид:
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
bind_addresses: ['127.0.0.1']
resources:
- names: [client, federation]
compress: false
Отключите возможность регистрации новых пользователей на вашем сервере, если сервером будете пользоваться только вы:
enable_registration: false
Сгенерируйте случайную строку и поместите её в раздел registration_shared_secret:
registration_shared_secret: "…"
После сохранения файла с настройками не забудьте перезапустить Synapse:
systemctl restart matrix-synapse
Шаг 3. Настройка Let's Encrypt
Сертификат необходим в том случае, если ваш сервер не находится за Cloudflare или другим подобным сервисом.
Для начала необходимо установить certbot — программу для выпуска сертификатов:
sudo apt install certbot -y
И выпустить сертификат для вашего доменного имени:
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d matrix.example.com
Готово. Ваш сертификат теперь находится по адресу /etc/letsencrypt/live/matrix.example.com/.
Шаг 4. Настройка Nginx в качестве Reverse Proxy
В этой конфигурации мы будем использовать 80 порт для незащищённого соединения, 443 — для защищённого и 8448 для подключения к федерации Matrix.
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
# Nginx by default only allows file uploads up to 1M in size
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
client_max_body_size 10M;
}
}
server {
listen 8448 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Не забудьте перезагрузить Nginx после внесения изменений в конфигурацию:
systemctl restart nginx
Шаг 5. Регистрация нового пользователя
Теперь зарегистрируйте нового пользователя, под которым вы будете заходить на сервер:
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml
New user localpart [root]: username
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success!
Готово.
Мои поздравления, теперь вы — полноценный участник сети Matrix с собственным сервером.
Давайте поговорим
Вместе с моим коллегой по цеху мы организовали чат для пользователей Хабра, чтобы вы могли проверить протокол Matrix в действии.
You must be registered for see links
— замечательный, но недооценённый децентрализованный протокол обмена сообщениями с прилагающимся к нему клиентом
You must be registered for see links
, который я считаю достойной и жизнеспособной альтернативой Telegram.Рассказываю, почему я использую Matrix вместо Telegram, как присоединиться к сети Matrix и настроить свой сервер.
Почему я использую Matrix вместо Telegram
На Хабре
You must be registered for see links
You must be registered for see links
про Matrix, но я считаю, что этому протоколу нужна бо́льшая огласка: чем больше людей о нём узнает и начнёт его использовать — тем лучше как для протокола, так и для айти-тусовки.Matrix — это открытый и децентрализованный протокол мгновенного обмена сообщениями, разрабатываемый энтузиастами из
You must be registered for see links
.
You must be registered for see links
, равно как и клиент-серверная часть (
You must be registered for see links
как сервер и
You must be registered for see links
как клиент) находятся в открытом доступе — в отличие от Telegram, который в настоящее время в открытом доступе держит только свой клиент, что вызывает немало вопросов по поводу
You must be registered for see links
использования протокола
You must be registered for see links
.У протокола существует полноценная реализация
You must be registered for see links
, которая позволяет бесшовно общаться, организовывать общие комнаты для общения пользователям разных серверов, совершать видео- и аудиозвонки.Клиент
You must be registered for see links
обладает всеми современными функциями, которые присущи другим популярным мессенджерам (за исключением голосовых сообщений).Чтобы не перечислять все преимущества, выделю некоторые из них, которые склонили меня к использованию этого протокола и мессенджера:
- Децентрализация — возможность поднять свой сервер для подключения к сети Matrix
- Приватность — сквозное шифрование
- Групповые аудио- и видеозвонки для пользователей с разных серверов
- Отличное API для ботов
- Полнофункциональный веб-клиент
- Консольные клиенты
Почему не Jabber?
Потому что протокол XMPP переполнен многочисленными
You must be registered for see links
-ами, которые так и не были никогда не реализованы во многих его клиентах. Например, до сих пор не существует ни одного Jabber-клиента c нормальной синхронизацией истории с сервером.Почему не Signal?
Потому что Signal не поддерживает децентрализацию.
Почему не Telegram?
Потому что исходные коды протокола MTProto, который используется в Telegram, никогда не были опубликованы.
Конечно, Telegram больше любят за его UI/UX — но Element на данный момент почти ничем не уступает Telegram: там есть и мосты, и комнаты, и боты, и даже стикеры — а вот людей относительно мало. К сожалению, проекту в действительности не хватает хорошего пиара.
Как подключиться к Matrix через чужой сервер
Это очень просто — просто используйте
You must be registered for see links
Element или его
You must be registered for see links
версию. Регистрация не займёт у вас больше минуты.Как подключиться к Matrix через свой сервер
Для этого необходимо настроить свой HomeServer на Synapse — официальном сервере Matrix. Ниже я привёл инструкции, как это можно сделать.
Процесс настройки сервера Synapse мало чем отличается на разных дистрибутивах Linux — основное отличие заключается в том, какую команду необходимо отдать операционной системе, чтобы та поняла, какой пакетный менеджер нужно использовать для установки.
Я буду объяснять на примере дистрибутива Ubuntu Server 20.04.
Шаг 1. Установка сервера Synapse
Подготавливаем нашу рабочую среду к установке сервера Synapse:
sudo apt install -y lsb-release wget apt-transport-https
sudo wget -qO /usr/share/keyrings/matrix-org-archive-keyring.gpg
You must be registered for see links
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg]
You must be registered for see links
$(lsb_release -cs) main" |sudo tee /etc/apt/sources.list.d/matrix-org.list
Загружаем непосредственно сам Synapse:
sudo apt update
sudo apt install matrix-synapse-py3
В процессе установки пакета будет запрошено название доменного имени, на котором будет располагаться ваш сервер Synapse. Как правило, это домен вида matrix.example.com, где A-запись поддомена matrix указывает непосредственно на ваш сервер с запущенным Synapse.
После установщик спросит вас, хотите ли вы отправлять анонимную статистику разработчикам.
На этом установка сервера Synapse завершена. Теперь необходимо включить Synapse при загрузке операционной системы:
systemctl start matrix-synapse
systemctl enable matrix-synapse
Мы также можем убедиться, как идут дела у сервера и работает ли он в принципе:
systemctl status matrix-synapse
ss -plnt
Шаг 2. Настройка сервера Synapse
Используйте текстовый редактор (например, nano или vim) и откройте файл /etc/matrix-synapse/homeserver.yaml для редактирования.
Найдите строку listeners: и приведите секцию в следующий вид:
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
bind_addresses: ['127.0.0.1']
resources:
- names: [client, federation]
compress: false
Отключите возможность регистрации новых пользователей на вашем сервере, если сервером будете пользоваться только вы:
enable_registration: false
Сгенерируйте случайную строку и поместите её в раздел registration_shared_secret:
registration_shared_secret: "…"
После сохранения файла с настройками не забудьте перезапустить Synapse:
systemctl restart matrix-synapse
Шаг 3. Настройка Let's Encrypt
Сертификат необходим в том случае, если ваш сервер не находится за Cloudflare или другим подобным сервисом.
Для начала необходимо установить certbot — программу для выпуска сертификатов:
sudo apt install certbot -y
И выпустить сертификат для вашего доменного имени:
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d matrix.example.com
Готово. Ваш сертификат теперь находится по адресу /etc/letsencrypt/live/matrix.example.com/.
Шаг 4. Настройка Nginx в качестве Reverse Proxy
В этой конфигурации мы будем использовать 80 порт для незащищённого соединения, 443 — для защищённого и 8448 для подключения к федерации Matrix.
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
# Nginx by default only allows file uploads up to 1M in size
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
client_max_body_size 10M;
}
}
server {
listen 8448 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Не забудьте перезагрузить Nginx после внесения изменений в конфигурацию:
systemctl restart nginx
Шаг 5. Регистрация нового пользователя
Теперь зарегистрируйте нового пользователя, под которым вы будете заходить на сервер:
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml
You must be registered for see links
New user localpart [root]: username
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success!
Готово.
Мои поздравления, теперь вы — полноценный участник сети Matrix с собственным сервером.
Давайте поговорим
Вместе с моим коллегой по цеху мы организовали чат для пользователей Хабра, чтобы вы могли проверить протокол Matrix в действии.
You must be registered for see links



