Как общаться двум компам которые находятся за своими NAT?

Есть два компа (комп 1 и комп 2) которые находятся каждый за своим NAT'ом, есть промежуточный сервер на котором настроен iptables, так что он транслирует пакеты с одного компа на другой. Сейчас у компа 1 есть белый статический адрес, а у компа 2 его нету, они прекрасно общаются через промежуточный сервер. Но смысла в промежуточном сервере в такой схеме нет, а есть только тогда когда оба компа за NAT'ом, так вот задача состоит в том, что бы когда комп 1 будет за NAT'ом, то он должен отправить сообщение промежуточному серверу, что он онлайн и комп 2 может к нему подключаться. Как лучше организовать связь между двумя компами? Сколько портов использовать? Один и тот же порт для того что бы сообщить промежуточному серверу что комп 1 онлайн и по этому же порту передавать пакеты для компа 2, или же это должно быть два разных порта? И возможно ли вообще передавать всё это по одному порту? Инициировать подключение должен именно комп 1, так как задача в том, что бы комп 2 подключился к компу 1.
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ответы на вопрос 2
Assargin
@Assargin
Перед ответом смотрю наличие ✔ в ваших вопросах
NAT Traversal, STUN, TURN.

Совсем без чего-нибудь промежуточного с белым адресом, хотя бы чисто для первоначальной инициализации соединения и поиска "компов" друг другом - никак.
Даже в WebRTC в самом простом случае есть сигнальный сервер, через который пиры обмениваются кандидатами, и иногда получается без излишеств типа STUN/TURN, но зачастую только в идеальном мире.
Ответ написан
@antonwx
Zerotier поставьте и никакие велосипеды можно не изобретать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы