Обычно NAT перед клиентом на уровне TCP сможет определить, что было установлено соединение на UDP. Тем не менее, NAT на стороне клиента должен быть настроен на прием пакетов UDP от порта сервера SRC, а затем направлять их на внутренний IP-адрес назначения (клиент). Важно помнить, если NAT - это тот, кто звонит, а кто звонит. NAT различаются по реализации и возможностям, поэтому, возможно, вам захочется реализовать общее простое в реализации решение в зависимости от ваших потребностей.
Вы правы, полагая, что в вашем случае клиент не сможет получать поток UDP в информации. В вашем случае ваш клиент должен будет отправить свой WAN IP на ваш сервер, чтобы инициировать соединение UDP. Поиск ваших клиентов WAN IP может быть сложным, но есть сайты, которые помогут вам определить ваш WAN IP, вернув его на текстовой странице.
Если соединение UDP создается после соединения TCP сервером, открывающим сокет для клиента на известный порт UDP, то UPnP, возможно, стоит изучить, что позволит вам автоматически настроить переадресацию портов на NAT это только если ваш NAT поддерживает UPnP, как в случае с маршрутизаторами DSL.
Обходной путь для клиента - открыть сокеты TCP и UDP для сервера. Так как клиент за NAT инициировал соединение, состояния соединений TCP и UDP будут добавлены в таблицу соединений NAT.