Pull to refresh

Comments 24

Отличная работа. Наконец стали появляться адекватные статьи по работе через STUN. Осталось только написать третью часть, где вы организуете VPN без посредника и STUN сервера.
VPN без посредника и STUN сервера.
это будет VPN over IPv6)
1. Устанавливаем сервер.
2. Сервер выполняет трассировку и получает белый ip/сеть за NAT. Если что, то существуют всемирные базы провайдеров.
3. Сервер начинает udp-прослушку.
4. Устанавливаем клиент.
5. Вбиваем в него полученный ip/сеть.
6. Запускается сканер портов (ищем udp-прослушку).Однако, сканирование достаточно выполнить один раз в большинстве случаев, если провайдер не использует балансировщик и прочие подобные вещи.
7. Мы узнали ip: порт сервера. Теперь можно использовать обычный VPN.

Естественно, этот способ имеет ещё меньшую область применения чем stun, который в свою очередь уступает ретрансляции. Однако, даже 1% от 10 000 000 устройств — неплохой результат.
5. Вбиваем в него полученный ip/сеть.


так весь смысл статьи в отказе от ручной работы
Это как звонок по телефону. Вы один раз записали номер, а потом можете на него звонить.
Тем более, вы забываете, что кто-то ещё должен установить openvpn + остальное ПО + сконфигурировать это всё. На фоне таких манипуляций вписывание 4 числе не кажется уж такой большой прибавкой к ручной работе.
Кроме того, весь смысл в организации vpn без посредников. Если я захочу избавиться от ручной работы, я найму сисадмина или хотя бы куплю сервер.
На фоне таких манипуляций вписывание 4 числе

а кто сказал, что маппинг будет постоянным во времени? вспоминаем легендарное "ни единого разрыва" — рестарт pppoe-сессии почти наверняка даст смену внешнего IP и/или порта.


Кроме того, весь смысл в организации vpn без посредников

совсем без посредников, очевидно, не получится — нам нужны провайдеры последней мили, магистральные провайдеры, все эти BGP-сессии и т.п.


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

вот тут альтернатива и предлагается — использовать уже имеющуюся инфрастурктуру (stun-серверы, яндекс-диск и т.п.), а не создавать новую.


честно скажу, читая прошлую статью, я не проникся. а потом подумал: ведь на самом деле мысли дельные. решил "надо будет на эту тему ещё подумать".


а тут автор вторую статью написал с развитием идеи, и развитие, считаю, в правильном направлении.

Но это всего лишь пол дела, встал вопрос как передать эти данные удаленному узлу и организовать VPN-соединение. Использование почтового протокола, а может Telegram?!

мне кажется, тут dyndns бы подошёл

Для передачи номера порта?
а почему нет? в TXT записи, например, можно хранить ip:port
А тут есть над чем подумать, спасибо!
Прочитайте о pwnat, он позволит вам передать произвольные данные второй стороне, без каких-либо посредников (вернее, используя транзитные маршрутизаторы в качестве посредников).
IMHO: Заголовок «немножко» не корректный. Посредник есть! Вы параметры определяете через посредника, какой-то stun-сервер. Плюс Ваш метод не работает через «продвинутый», читай нормальный провайдерский CG-NAT, мобильных операторов или простой офисный прозрачный проксик.
Вы читали прошлую статью? Там посредником был арендованный VPS, за которого нужно платить — это самый большой минус, а данном случае VPS нет — платить не надо. STUN-сервер, в данном случае идеальный и бесплатный способ определения текущих параметров соединения.
CG-NAT, мобильных операторов или простой офисный прозрачный проксик
— это самое интересное, OpenVPN можно научить работать через прокси — идея для другой реализации. Я надеюсь, что статья не последняя, при моральной поддержке, есть куда развиваться… Спасибо за комментарии, я из них черпаю вектор развития)))
Какая потеря скорости, в процентах, при использовании VPN-сервера на VPS?
Почему openvpn когда l2tpv3 поднять проще? А шифрование можно применить внутри трубы политикой ipsec
Так исторически сложилось, использовался OpneVPN, так как изначально вдохновение дала статья об OpenVPN в режиме peer-to-peer. Спасибо Вам за идею l2tpv3, я обязательно учту в следующей реализации.
У руки чешутся сделать впн с инициализацией через торент и dht. Магнет ссылку кидаем и коннект через весь мир совсем без серверов.
Сколько там время анонса в dht сети? Имхо будет быстрее заюзать пачку открытых трекеров.
в магнет ссылке можно указать трекер
Решил попробовать l2tpv3, работает.
Какое-то оборудование во время простоя быстро закрывало порт, и туннель переставал работать. Быстро растолкать придумал только ping`ом. OpenWRT (19.07-rc2), роутер сказал что не знает про l2tpv3 :-)
Прикинув что есть UDP, простое, быстрое, шифрование и с Keepalive — WireGuard. Работает.
во время простоя быстро закрывало порт
Потому что роутер «на лету» транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во временной таблице. Если какое-то время (около минуты, но не факт) не было трафика, то запись во временной таблице удаляется и соединение пропадает. Спасибо за WireGuard…
в опнврт ставь kmod-l2tp и kmod-l2tp-ip (или kmod-l2tp-eth для л2 туннелей)
пакет ip-full если соединение создаешь на баше.

Для поддержания соединения у меня там тусит bird, проверяет доступность пира и маршрутами обменивается.

UDP очень быстро забывается роутерами 10 секунд одиночный пакет, 3 минуты если поток только в одну сторону.
Sign up to leave a comment.

Articles