LINUX.ORG.RU

P2P за NAT с помощью внешнего VPS?

 


0

1

Ситуация следующая: есть две машины в разных сетях с хорошей скоростью интернета, но находящиеся на NAT-ами провайдеров. Есть также слабенький внешний сервер с плохим интернетом, зато с белым IP и доступом по SSH.

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

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


tinc-vpn декларирует такую возможность - «As long as one node in the VPN allows incoming connections on a public IP address (even if it is a dynamic IP address), tinc will be able to do NAT traversal, allowing direct communication between peers.»

No ★★
()

С большой вероятностью да, но устанавливать соединение будет сложно; существующие инструменты может понадобиться модифицировать для этого. (В частности, сервер-посредник должен помочь клиентам обменяться контактами.)

anonymous
()

Если NAT пробивается, то реально. Запусти торрент клиент и посмотри есть ли там входящие подключения. А связь какая? Доступ к файлам?

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

Если NAT пробивается

Как вариант расшаривать файлы торрентом. В этом случае на внешнем сервере их надо тоже запустить (чисто для помощи в соединении). Неплохо бы там же поднять трекер, хотя можно по DHT. Или IP вручную вписывать, если статика.

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

Легко сказать «посмотри».

Я понятия не имею, где смотреть входящие соединения в трансмиссии. Сиды есть, если ты об этом, файлы какие-то качаются. Было бы странно, если бы не качались.

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

Пробитие NAT - это же как раз то, о чём я говорю, т.е. когда посредник берёт два TCP-подключения к себе и цепляет их концами друг к другу, отцепляя от себя? Это, типа, должно на уровне оборудования провайдера как-то поддерживаться?

А кто тогда в торрентах посредник? И можно ли как-то отличить сиды, полученные через пробитие, от сидов, с которыми изначально получилось наладить прямое соединение? Это и есть «входящие соединения»?

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

Пробитие NAT - это же как раз то, о чём я говорю, т.е. когда посредник берёт два TCP-подключения к себе и цепляет их концами друг к другу, отцепляя от себя? Это, типа, должно на уровне оборудования провайдера как-то поддерживаться?

Грубо говоря, да на все вопросы. Подробности описаны в статье.

А кто тогда в торрентах посредник?

Торренты могут работать через UDP. В UDP нет конечного автомата TCP, и иногда получается просто обменяться адресами через трекер. Пока внешний порт не сменится (по связанным с провайдером причинам), трафик с других пиров идёт на опубликованный на трекере адрес:порт.

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

Я понятия не имею, где смотреть входящие соединения в трансмиссии

Тогда посмотри в Tixati на вкладке Transfers-Peers-Link. Должно быть U и стрелочка вниз (мышь покажет подсказку). Если раздела Link нет (не помню как по умолчанию) Layout-Select colums-Peers view-поставь галочку на Link. А еще можно посмотреть на вкладке Home-Incoming connections.

anonymous
()

Видно ты не мониторишь Гитхаб, вот на днях проект вышел: https://github.com/slackhq/nebula

Тебе нужно искать p2p overlay network, nebula одна из таких сетей

menangen ★★★★★
()

Надо именно TCP?
А то если udp хватит, ищи по слову STUN

TheAnonymous ★★★★★
()

Из сравнительно популярных проектов, умеющих пробивать NAT и создавать прямое подключение (это называется Full-Mesh VPN) — tinc и zerotier. Попробуйте их.

ValdikSS ★★★★★
()

Всем спасибо за tinc. Попробовал, реально классная штука, оба NAT-а пробиваются в обе стороны (кажется).

Ручное прописывание и разброс конфигов по устройствам сделаны слегка неудобно, но это что не суть.

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