Turnable: VPN/прокси через TURN (обход БС)

Turnable - альтернатива vk-turn-proxy и других подобных проектов, написанная с нуля.

Через него гнать сколько угодно соединений т.к. есть мультиплесирование, а также TCP если включить транспортный протокол KCP. Сверху ещё управление несколькими маршрутами и пользователями с рабочей авторизацией, чтобы свой сервер можно было шерить с друзьями, а также опциональное сквозное шифрование.

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

Также дополнительно есть ещё пару идей, как можно было бы получить канал по-больше, но её реализации пока нет. Основной метод который сейчас абузят работает стабильно с 99.9% успешным авторешением капчи ВК.

по самой схеме
### P2P - фейковый скринкаст через SFU :warning: WIP
неправильная логика
т.е. не та которую бы хотелось
у тебя с клиента всё начинается. и креды и т.п.

а надо наеборот. серверная часть должна создавать комнату и т.п.. а после оставаться в этой комнате и ждать клиента. у клиента только адрес ссылки без кредов, а сервак как “организатор” встречи может\должен “впускать” клиента и начинать передачу данных

А этому серверу подойдут распространяемые сейчас клиенты turn-прокси для Андроид? Или только Termux?

P2P правильно расписан, и задумывается именно то, что ты сейчас описываешь. Слово “Peer“ в “Server - Main Peer“ написано не просто так) он сидит ждет клиента, подключается к звонку ещё N раз и сообщает о выделенных пирах клиенту.

И если что креды нужно и серверу, и клиенту чтобы подключится к звонку, если ты имел ввиду креды ВК. Если ты имеешь ввиду требование полного конфига а не только ссылки на комнату, то тут ничего не поделать - Turnable специально делался с модульной архитектурой, и один вариант конфигурации может быть полностью несовместим с другим. Да и как авторизацию тогда делать-то?)

Аргументы командной строки на все 100% отличаются от того, что у vk-turn-proxy. Если есть мазохисты, то думаю чуток переделать существующий Android клиент к vk-turn-proxy под Turnable не будет уж сильно затруднительным.

Планируется официальный клиент, и для этого я пилю режим сервиса - Turnable создаст unix/tcp сокет, к которому можно будет потом подключится и удобно “общаться“ с ним без необходимости в C interop или костылей через аргументы командной строки, полностью отслеживая текущее состояние и давая возможность изменять настройки в рантайме. Таким образом я убью сразу несколько зайцев - думаю, есть люди котором подобная система сильно пригодится, особенно тем кто собирается ставить сия чудо на роутеры.

P.S. Скорее всего в GUI клиент и сам Turnable будет встроена поддержка WireGuard напрямую, но только для удобства и в основном для десктопа. Я бы не рекомендовал использовать её 24/7 когда она будет реализована, особенно на телефонах когда все кому не лень уже добавили жучок РКН. Мне не сильно хочется делать систему роутинга как у NekoBox самому, и я не думаю что открывать два приложения вместо одгого будет уж совсем неюзабельным)

Запустил на WG-Tunnel android.
Пока аккуратно, без злоупотреблений, тестирую. На первый взгляд отлично работает, скорость 5-7мб.

Застрял на генерации клиентского конфига.

[ERROR] failed to generate client config: generated client config is invalid: invalid user uuid: 555666

в store.json просто прописал

"users": [
    {
        "uuid": "555666",

Что не так? Что вписывать и откуда брать uuid?

Клиент на Android с поддержкой Turnable

т.е. речь про будущее?

может мы про разные креды? вк учётка нужна только 1 раз чтоб создать встречу\звонок
на текущий момент и вовсе можно левой комнатой пользоваться когда ни клиент ни сервер ничего не знают про вк учётку а знают только ссылку звонка\комнаты

очев, P2P режима пока нет

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

это тоже легко попятить…
на телемосте уже сейчас только “организатор” с активным акком должен впустить гостей без акка чтоб они хоть чтото увидели или начали вещать

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

если заставят подставляться, будет

Разработчику огромное спасибо, очень удобная программа. Есть ли планы добавить что-то кроме вк?

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

Думаю, самый логичный следующий шаг это добавить MAX.
Есть даже библиотека для инициализации звонков, несколько месяцев назад проверял – GitHub - icyfalc0n/maxcalls · GitHub

В чем проблема Яндекс телемоста? Проверил, вроде бы шлет в открытую креды.

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

а левый номер в РФ хрен достанешь. мб монголия и т.д. можно будет.

Поэтому следует сделать обфускацию под такой же паттерн трафика как у обычных видеозвонков в FullHD качестве.

Там используется обычный WebRTC, поэтому тестируйте не на их инфраструктуре, а на своей. До тех пор, пока сами не найдете способов отличить.

У вас уже есть поддержка мультиплексирования соединений вроде как, поэтому для увеличения пропускной способности сети она и будет использоваться. Отлично для этого подходят “групповые звонки”. Лимит участников и продолжительность не ограничены.

Думаю, можно закупиться и зарегистрироваться с eSIM у местных ОПСОСов 40 стран.

я правильно понимаю что он туннелирует udp? то есть на той стороне можно указать сервер истерии а у себя в на клиенте указать 127.0.0.1 ? и пользоваться всякими xray/singbox ядрами нв клиенте со всеми роутингами и прочими вкусностями