Та фронт сделан на обычном React, ну MUI, по этому и выглядит неплохо ).
Ну в целом принцип работы тот же, что и у youtubeUnblock (кстати, забыл сказать, что если он используется, то стоит отключить на время работы b4, ибо они как раз конфликтуют, борясь за место под солнцем в nfqueue). B4 работает на уровне netfilter/nfqueue, перехватывая TCP пакеты до их отправки.
Основные мешалки у меня (но я многое подглядел у youtubeUnblock и byeDpi): - TCP frag - разбивка TCP payload на несколько сегментов с корректировкой sequence numbers. Можно split в начале SNI, в середине SNI, или в обоих местах сразу. Каждый сегмент - валидный TCP пакет с правильными чексуммами.
- IP frag - разбивка на IP уровне с манипуляцией fragment offset. DPI не всегда корректно реассемблирует фрагменты, особенно если отправить в обратном порядке.
- TLS record splitting - разбивка TLS ClientHello на несколько TLS records. Если DPI ожидает увидеть весь handshake в одном record.
- ПоQUIC - UDP пакеты с QUIC Initial фрагментируются на IP уровне. Перед отправкой реального пакета отправляется серия fake UDP пакетов с неправильной чек суммой.
- Desync - отправка фейковых пакетов с неверной TCP checksum, чтобы они дошли до DPI, но были отброшены конечным сервером. DPI думает, что соединение идёт в одном направлении, а реальный сервер видит другое.
- ClientHello frag - разбивка TLS handshake на мелкие TCP сегменты или TLS записи, чтобы DPI не мог собрать полную картину SNI в одном пакете.
- TCP window manipulation - заигрывания с размером TCP окна, чтобы контролить, какие данные DPI успевает обработать.
- Out-of-Band (ну oob) данные и SACK dropping - использование TCP флагов и selective acknowledgments для дезориентации DPI. TCP urgent pointer для маркировки данных как "срочных". Многие DPI могут некорректно обрабатывать OOB данные.
- Пытаюсь в мутации ClientHello - изменение порядка extensions, добавление padding, split на уровне TLS records. Главное отличие от SOCKS proxy - мы работаем после маршрутизации, перед самой отправкой в сеть, поэтому можем манипулировать реальными пакетами, а не создавать отдельный туннель.
Как-то так.
Ну ваще работает, но с переменным успехом. Вот ковыряю, тоже изучаю. Кто-то пишет, что все разблокировалось, кто-то говорит, что не все. От региона и провайдера зависит.
Вчитался, вы имели ввиду наоборот все, кроме ру диапозона. Ну, в общем, можно использовать то, что в geoip. Можно руками прописать подсети. Если подключить в настройках ipinfo - то в логах появится возможность добавлять ASN.
Да, в настройках нужно подключить геодаты от xray и в Bypass IPs указать желаемые подсети из базы
Но вообще я за точечность, это прям стрельба по мухам из пушки :). Так можно себе весь интернет поломать. Вообще в геодате от RUNET Freedom вот такая на сегодняший день статистика по подсетям получается
Вы имеете ввиду примеры типа openai? Да, модуль нормально работает совместно с впнами, они не должны никак конфликтовать, принцип работы несколько разный.
Ну сам процесс да, ибо nfqueue. Но он экспозит веб морду. В целом хотелка была сделать что-то подобное youtubeunblock и аналогичным шаталкам, только с веб мордой, чтобы не заниматься сексом с сотней параметров в командной строке.
А попробуйте мою приблуду b4, кому не лень, а? давно пилю, ставится на любой линукс, от азус мерлина до кинетика и опенврт. хочу все пост накатать на хабре, но пока сыровато, да и тесты нужны. Если есть, кто может помочь - велкам.
Из плюсов - поддерживает геофайлы xray/v2ray, обновляя все на лету без перезагрузок, по сути тот же дпи байпас только с веб мордой удобной.
Да вроде бы стабилен... ну народ пользуется. Бывают баги и косяки, стараюсь их править быстро (сейчас уже меньше появляются). Но иногда находят и хорошие неленивые люди даже заносят в телеграмм-группу. В целом фидбек - работает. Но, опять же - много чего может влиять, из-за чего может быть впечатлнение, что причина в самом плагине. По факту же, это может быть роутер, может быть провайдер, может быть сервер (VPS), может быть сам xray-core, который неверно настроен. В общем, непростое это решение.
Ну и да, я всегда говорю, что неправильно это сравнивать с клиентами на телефонах, все же и роутеры и принцип маршрутизации трафика иксреем на роутере и персональных устройствах несколько различаются. Настраивать или нет роутер - дело индивидуальное. Но, как по мне, интереснее, чем возиться с клиентом на телефоне :). Ну и результат радует в итоге - дома все работает без постоянной возни с впн.
Привет! 1. спасибо большое, подправил в версии 0.37.0. 2. странно, а пробовали перевести все это дело в режим bypass в настройках? Часто помогает. в последней версии я полностью переработал это, так что вообще можно сделать теперь фильтр по устройствам (скажем, Алису вообще не пускать через иксрей). Посмотрите опцию Политика обхода/переадресации в разделе Маршрутизации.
привет. геодата сообщества, это проект, который ведется на гитхабе. Вы должны проверить, есть ли у них токен nnmclub. Но, очевидно уже из ошибки, что нет у них такого.
Вообще, что такое файл geosite? По сути это скомпилированная и понятная x-ray библиотека, собранная из кучи мелких текстовых файлов, к оторых вы или кто угодно прописывает домены. Ну, например, вот такой файл по ютубу. Как видно, хорошие люди в нем собрали все возможные м невозможные домены, связанные с ютубом. По этому, вместо того, тобы у себя в конфиге иксрея прописывать все эти домены, вам достаточно подгрузить файл geodat.dat и прописать в конфиге geosite:youtube (по сути сказав иксрею - используй все домены из файла youtube). Это будет эквивалентно тому, если вы скопируете весь контент из этого файла и вставите в поле domains в правиле. Так работают эти геодаты.
Теперь, что вам делать, если отсуствуют данные в сообществе.
Есть два варианта: 1. самому создать такой файл - можно воспользоваться в xrayui внутренним компилятором в разделе Routing
и дальше в правиле просто указать `ext:xrayui:nnmclub` (nnmclub по сути название файла с доменами - тег)
2. просто в конкретном правиле перечислить список доменов nnmclub, не морочась с геофайлами.
Не уверен, что смогу тут уже помочь. Но, вообще, мое личное мнение - прокировать по дефолту весь трафик (хоть через redirect хоть через bypass) не самая лучшая идея идея, и я бы не советовал так делать.
Хорошая практика - изначально все кидать в директ, и постепенно перед этим добавлять правила-иксключения с маршрутом в прокси (ну, скажем, ютуб - в прокси, дискорд - в прокси, инстаграм - в прокси, а все, что не отфильтровалось - в директ). Просто неизвестно как и куда что там андроиды-эплы-сони-самсунги шлют и что ожидают в ответ. Иными словами - если что-то не сломано заблокировано, то нечего и ломать :)
Совершенно верно, крон не переживает ребут роутера. Ну, например, можно добавить его в /jffs/scripts/services-start. В таком случае он будет добавляться в cron list после ребута.
я глянул быстренько документацию по xray-core. Все же они пишут, что в правилах между полями логическое И, а внутри поля - логическое ИЛИ (то есть или домен такой или домен сякой И айпи). Короче, тогда советую создать 2 правила - в одном указать зону РУ по доменам domain:ru, (кстати, не стоит забывать и про .su и про .рф - domain:su и domain:xn--p1ai) а во вотором правиле наоборот указать целевые айпишники РФ geoip:ru.
Она скачивает файлы и перезагружает xray. Можешь сам ее проверить выполнив на роутере. Ну и соотвественно в расписание прописать через тот жеcru. В этом примере раз в день в 7 вечера.
Насчет первой проблемы (VoWIFI) на первый взгляд приходит пока такая идея - переключить xrayui в режим bypass (в разделе Routing `Ports Bypass/Redirect Policy`) и выдать default ports.
В таком режиме маршрутизатор изначально не будет гнать весь трафик на xray, а только определенные, указанные порты.
Насчет второго вопроса - попробуй в списке Outbounds сделать прокси первым в списке, а FREEDOM и остальные уже после него. Таким образом весь трафик, что не будет попадать под правила будет по дефолту уходить в проксю. И сделать такое вот правило, которое будет фильтровать трафик ru:
Я пока не очень понял, как работают совместно поля domain и target ip (в том смысле, если правило одновременно содержит значения - значит ли это логическое И или ИЛИ). Так что стоит тоже попробовать просто разбить на два правила (в одном domain:ru, в другом geoip:ru соотвественно).
Так статья же непосредственно об этом и написана :). У вас должен быть внешний VPS с настроенным xray-core сервером, вот xray-core на роутере к нему и будет подключаться.
Та фронт сделан на обычном React, ну MUI, по этому и выглядит неплохо ).
Ну в целом принцип работы тот же, что и у youtubeUnblock (кстати, забыл сказать, что если он используется, то стоит отключить на время работы b4, ибо они как раз конфликтуют, борясь за место под солнцем в nfqueue). B4 работает на уровне netfilter/nfqueue, перехватывая TCP пакеты до их отправки.
Основные мешалки у меня (но я многое подглядел у youtubeUnblock и byeDpi):
- TCP frag - разбивка TCP payload на несколько сегментов с корректировкой sequence numbers. Можно split в начале SNI, в середине SNI, или в обоих местах сразу. Каждый сегмент - валидный TCP пакет с правильными чексуммами.
- IP frag - разбивка на IP уровне с манипуляцией fragment offset. DPI не всегда корректно реассемблирует фрагменты, особенно если отправить в обратном порядке.
- TLS record splitting - разбивка TLS ClientHello на несколько TLS records. Если DPI ожидает увидеть весь handshake в одном record.
- По QUIC - UDP пакеты с QUIC Initial фрагментируются на IP уровне. Перед отправкой реального пакета отправляется серия fake UDP пакетов с неправильной чек суммой.
- Desync - отправка фейковых пакетов с неверной TCP checksum, чтобы они дошли до DPI, но были отброшены конечным сервером. DPI думает, что соединение идёт в одном направлении, а реальный сервер видит другое.
- ClientHello frag - разбивка TLS handshake на мелкие TCP сегменты или TLS записи, чтобы DPI не мог собрать полную картину SNI в одном пакете.
- TCP window manipulation - заигрывания с размером TCP окна, чтобы контролить, какие данные DPI успевает обработать.
- Out-of-Band (ну oob) данные и SACK dropping - использование TCP флагов и selective acknowledgments для дезориентации DPI. TCP urgent pointer для маркировки данных как "срочных". Многие DPI могут некорректно обрабатывать OOB данные.
- Пытаюсь в мутации ClientHello - изменение порядка extensions, добавление padding, split на уровне TLS records. Главное отличие от SOCKS proxy - мы работаем после маршрутизации, перед самой отправкой в сеть, поэтому можем манипулировать реальными пакетами, а не создавать отдельный туннель.
Как-то так.
Ну ваще работает, но с переменным успехом. Вот ковыряю, тоже изучаю.
Кто-то пишет, что все разблокировалось, кто-то говорит, что не все. От региона и провайдера зависит.
Вчитался, вы имели ввиду наоборот все, кроме ру диапозона. Ну, в общем, можно использовать то, что в geoip. Можно руками прописать подсети. Если подключить в настройках ipinfo - то в логах появится возможность добавлять ASN.
Да, в настройках нужно подключить геодаты от xray и в Bypass IPs указать желаемые подсети из базы
Но вообще я за точечность, это прям стрельба по мухам из пушки :). Так можно себе весь интернет поломать. Вообще в геодате от RUNET Freedom вот такая на сегодняший день статистика по подсетям получается
Вы имеете ввиду примеры типа openai? Да, модуль нормально работает совместно с впнами, они не должны никак конфликтовать, принцип работы несколько разный.
Ну сам процесс да, ибо nfqueue. Но он экспозит веб морду. В целом хотелка была сделать что-то подобное youtubeunblock и аналогичным шаталкам, только с веб мордой, чтобы не заниматься сексом с сотней параметров в командной строке.
А попробуйте мою приблуду b4, кому не лень, а? давно пилю, ставится на любой линукс, от азус мерлина до кинетика и опенврт. хочу все пост накатать на хабре, но пока сыровато, да и тесты нужны. Если есть, кто может помочь - велкам.
Из плюсов - поддерживает геофайлы xray/v2ray, обновляя все на лету без перезагрузок, по сути тот же дпи байпас только с веб мордой удобной.
Вот тут подробнее как поставить https://github.com/DanielLavrushin/b4/blob/main/docs/docs/intro.md
Значит вам просто это не сильно нужно.
Да вроде бы стабилен... ну народ пользуется. Бывают баги и косяки, стараюсь их править быстро (сейчас уже меньше появляются). Но иногда находят и хорошие неленивые люди даже заносят в телеграмм-группу. В целом фидбек - работает.
Но, опять же - много чего может влиять, из-за чего может быть впечатлнение, что причина в самом плагине. По факту же, это может быть роутер, может быть провайдер, может быть сервер (VPS), может быть сам xray-core, который неверно настроен. В общем, непростое это решение.
Ну и да, я всегда говорю, что неправильно это сравнивать с клиентами на телефонах, все же и роутеры и принцип маршрутизации трафика иксреем на роутере и персональных устройствах несколько различаются. Настраивать или нет роутер - дело индивидуальное. Но, как по мне, интереснее, чем возиться с клиентом на телефоне :). Ну и результат радует в итоге - дома все работает без постоянной возни с впн.
Это прям новость какая-то... даже ума не приложу как может пропасть весь контент файла. У меня там удаляются только все строки с xrayui
А какая версия у вас? Попробуйте обновиться, я вчера вроде как исправил это (0.37.0). Справа внизу можно обновить скрипт через интерфейс.
Вы имеете ввиду что-то такое вам нужно? Кстати, у нас есть группа в телеграмме, можете туда тоже писать и спрашивать.
Имеется ввиду сам основной конфиг xray config.json? Он бэкапится перед обновлением/установкой в
/opt/etc/xray/config.json.bak. Или вы не про это?Привет!
1. спасибо большое, подправил в версии 0.37.0.
2. странно, а пробовали перевести все это дело в режим bypass в настройках? Часто помогает. в последней версии я полностью переработал это, так что вообще можно сделать теперь фильтр по устройствам (скажем, Алису вообще не пускать через иксрей). Посмотрите опцию Политика обхода/переадресации в разделе Маршрутизации.
привет. геодата сообщества, это проект, который ведется на гитхабе. Вы должны проверить, есть ли у них токен nnmclub. Но, очевидно уже из ошибки, что нет у них такого.
Вообще, что такое файл geosite? По сути это скомпилированная и понятная x-ray библиотека, собранная из кучи мелких текстовых файлов, к оторых вы или кто угодно прописывает домены. Ну, например, вот такой файл по ютубу. Как видно, хорошие люди в нем собрали все возможные м невозможные домены, связанные с ютубом. По этому, вместо того, тобы у себя в конфиге иксрея прописывать все эти домены, вам достаточно подгрузить файл geodat.dat и прописать в конфиге geosite:youtube (по сути сказав иксрею - используй все домены из файла youtube). Это будет эквивалентно тому, если вы скопируете весь контент из этого файла и вставите в поле domains в правиле. Так работают эти геодаты.
Теперь, что вам делать, если отсуствуют данные в сообществе.
Есть два варианта:
1. самому создать такой файл - можно воспользоваться в xrayui внутренним компилятором в разделе Routing
и дальше в правиле просто указать `ext:xrayui:nnmclub` (nnmclub по сути название файла с доменами - тег)
2. просто в конкретном правиле перечислить список доменов
nnmclub, не морочась с геофайлами.Надеюсь понятно объяснил.
Это я какой-то тонкой иронии не распознал, или там автор этого подкопа параллельно воюет за другую команду? :)
Привет, я тебе уже помог в телеграмме, просто отвечу тут для истории, если у кого-то подобный вопрос возникнет.
Во-первых, надо убедиться, чтобы устройство получало статичный айпи, а то DHCP обновит его со временем, смысла нет тогда.
Во-вторых, нужно просто создать какое-то такое правило, ну скажем мы хотим устройство с айпишником 192.168.1.66 всегда пускать в директ, миная проксю:
Не уверен, что смогу тут уже помочь. Но, вообще, мое личное мнение - прокировать по дефолту весь трафик (хоть через redirect хоть через bypass) не самая лучшая идея идея, и я бы не советовал так делать.
Хорошая практика - изначально все кидать в директ, и постепенно перед этим добавлять правила-иксключения с маршрутом в прокси (ну, скажем, ютуб - в прокси, дискорд - в прокси, инстаграм - в прокси, а все, что не отфильтровалось - в директ). Просто неизвестно как и куда что там андроиды-эплы-сони-самсунги шлют и что ожидают в ответ. Иными словами - если что-то не сломано
заблокировано, то нечего и ломать :)Совершенно верно, крон не переживает ребут роутера.
Ну, например, можно добавить его в
/jffs/scripts/services-start.В таком случае он будет добавляться в cron list после ребута.
я глянул быстренько документацию по xray-core. Все же они пишут, что в правилах между полями логическое И, а внутри поля - логическое ИЛИ (то есть или домен такой или домен сякой И айпи).
Короче, тогда советую создать 2 правила - в одном указать зону РУ по доменам
domain:ru, (кстати, не стоит забывать и про.suи про.рф-domain:suиdomain:xn--p1ai) а во вотором правиле наоборот указать целевые айпишники РФgeoip:ru.Ага, понял. Ну пока такой возможности нет, но я могу такое прикрутить в ближайших обновлениях, идея хорошая.
Опять же, даже сейчас ты можешь, только команда будет другой
Она скачивает файлы и перезагружает xray. Можешь сам ее проверить выполнив на роутере. Ну и соотвественно в расписание прописать через тот же
cru. В этом примере раз в день в 7 вечера.Привет, спасибо!
Насчет первой проблемы (VoWIFI) на первый взгляд приходит пока такая идея - переключить xrayui в режим bypass (в разделе Routing `Ports Bypass/Redirect Policy`) и выдать default ports.
В таком режиме маршрутизатор изначально не будет гнать весь трафик на xray, а только определенные, указанные порты.
Насчет второго вопроса - попробуй в списке Outbounds сделать прокси первым в списке, а FREEDOM и остальные уже после него. Таким образом весь трафик, что не будет попадать под правила будет по дефолту уходить в проксю.
И сделать такое вот правило, которое будет фильтровать трафик ru:
Я пока не очень понял, как работают совместно поля domain и target ip (в том смысле, если правило одновременно содержит значения - значит ли это логическое
ИилиИЛИ). Так что стоит тоже попробовать просто разбить на два правила (в одном domain:ru, в другом geoip:ru соотвественно).А что не получилось-то? Если опишите проблему, постараюсь помочь.
Так статья же непосредственно об этом и написана :). У вас должен быть внешний VPS с настроенным xray-core сервером, вот xray-core на роутере к нему и будет подключаться.