Имеется облачный сервер на REG.RU. Снаружи доступен на любом порту, UDP/TCP. На нем хостится Wireguard и другие сетевые службы, все работает. Но почему-то не устанавливается p2p соединение webRTC.
STUN выдает корректный внешний адрес, по которому этот сервер доступен, но статус соединение FAILED.
На другом сервере, у другого хостинг провайдера, все работает отлично, соединение устанавливается при тех же условиях (тот же клиент, та же конфигурация сети со стороны клиента).
Постарался понять разницу: на "рабочем" сервере, внешний IP привязан прямо к интерфейсу и виден через ifconfig
На VPS от REG.RU, через ifconfigвиден только локальный адрес.
Через утилиту pystun проверил тип NAT, за которым находятся сервера.
На рабочем NAT Type: Full Cone
На проблемном NAT Type: Symmetric NAT
Но если он находится за симметричным NAT, то почему он доступен снаружи, на любом порту? А если он доступен, то почему не устанавливается соединение?
Сервер сам по себе клиент. Его задача получать видео по RTSP и транслировать в браузер, при помощи WebRTC, он сам по себе и сигнальный и клиент. Т.е. WebRTC соединение происходит между сервером и браузером, что, при уловии того, что сервер доступен снаружи, должно работать без проблем.