From 4a8d94eb63676dbd348a8c4201346ac5bf13adc6 Mon Sep 17 00:00:00 2001 From: host Date: Thu, 9 Apr 2026 20:55:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?/=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vps+tun.md | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 vps+tun.md diff --git a/vps+tun.md b/vps+tun.md new file mode 100644 index 0000000..113e732 --- /dev/null +++ b/vps+tun.md @@ -0,0 +1,151 @@ + + +--- + +# гайд (Часть 2): Вывод Matrix в интернет и настройка Звонков (Coturn) + +Без этой настройки ваш Matrix будет работать только в локальной сети Wi-Fi, а телефоны с мобильным интернетом не смогут созваниваться по видео из-за жесткого NAT операторов связи. + +**Архитектура:** +* **VPS-сервер:** Дешевый облачный сервер с белым IP (работает как входная дверь). +* **Caddy:** Проксирует трафик в домашнюю сеть (через VPN/Tailscale) и отдает файлы `.well-known` для Федерации. +* **Coturn:** Ретранслирует аудио и видео трафик между телефонами. + +--- + +### 🛡 ЭТАП 1: Настройка Reverse Proxy (Caddy на VPS) + +Заходим по SSH на ваш облачный VPS-сервер. +Открываем конфигурационный файл Caddy: + +```bash +sudo nano /etc/caddy/Caddyfile +``` + +Добавляем блок для вашего домена (замените `xir.alexrus1234.ru` на свой домен, а `172.20.6.4` на IP вашего домашнего контейнера Synapse в сети Tailscale): + +```caddy +xir.alexrus1234.ru { + # 1. Отдаем паспорт для КЛИЕНТОВ (Element, FluffyChat) + handle_path /.well-known/matrix/client { + header Access-Control-Allow-Origin "*" + header Content-Type "application/json" + respond `{"m.homeserver":{"base_url":"https://xir.alexrus1234.ru"}}` + } + + # 2. Отдаем паспорт для СЕРВЕРОВ (Федерация: связь с matrix.org и другими) + handle_path /.well-known/matrix/server { + header Content-Type "application/json" + respond `{"m.server":"xir.alexrus1234.ru:443"}` + } + + # 3. Проксируем основной трафик в домашний LXC-контейнер через VPN + reverse_proxy 172.20.6.4:8008 { + header_up X-Forwarded-For {remote_host} + } +} +``` + +Сохраняем файл и перезапускаем Caddy: +```bash +sudo systemctl reload caddy +``` +*(Теперь вы можете зайти в веб-версию Element или приложение на телефоне, указав ваш домен `https://ВАШ_ДОМЕН.ru` в поле "Домашний сервер").* + +--- + +### 📞 ЭТАП 2: Настройка ретранслятора звонков (Coturn на VPS) + +Чтобы видеозвонки работали через мобильный LTE, нам нужен STUN/TURN сервер на белом IP. Мы повесим его на нестандартные порты, чтобы не конфликтовать с другими сервисами на VPS (например, Headscale). + +**1. Установка Coturn:** +```bash +sudo apt update && sudo apt install coturn -y +``` + +**2. Настройка:** +Открываем конфиг: +```bash +sudo nano /etc/turnserver.conf +``` +Стираем всё содержимое и вставляем этот компактный блок (замените IP, Домен и Пароль на свои!): + +```ini +# Нестандартные порты прослушивания +listening-port=3479 +tls-listening-port=5349 + +# ВНЕШНИЙ БЕЛЫЙ IP ВАШЕГО VPS (Обязательно!) +external-ip=193.109.79.180 + +# Безопасный диапазон портов для ретрансляции аудио/видео +min-port=50000 +max-port=52000 + +# Авторизация (Обязательно для Matrix) +use-auth-secret +# Придумайте сложный пароль, мы впишем его в Synapse +static-auth-secret=ТвойСуперСекретныйПарольДляЗвонков +realm=xir.alexrus1234.ru + +# Отключаем ненужное и небезопасное +no-tcp-relay +no-cli +``` + +**3. Открываем порты в фаерволе (Nftables на VPS):** +Добавляем в `/etc/nftables.conf` разрешения для новых портов: +```nftables +udp dport { 3479, 5349, 50000-52000 } accept +tcp dport { 3479, 5349 } accept +``` +Перезагружаем фаервол: `sudo systemctl restart nftables`. + +**4. Запуск Coturn:** +```bash +# Разрешаем демону запускаться (актуально для Debian) +sudo sed -i 's/#TURNSERVER_ENABLED=1/TURNSERVER_ENABLED=1/' /etc/default/coturn + +sudo systemctl restart coturn +sudo systemctl status coturn # Убедитесь, что статус active (running) +``` + +--- + +### 🧠 ЭТАП 3: Знакомим домашний Synapse с Coturn + +Возвращаемся на домашний сервер, в контейнер с установленным Synapse (`172.20.6.4`). Нам нужно сказать Матриксу, чтобы он раздавал настройки TURN-сервера звонящим клиентам. + +Открываем конфиг Synapse: +```bash +nano /opt/synapse/data/homeserver.yaml +``` + +Находим (или добавляем в конец) блок `turn_uris` и приводим его к такому виду: + +```yaml +turn_uris: + - "turn:ВАШ_ДОМЕН.ru:3479?transport=udp" + - "turn:ВАШ_ДОМЕН.ru:3479?transport=tcp" + - "turns:ВАШ_ДОМЕН.ru:5349?transport=udp" + - "turns:ВАШ_ДОМЕН.ru:5349?transport=tcp" + +# Тот самый пароль из turnserver.conf на VPS: +turn_shared_secret: "ТвойСуперСекретныйПарольДляЗвонков" +turn_user_lifetime: 86400000 +turn_allow_guests: true +``` + +Сохраняем конфиг и перезапускаем ядро: +```bash +systemctl restart matrix-synapse +``` + +--- + +**🎉 Готово!** +Попробуйте отключить Wi-Fi на телефоне (оставив только мобильный интернет) и позвонить с компьютера на телефон через классический клиент Element или FluffyChat. Видео и звук пройдут идеально, а VPS сработает как ретранслятор! + +*(Примечание: новый клиент Element X на данный момент не поддерживает классические P2P звонки и требует установки тяжелого сервера LiveKit. Используйте классические клиенты для звонков 1-на-1).* + +--- \ No newline at end of file