LINUX.ORG.RU

Как соединить два компа за натом

 


0

4

Как устанавливается соединение между двумя компами, которые находятся за натом с помощью сервера. Как я вижу - 1 и 2й компы подключаются к серверу и далее как-то соединяются между собой, как это происходит с точки зрения протокола и программной реализации например?



Последнее исправление: bubvalet (всего исправлений: 1)

Вы творите какую-то дичь (с) как вы хотите их соединять, конкретнее что надо? А по делу куча вариантов (vnc, ssh, vps) + проброс портов NAT

pavel_l
()
Ответ на: комментарий от pavel_l

Да мне ничего соединять не надо)), а понять как это может работать, как с помощью сервера какого-то один комп может подключиться к другому за натом(не через этот сервер данные будут ходить, а напрямую). Мне в голову только пример со звонками приходит. Мне нужно, условно, позвонить на комп 2 с 1го, 1 комп не может напрямую установить соединение со 2м т.к. он за натом, поэтому они оба подключаются к третьей стороне и с помощью нее как-то соединяются, как?

bubvalet
() автор топика
Последнее исправление: bubvalet (всего исправлений: 2)
Ответ на: комментарий от NyXzOr

Для wireguard же надо хотя бы один белый IP?

Ну у топикстартера есть отдельный сервер. Если отдельного сервера с белым IP нет, то в общем случае никак.

Legioner ★★★★★
()
Ответ на: комментарий от NyXzOr

не понял вообще что это такое по описанию. Оно что, просто добавляет компы типа одну виртуальную сеть в одном аккаунте?

OpenMind ★★★★
()
Ответ на: комментарий от OpenMind

Расшифрую.

  1. Есть два компьютера, каждый в своей подсети и за роутером с нат.

  2. Есть сервер с белым ip.

Как можно установить соединение между двумя компьютерами из пункта 1?

Понятно, что друг к другу они обратится не могут (проброс портов и upnp не в счет). Понятно, что каждый из них должен установить соединение с сервером из пункта 2. Вопрос, что дальше? Сервер не должен роутить трафик, он, например, может сообщить номер сессии одного клиента другому, чтобы в дальнейшем уже трафик от одного клиента другому шел как бы как ответный. По моему, это делает rtp клиентах протокол ice.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

то есть насколько я понял, имея набор компов за очень серыми айпи, можно завести его в сеть с белым их Basic Free / ZeroTier Hosted Controller и они будут как бы одной сети? У меня просто есть мой сервер, и хотелось бы использовать его шире, но серый айпи мешает. Эта нанотехнология я так понимаю поможет?

OpenMind ★★★★
()
Ответ на: комментарий от OpenMind

Да нет, это реально нерешаемая задача.

можно сделать vpn но весь трафик будет идти через сервер с белым ip.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

Ты можешь попытаться пробить дырку в НАТ и в неё установить соединение по тому же VPN между этими компьютерами. Но это не гарантированно и готовых инструментов я не знаю. Только самому писать.

Legioner ★★★★★
()

Какой протокол прикладного уровня?

damix9 ★★★
()
Ответ на: комментарий от bubvalet

Им для этого не нужен сервер, комп 1 обращается к компу 2 по серому ip.

damix9 ★★★
()
Ответ на: комментарий от bubvalet

Для этого придумали stun, turn и ice.

Но суть одна. В общем случае суть одна - трафик через публично доступный сервер.

AVL2 ★★★★★
()
Ответ на: комментарий от rupert

Не думаю. Скорее всего, когда оба хоста за натом, это как разслучай, когда - direct connection cannot be established.

Is my traffic routed through your servers?

No.

Tailscale routes traffic over the shortest path possible. In most cases, this is a direct, peer-to-peer connection.

In cases where a direct connection cannot be established, devices will communicate by bouncing traffic off of one or more geographically distributed relay servers, called DERPs. The traffic that bounces through our relay servers is encrypted and no different security-wise than the other dozen hops your Internet packets already make when passing over the network from point A to B.

AVL2 ★★★★★
()
Ответ на: комментарий от Legioner

Черт их знает, как оно у них работает.

