Если вы хотите, чтобы ваши клиенты обнаруживали серверы только в локальной сети, вы можете выполнять вещание на серверах и прослушивание клиентов. Поскольку они находятся в одной и той же локальной сети, NAT не должен быть нужен.
В противном случае вам необходимо настроить менеджеры (серверы для управления) в Интернете. Серверы должны зарегистрироваться у менеджера, клиенты запрашивают у менеджера информацию о серверах. Поскольку менеджеры знают общедоступные IP-адреса как серверов, так и клиентов, NAT должен быть легким, если вы считаете, что ваши менеджеры STUN серверы.
Самый простой менеджер может быть просто оберткой над базой данных / Redisс таблицей метаданных имени сервера / ip сервера / сервера. Подробная информация о том, как его реализовать, зависит от вашего стека навыков. Для включения STUN есть сервер и клиент STUN с открытым исходным кодом, которые вы можете просто подобрать, например, coturn . Независимо от того, поместите ли вы сервер STUN в своего менеджера или нет, ваши менеджеры и серверы STUN должны публиковаться в Интернете (включая AWS), где они имеют свои собственные общедоступные IP-адреса.
Или вы можете разрешитьменеджеры для ретрансляции сообщений для серверов и клиентов. Но этот способ может быть слишком сложным по сравнению с предыдущим. Я бы не рекомендовал.