Сеть сервера VideoGrace
Сетевые настройки определяют, по какому адресу клиенты подключаются к серверу, какие порты используются для панели, WebSocket/WSS и AV-трафика, а также как сервер доступен из локальной сети или интернета.
Основные компоненты сетевого доступа
| Компонент | Назначение |
|---|---|
| Адрес сервера | DNS-имя или IP, который указывают клиенты |
| TCP-порт сервера | Панель администратора, web-клиент, API, WebSocket/WSS |
| UDP-порты трансляторов | Media core для native-клиентов, WSMedia bridge и recorder |
| UDP-порты WebRTC | ICE/DTLS/SRTP для браузерных WebRTC-клиентов |
| TLS-сертификат | Доверенное HTTPS/WSS-подключение |
Для публичного сервера рекомендуется использовать домен, например vc.example.com, и сертификат Let's Encrypt. См. развертывание на VPS со своим доменом.
Адрес сервера
Адрес сервера должен быть стабильным и доступным всем клиентам, которые будут подключаться к системе. Для внешних пользователей это обычно публичный DNS-адрес. Для закрытого корпоративного контура это может быть внутренний FQDN.
Важно: адрес в настройках сервера должен совпадать с адресом, на который выпущен TLS-сертификат. Иначе браузеры и клиенты могут не доверять соединению.
TCP и WSS
TCP-порт сервера используется для:
- панели администратора;
- страниц конференций;
- загрузки клиентских установщиков;
- API;
- управляющих WebSocket-соединений;
- fallback-передачи медиа через WSS, если UDP недоступен.
Обычно используется порт 443/tcp.
UDP-порты
UDP-порты используются двумя слоями media path:
- Translator-порты, например
5060/udpили диапазон изvgserver.conf, обслуживают существующий media core: native-клиенты, WSMedia fallback, recorder и внутреннюю маршрутизацию RTP/RTCP. - WebRTC-порты, например
43000-43999/udp, обслуживают ICE/DTLS/SRTP для браузерных клиентов.
Если UDP закрыт, web-клиент в режиме auto может перейти на WSS/WSMedia fallback, но задержка и нагрузка на TCP-путь будут выше. Для production-сценария откройте оба UDP-диапазона.
Точные значения диапазонов зависят от конфигурации сервера. Для WebRTC обычно используются настройки WebRTC.PortRangeBegin / WebRTC.PortRangeEnd или переменные окружения VG_WEBRTC_PORT_RANGE_BEGIN / VG_WEBRTC_PORT_RANGE_END.
Bind address и Advertise address
В media-настройках важно различать адрес, на котором сервер слушает сокет, и адрес, который он сообщает клиентам.
Bind address — локальный адрес прослушивания. Значение 0.0.0.0 является нормальной настройкой: сервер слушает все сетевые интерфейсы. Указывать конкретный IP нужно только если сервер должен принимать media-трафик строго на одном интерфейсе, например при сложной multi-homed схеме или разделении внутренних и внешних сетей.
Advertise address — адрес, который попадает к клиентам как media endpoint. Для публичного RTC/WebRTC-доступа здесь должен быть внешний адрес, реально достижимый с клиентских устройств. На практике для RTC-кандидатов надежнее указывать стабильный публичный IP, а не DNS-имя: на отдельных мобильных сетях и браузерах DNS-резолвинг ICE-кандидата может ломаться или давать задержки, из-за чего WebRTC-сессия не подключается и уходит в fallback.
Доменное имя по-прежнему рекомендуется использовать для HTTPS/WSS, web-клиента, API и TLS-сертификата. Для media Advertise address проверяйте подключение с внешних сетей, особенно с iOS и мобильного интернета.
NAT и firewall
Если сервер находится за NAT, пробросьте TCP-порт сервера, весь UDP-диапазон трансляторов и весь UDP-диапазон WebRTC на тот же внутренний адрес. Номера портов желательно сохранять без трансляции.
Проверьте два уровня правил:
- firewall операционной системы;
- firewall или security group облачного провайдера.
Проверка
С внешнего компьютера проверьте:
curl -I https://<адрес_сервера>
Затем выполните тестовую конференцию с двумя клиентами из разных сетей. Если панель открывается, но медиа нестабильно, в первую очередь проверяйте UDP-порты и сетевые ограничения между клиентами и сервером.
Для WebRTC в серверных логах должны появляться события WebRTC offer received, WebRTC local ICE candidate, WebRTC peer state changed и RTP trace-события. Если ICE не переходит в connected, проверяйте внешний адрес сервера и UDP-диапазон WebRTC.
Связанные разделы: обеспечение доступности сервиса, требования к сети, подключение пользователей.