STUN-обход NAT
Если оператор не выдаёт постоянный публичный порт, STUN-обход получает публичный адрес и порт через NAT hole punching, и внутренние сервисы становятся доступны снаружи.
Возможности
- TCP / UDP-обход и keep-alive;
- автоматическое создание проброса портов на роутере через UPnP / NAT-PMP;
- встроенная переадресация: пробитый публичный порт напрямую направляется на внутреннюю цель;
- при смене публичного адреса или порта запускаются Webhook и скрипты, которые можно использовать для обновления DNS, уведомления клиентов и т. п.
Совместное использование
Публичный порт, полученный через STUN, обычно меняется, поэтому рекомендуется сочетать его с:
- Динамическим DNS или Webhook / скриптами, чтобы синхронизировать новый адрес с DNS;
- Веб-службами для HTTPS-входа.
Ограничения
Если WAN-порт роутера находится за NAT уровня оператора (100.64.0.0/10), внешние клиенты не смогут подключиться к пробитому порту: это ограничение самой сети. В этом случае используйте Tailscale, frp или Cloudflare Tunnel.
Рекомендации по развёртыванию
STUN должен напрямую слушать порты хоста, поэтому для Docker рекомендуется --network host.