LINUX.ORG.RU

Поясните за STUN

 ,


0

2

Есть 2 компьютера, между ними - интернеты. У обоих - серые IP. И очень стало завидно, ведь скайпик как-то может соединяться с любыми девайсами напрямую, где бы они не находились. Прочитал про STUN - но ничего не понял.

$ stun stun.ekiga.net
STUN client version 0.97
Primary: Independent Mapping, Port Dependent Filter, random port, will hairpin	
Return value is 0x000006
Может кто-то ткнуть носом в разжеваный мануал или объяснить, как создать соединение между двумя компами. На сокетах с сишкой/крестами/дишкой/да-чем-угодно, лишьбы с одного компа на другой послать пару байт - без тоннелей/впн/ipv6/проксей/всего-подобного.

Ведь торренты же как-то работают.

★★

скайпик как-то может соединяться с любыми девайсами напрямую

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

sholom
()

Почитай заодно про ICE и найди библиотеку с его имплементацией.

Deleted
()
Ответ на: комментарий от wolph
Ну а торренты же как-то качаются без промежуточного сервера?

Тлько если есть пиры с публичными ip, к которым можно присосаться.

Попробуй pwnat, по слухам вещь работает.

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

При чем тут приколы виндоус? Я хочу узнать - возможно ли написать минимальный p2p-хеллоуворлд между двумя компами во внешних интернетах.

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

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

Вообще, есть такая вещь: https://en.wikipedia.org/wiki/UDP_hole_punching#Flow . И, насколько я понимаю, на типичных натах под iptables (-j MASQUERADE/SNAT, без ключа --random), которые представляют собой Port-restricted_cone_NAT, оно будет работать только если пункты 5 и 7 выполняются ~одновременно, т.е. до того, как к ним прилетят пакеты от другого ната. Т.е. нужна координация.

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

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

Windows 9xx
IE4x
Netscape Navigator

Такая некрофилия что аж ностальгией повеяло.

h578b1bde ★☆
()

ТС, короче, ты представляшь себе как можно прокинуть порт по ssh между двумя компами за натом если есть третий сервер с белым ip? вот в целом все почти аналогично, с той разницей что емнип для stun сервак нужен только для установки соединения, и дальше через него трафик не идет, хотя в этом не уверен

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

STUN может только сообщить клиентам возможные адреса друг друга, а в случае если ни в одного не будет белого IP то тут нужен TURN сервер. По сути к нему надо присоединится обоим клиентам и предоставить одинаковый идентификатор, после этого он будет просто перекидать пакеты через себя.

Уже написали, ищи реализацию ICE, есть почти под все платформы и языки.

P.S. Формально это тоже прокси.

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

Сначала он старается создать uPnP соединение с клиентом и перевести другого клиента на это соединение, эсли же конечный шлюз клиента этого сделать не может, то TURN пропускает трафик через себя.

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

STUN может только сообщить клиентам возможные адреса друг друга, а в случае если ни в одного не будет белого IP то тут нужен TURN сервер.

Ложь. Выше объяснили, что тёрн нужен только, если нат симметричный у одного из клиентов. Какой ещё идентификатор? Обычно обмен данными по подключению между клиентами происходит на сигнальном сервере.

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

Сначала он старается создать uPnP соединение с клиентом и перевести другого клиента на это соединение, эсли же конечный шлюз клиента этого сделать не может, то TURN пропускает трафик через себя.

TURN не STUN емнип. одно без другого вполне может жить. TURN по сути чистый прокси

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

Не путай STUN и TURN.

Приблизительный порядок действий: 1. Клиенты обращаются к STUN серверу для определения всех своих IP. 2. Клиенты сообщают сигнальному серверу(стандартно ето ICE либо SIP) про желание соединится и сообщают ему все свои адреса полученные от STUN. 3. Если сигнальный сервер не видит возможности прямого соединения он просит клиентов обратится к TURN серверу.

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

Вероятно, аноним выражает удивление за использование предлога «за» вместо «о» или «про».

Petrosyan-fix :)) Тоже достали эти дауны, которым всё время нужно пояснить и сказать за что-то.

anonymous
()

Ну хорошо. А если я подключу VPN - я получу вожделенный прямой коннект к чему угодно? Или он даст только другой айпишник а-ля прокся - и только?

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