Tailscale includes advanced NAT traversal code that removes the need to open firewall ports to establish a connection. That means a computer behind one firewall, and a computer behind another firewall, both on dynamic IP addresses, can connect to each other even without making firewall configuration changes.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

Ну да, значит они это реализовали. Тогда можно, если сеть позволяет пробить её. Не всегда это возможно.

Legioner ★★★★★
()
Ответ на: комментарий от AVL2

Скорее всего, когда оба хоста за натом, это как разслучай, когда - direct connection cannot be established.

У меня как раз такой случай - всё работает. Ты просто рассуждаешь без практического опыта.

rupert ★★★★★
()
Ответ на: комментарий от rupert

Можно. …

У меня два компа подкл. через мобильный модем (lte/3g/4g)

Сможешь их соединить (пустить трафик) напрямую? Я уверен что нет

futurama ★★★★★
()
Последнее исправление: futurama (всего исправлений: 1)
Ответ на: комментарий от rupert

У меня как раз такой случай - всё работает. Ты просто рассуждаешь без практического опыта.

Это большой вопрос. Во первых, вполне возможно что у тебя оба компьютера за одним натом, в сети одного провайдера.

Во вторых, есть разные варианты нат и большинство из них отбрасывает пакеты с чужих адресов или портов.

В этом и беда. У любого, кто занимался voip опыта с нат много. На практике это выглядит как периодически неработающий голос/видео между телефонами или в одну или в обе стороны.

AVL2 ★★★★★
()
Ответ на: комментарий от OpenMind

но их сервер то я так понимаю, белый? Или я не прав?

Но сервер в данном случае должен в итоге оставаться в стороне. Если клиенты соединяются и гонят все через сервер, это можно сделать сотней способов. А вот если нужно гнать потоки данных напрямую, вот для этого универсального и надежного решения нет да и быть не может.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

да я не против, что-бы через их сервер работал мой сервер. Просто вопрос в другом: будет ли это работать? И насколько быстро?

OpenMind ★★★★
()
Ответ на: комментарий от OpenMind

Так и сервер тоже твой. Простая vps в любом облаке с одним адресом и поднимай на нем vpn. Какой закажешь, такая сеть и будет. Вообще говоря, дешевле купить белый адрес. Я вот и так и так использую.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

А как тогда всякие звонки работают, p2p мессенджеры итд? Я думал все таки возможно гнать трафик напрямую

bubvalet
() автор топика
Ответ на: комментарий от bubvalet

Возможно, но не во всех случаях.

Прочитайте блин, что я сбросил… или перевести надо?

Scondo
()
Ответ на: комментарий от bubvalet

Компы за натами соединяются с сервером, торчащим белым IP голой жопой в интернеты, создают маршрут и тогда с помощью сервера они могут общаться. А с помощью моста даже напрямую.

Ты мне должен бутылку (нормального) виски. :3

mord0d ★★★★★
()

В tinc-vpn заявлена возможность прямого соединения между двумя узлами за NAT при помощи координации с третьим узлом с «белым» адресом - https://www.tinc-vpn.org/documentation-1.1/How-connections-work.html :

if A and C are behind a NAT, B will automatically help A and C punch holes through their NAT, in a way similar to the STUN protocol, so that A and C can still communicate with each other directly.

No
()
Ответ на: комментарий от bubvalet

Клиент "регистрирует" своё присутствие в сети, оставляя маршрут до себя, другой клиент получает у сервера этот маршрут и использует для прямой связи.

Чтобы более техническим языком, тебе надо знаний немножко докупить. xD

mord0d ★★★★★
()
Ответ на: комментарий от bubvalet

Да вот так и работают, проксируя трафик через сервера с беоыми ip. Это могут быть точно такие же клиенты, просто с белыми адресами, как в скайпе. Это могут быть клиенты с открытыми на роутерах портами через upnp, dnat и т.д. Это могут быть проксирующие turn сервера с белыми ip c vps. Это может быть nat с возможностью застолбить порт с помощью stun. Но в итоге все равно везде проксируют.

AVL2 ★★★★★
()
Ответ на: комментарий от No

similar to the STUN protocol

Однако stun не работает со всеми типами nat. Поэтому это будет вечное камлание, а не работа.

AVL2 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.