Сетевые требования
Эта страница генерируется скриптом scripts/gen-network-requirements.sh из вывода mpbx ports --markdown. Не редактируйте её вручную: измените таблицу в pbx/bin/mpbx/src/ports_cli.rs и снова запустите скрипт.
Ту же таблицу можно вывести на установленном сервере командами mpbx ports (текст) или mpbx ports --markdown. Команда mpbx ports --config /etc/mpbx/mpbx.toml (или при заданной переменной MPBX_CONFIG) сначала выводит список слушателей, которые ваша конфигурация действительно открывает, из разделов [http], [tls], [sip], [metrics] и [ice], а затем таблицу. Команда не открывает сокетов и ничего не меняет. Чтобы проверить, что слушатели запущены на сервере, выполните mpbx doctor.
Правила, которые действуют для любой установки
- Открывайте наружу только входящие строки, которые вам нужны. Базы данных, кэш, ClickHouse и порт метрик остаются в закрытой сети.
- Телефонам, браузерам и транкам нужен UDP, TCP или TLS до SIP-портов, которые они используют. Межсетевой экран, который блокирует SIP-порты, не даёт телефонам зарегистрироваться.
- Медиа использует один диапазон UDP в обоих направлениях. Оставьте диапазон открытым для телефонов и транков, которые передают медиа, и настройте NAT для него, если АТС стоит за маршрутизатором.
- Публичный HTTPS нужен для каналов обмена сообщениями (WhatsApp, Messenger, Telegram), виджета живого чата и браузерного софтфона. Meta, Telegram и виджет должны обращаться к адресу на порту 443 с сертификатом публичного центра сертификации.
- В установках в изолированной среде остаются только входящие строки собственных пользователей и внутренние строки. Исходящие строки, которым нужен интернет, там не работают; см. страницу об установке в изолированной среде.
Порты по направлению
| Направление | Протокол | Порт | Функция | Кто подключается | Задаётся |
|---|---|---|---|---|---|
| входящий | https | 443 (адрес в [http] listen) | Веб-клиент, REST API, вход в систему, URL автоматической настройки | Браузеры, софтфоны, настольные телефоны (автоматическая настройка), администраторы | [http] listen, [setup] fqdn |
| входящий | tcp | 80 | Простое перенаправление HTTP и проверка ACME HTTP-01 | Публичный интернет (центр сертификации) | автоматические сертификаты (настройки ACME в [tls]) |
| входящий | udp | 5060 (пример; задаётся listen_udp) | Сигнализация SIP по UDP | Настольные телефоны, софтфоны в локальной сети, SIP-транки | [sip] listen_udp |
| входящий | tcp | 5060 (пример; задаётся listen_tcp) | Сигнализация SIP по TCP | Настольные телефоны, SIP-транки | [sip] listen_tcp |
| входящий | tls | 5061 (задаётся listen_tls) | SIP через TLS (sips:) | Настольные телефоны, софтфоны, SIP-транки, которым нужен TLS | [sip] listen_tls |
| входящий | https | 443 через обратный прокси, путь /sip (задаётся listen_ws, listen_wss) | SIP через WebSocket и защищённый WebSocket (браузерный софтфон) | Браузерные софтфоны | [sip] listen_ws, listen_wss, trusted_proxies |
| входящий | udp | 10000-59999 (диапазон rtpengine; используется в обоих направлениях) | Медиа (RTP и SRTP, аудио и видео) | Телефоны, софтфоны, браузеры, транки | rtpengine RTPE_PORT_MIN / RTPE_PORT_MAX |
| входящий | tcp+udp | 3478 (STUN и TURN); 5349 для TURN через TLS | Медиа-ретранслятор для обхода NAT (STUN и TURN) | Браузеры и софтфоны за NAT | [ice] stun_urls, [ice] turn_urls |
| входящий | udp | 5060 на адрес 224.0.1.75 (только локальная сеть; не маршрутизируется) | Обнаружение телефонов plug-and-play (multicast) | Настольные телефоны в том же сегменте локальной сети | [provisioning] pnp_listener |
| внутренний | tcp | 9464 | Метрики Prometheus, /healthz и /readyz | Только узел мониторинга; никогда не публикуется | [metrics] listen |
| внутренний | tcp | 5432 | База данных (PostgreSQL) | Только службы АТС | строка подключения к базе данных |
| внутренний | tcp | 6379 | Кэш и шина (Valkey) | Только службы АТС | строка подключения к кэшу |
| внутренний | tcp | 8123 | История звонков и аналитика (ClickHouse HTTP) | Только службы АТС | URL ClickHouse |
| исходящий | https | 443 | Push-уведомления через ретранслятор MonoPbx | Хост ретранслятора (публичный адрес ретранслятора) | настройки ретранслятора ([push]); для установок в изолированной среде не нужны |
| исходящий | https | 443 | Центр сертификации (ACME) | Центр сертификации | только для автоматических сертификатов |
| исходящий | tcp+udp | 5060 (UDP, TCP) или 5061 (TLS), как указано у транка | SIP-транки и провайдеры | SIP-провайдер | настройки транка |
| исходящий | udp | 10000-59999 (исходящий диапазон) | Медиа к транкам и удалённым конечным точкам | SIP-провайдер и удалённые конечные точки | диапазон rtpengine |
| исходящий | https | 443 | SMS через провайдеров по HTTPS и провайдеров ИИ (со своим ключом) | Публичный HTTPS-адрес провайдера | настройки провайдера |
| исходящий | https | 443 (graph.facebook.com, api.telegram.org) | Каналы обмена сообщениями (Meta WhatsApp и Messenger, Telegram) | Провайдер канала; провайдер обращается обратно на входящий HTTPS-адрес | настройки канала (омниканальность) |
| исходящий | tcp | 2775 (по умолчанию; задаётся SMSC) | SMS через SMPP | SMS-центр | host, port провайдера SMPP |
| исходящий | tcp | 587 (STARTTLS) или 465 (TLS) | Электронная почта (голосовая почта, уведомления, отчёты) | Почтовый сервер | настройки SMTP в [email] или у провайдера |
| исходящий | tcp+udp | 53 | DNS-запросы для SIP и сертификатов | DNS-резолвер | системный резолвер хоста |
| исходящий | udp | 123 | Синхронизация времени (рекомендуется) | Сервер NTP; на изолированной площадке подойдёт локальный | служба NTP хоста |
В каждой строке указан ключ настройки, который её задаёт. Функция, которая отключена, не открывает ни одной своей строки.