B4 - инструмент обхода разноуровневых DPI на Go с удобной веб-мордой. Работает на уровне ядра Linux через NFQUEUE - перехватывает сетевые пакеты и применяет к ним техники обхода.

Написан с нуля на Go - хех, это не очередной форк/обертка zapret или других существующих решений. Zapret - мощный CLI-инструмент с тонкой ручной настройкой. B4 - другой подход: веб-интерфейс, полная интеграция v2ray geodat-файлов и автоматический подбор стратегий и применение изменений на лету без перезапуска.

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

общий интерфейс конфигурационных сетов
общий интерфейс конфигурационных сетов

B4 устанавливается одной командой, настраивается через веб-интерфейс и умеет автоматически подбирать рабочую стратегию обхода для конкретной сети. Поддерживает geodata-базы (v2ray/xray) - вместо ручного добавления сотен доменов/ip/asn можно подключить условные категории youtube или facebook и получить актуальный список, который обновляется вместе с базой.

Изменения применяются на лету - без перезапуска сервиса и разрыва текущих соединений.

Работает на Linux-системах, серверах и роутерах (OpenWRT, Keenetic, Entware).

Техническая спецификация

  • Ядро: Go, перехват пакетов через netfilter queue (NFQUEUE), отправка через raw sockets

  • Geodata: интеграция с geosite/geoip базами (v2ray/xray) - таргетирование по категориям доменов и IP-диапазонам, есть поддержка своего b4geoip-файла (обновляется раз в сутки)

  • Firewall: автоматическая настройка iptables/nftables - правила создаются и восстанавливаются автоматически (возможность переопределить)

  • Обработка: многопоточная - от 1 до 16 воркеров, каждый со своей очередью

  • Протоколы: TCP, UDP, QUIC, IPv4/IPv6

  • Веб-интерфейс: React 19, TypeScript, встроен в бинарник - один файл ~13 МБ (amd64), без внешних зависимостей

  • Установка: одна команда или через Docker

Установка

wget -qO- https://raw.githubusercontent.com/DanielLavrushin/b4/main/install.sh | sh

На некоторых роутерах home-директория может быть tmpfs (RAM), который очищается при перезагрузке. Для таких случаев лучше скачать скрипт на постоянное хранилище:

  • Asus Merlin: /jffs/scripts/

  • Keenetic/Entware: /opt/

После установки веб-интерфейс доступен по адресу http://<ip-устройства>:7000

Поддерживаемые архитектуры: x86_64, ARM (arm64, armv7, armv6, armv5), MIPS (mipsle, mips softfloat), RISC-V.

Интерфейс

Интерфейс разбит на несколько разделов:

  • Dashboard - общая картина: активные соединения, статистика пакетов, активность устройств, топ доменов, непокрытые домены, аптайм и нагрузка.

  • Sets - наборы правил обхода: какие домены/IP обходить и какой стратегией. Вообще это основной рабочий раздел.

  • Discovery - автоматический подбор рабочей стратегии для конкретного домена.

  • Connections - живой поток соединений в реальном времени: куда идут пакеты, по какому протоколу, попадают ли под правила. Можно прямо отсюда добавить домен в сет.

  • Logs - лог-стрим с фильтрацией.

  • Settings - настройки ядра, geodata, discovery, API-интеграции, захват TLS ClientHello payload.

Основная работа происходит в разделе Sets. Каждый сет - это связка "что обходить" + "как обходить". Домены и IP можно добавлять вручную или подключать категории из geodata-баз (v2ray/xray).

Все изменения применяются мгновенно - сохранил и работает, без перезапуска. Двинул ползунок - применилось.

Первичная настройка

После установки открываем http://ip-устройства:7000 и переходим в Settings.

Settings → Geodat Settings → Download Files

Можно скачать только geosite, только geoip или оба сразу. После загрузки файлы подхватываются автоматически - кеш категорий пересоздаётся, перезапуск не нужен.

Рекомендую:
- для geosite: RUNET Freedom - наиболее полный и актуальный список для рунета. (для слабых роутеров сильно рекомендуется выбирать Loyalsoldier).

загрузка баз данных
загрузка баз данных

API-токены

Settings → API → IPINFO.IO

Опционально - токен для обогащения IP-адресов информацией об ASN (ниже будет описано, зачем это нужно). Позволяет добавлять целые подсети провайдера одной кнопкой. Бесплатный тариф - 10k запросов/неделя.

Таким образом можно таргетировать визуально все пакеты

Asn проставлены, нам все понятно
Asn проставлены, нам все понятно

IP Протоколы

Settings → Core → Feature Flags

По умолчанию включён только IPv4. Если нужен IPv6 - можно отдельно включить в настройках (по умолчанию отключен).

Фильтрация устройств

Если B4 стоит на роутере, не всегда нужно обрабатывать весь трафик. Можно выбрать конкретные устройства в сети.

Settings → Core → Device Filtering

На роутере можно ограничить работу B4 конкретными устройствами. Два режима:

  • Whitelist - обход DPI только для выбранных устройств

  • Blacklist - обход для всех, кроме выбранных

Устройства подтягиваются из DHCP-leases роутера автоматически.

Discovery

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

Discovery автоматически перебирает стратегии обхода и находит рабочую для вашей сети. Запускается из интерфейса сета или с главной страницы.

что-то нашлось
что-то нашлось

Как работает

  1. Устанавливает TLS-соединение с тестовой целью.

  2. Последовательно применяет динамические пресеты (ну... честно пытается).

  3. Сравнивает время ответа с эталонным (незаблокированный домен из настроек).

    если повезет
    если повезет

Примеры сетов

Каждый сет можно экспортировать в JSON и импортировать на другом устройстве. Открываем сет, секция Import/Export - вставляем JSON.

импорт/экспорт
импорт/экспорт

Ниже примеры рабочих конфигураций. Стратегии подбирались для российских провайдеров - на вашей сети результат может отличаться, используйте Discovery для автоматического подбора.

YouTube
{"id":"f506c73d-9b25-4be0-b117-c9d70591befe","name":"youtube","tcp":{"conn_bytes_limit":19,"seg2delay":20,"seg2delay_max":60,"syn_fake":false,"syn_fake_len":0,"syn_ttl":7,"drop_sack":false,"incoming":{"mode":"off","min":14,"max":14,"fake_ttl":7,"fake_count":3,"strategy":"badsum"},"desync":{"mode":"off","ttl":7,"count":3,"post_desync":false},"win":{"mode":"off","values":[0,1460,8192,65535]},"duplicate":{"enabled":false,"count":3}},"udp":{"mode":"fake","fake_seq_length":6,"fake_len":64,"faking_strategy":"none","dport_filter":"","filter_quic":"parse","filter_stun":true,"conn_bytes_limit":8,"seg2delay":10,"seg2delay_max":40},"fragmentation":{"strategy":"combo","reverse_order":true,"tlsrec_pos":0,"middle_sni":true,"sni_position":1,"oob_position":0,"oob_char":120,"seq_overlap_pattern":[],"combo":{"first_byte_split":true,"extension_split":true,"shuffle_mode":"full","first_delay_ms":30,"jitter_max_us":1000,"decoy_enabled":false,"decoy_snis":["ya.ru","vk.com","mail.ru","dzen.ru"]},"disorder":{"shuffle_mode":"full","min_jitter_us":1000,"max_jitter_us":3000}},"faking":{"sni":true,"ttl":8,"strategy":"pastseq","seq_offset":10000,"sni_seq_length":1,"sni_type":3,"custom_payload":"","payload_file":"","tls_mod":[],"timestamp_decrease":600000,"sni_mutation":{"mode":"off","grease_count":3,"padding_size":2048,"fake_ext_count":5,"fake_snis":[]},"tcp_md5":true},"targets":{"sni_domains":[],"ip":[],"geosite_categories":["youtube"],"geoip_categories":[]},"enabled":true,"dns":{"enabled":false,"target_dns":"","fragment_query":false},"stats":{"manual_domains":0,"manual_ips":0,"geosite_domains":178,"geoip_ips":0,"total_domains":178,"total_ips":0,"geosite_category_breakdown":{"youtube":178}}}


Hyperion

сет зависим от payload: gosuslugi.ru (генерируется в разделе настроек -> Capture) (основан на сервисе Гиперион

{"id":"1731ef6f-ec56-43b6-bc72-daec1e484daf","name":"hyperion","tcp":{"conn_bytes_limit":19,"seg2delay":20,"seg2delay_max":90,"syn_fake":false,"syn_fake_len":0,"syn_ttl":7,"drop_sack":false,"incoming":{"mode":"off","min":14,"max":14,"fake_ttl":7,"fake_count":3,"strategy":"badsum"},"desync":{"mode":"off","ttl":7,"count":3,"post_desync":false},"win":{"mode":"off","values":[0,1460,8192,65535]},"duplicate":{"enabled":false,"count":3}},"udp":{"mode":"fake","fake_seq_length":6,"fake_len":64,"faking_strategy":"none","dport_filter":"","filter_quic":"disabled","filter_stun":true,"conn_bytes_limit":8,"seg2delay":0,"seg2delay_max":0},"fragmentation":{"strategy":"combo","reverse_order":true,"tlsrec_pos":0,"middle_sni":true,"sni_position":1,"oob_position":0,"oob_char":120,"seq_overlap_pattern":[],"combo":{"first_byte_split":true,"extension_split":true,"shuffle_mode":"full","first_delay_ms":30,"jitter_max_us":1500,"decoy_enabled":false,"decoy_snis":["ya.ru","vk.com","mail.ru","dzen.ru"]},"disorder":{"shuffle_mode":"full","min_jitter_us":1000,"max_jitter_us":3000}},"faking":{"sni":true,"ttl":8,"strategy":"pastseq","seq_offset":10000,"sni_seq_length":1,"sni_type":4,"custom_payload":"","payload_file":"captures/tls_gosuslugi_ru.bin","tls_mod":[],"timestamp_decrease":600000,"sni_mutation":{"mode":"off","grease_count":3,"padding_size":2048,"fake_ext_count":5,"fake_snis":[]},"tcp_md5":true},"targets":{"sni_domains":["kinopub.online","linuxserver.io","euronews.com","shikimori.one","proton.me"],"ip":[],"geosite_categories":["cloudflare","ru-blocked","meta","discord","kinopub","youtube","intel","twitter","protonmail","canva","dw","category-media-ru","linkedin","instagram","hdrezka","fastly","hetzner","oracle","cdn77","digitalocean","akamai"],"geoip_categories":["cloudflare","digitalocean","contabo","akamai","amazon","hetzner","ovh","telegram","twitter","cdn77","scaleway","oracle","fastly"]},"enabled":true,"dns":{"enabled":false,"target_dns":"","fragment_query":false},"stats":{"manual_domains":5,"manual_ips":0,"geosite_domains":76395,"geoip_ips":7137,"total_domains":76400,"total_ips":7137,"geosite_category_breakdown":{"akamai":81,"canva":6,"category-media-ru":131,"cdn77":2,"cloudflare":74,"digitalocean":4,"discord":28,"dw":2,"fastly":8,"hdrezka":11,"hetzner":15,"instagram":74,"intel":288,"kinopub":11,"linkedin":12,"meta":553,"oracle":18,"protonmail":9,"ru-blocked":74866,"twitter":24,"youtube":178},"geoip_category_breakdown":{"akamai":596,"amazon":3447,"cdn77":213,"cloudflare":900,"contabo":284,"digitalocean":173,"fastly":62,"hetzner":117,"oracle":737,"ovh":554,"scaleway":21,"telegram":12,"twitter":21}}}

Заключение

B4 - один бинарник, который ставится одной командой, настраивается из браузера и умеет сам подбирать рабочую стратегию. Работает на Linux - от VPS до роутера на MIPS.

Проект в активной разработке. Буду рад багрепортам, идеям и рекомендациям.

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

без b4
без b4
при b4
при b4
без b4
без b4
до
после b4

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

Дисклеймер

B4 не является VPN, прокси или туннелем. Принципиальное отличие:

  • VPN/прокси - трафик идёт через промежуточный сервер. Провайдер не видит конечный адрес, но видит подключение к VPN. Именно такие инструменты попадают под регуляцию - они позволяют скрывать назначение трафика и получать доступ к заблокированным ресурсам.

  • B4 - трафик идёт напрямую, без промежуточных серверов. Провайдер видит, куда вы подключаетесь. Инструмент не меняет маршрут и не открывает доступ к заблокированным ресурсам. Программа работает на уровне структуры TCP-пакетов, не позволяя оборудованию DPI корректно классифицировать трафик.

На момент публикации (февраль 2026) использование подобных инструментов в РФ не запрещено законодательно. Автор не несёт ответственности за использование в юрисдикциях, где это может быть ограничено.

Комментарии (195)


  1. Jholinar Автор
    24.02.2026 23:23

    А еще, что б "имеповаднобыло" выложил кумулятивный транскрипт (как результат больших 24 главы) тех самых ютублекций лекций по ТСПУ на github
    https://github.com/DanielLavrushin/tspu-docs
    если вдруг кому интересно теорию почитать. Она сильно устаревшая (по разным источникам лецкии делались в 2021 году), но фундаментально базовая.


    1. Nemoumbra
      24.02.2026 23:23

      Гениальные уши у LLM. Принцип «ананасных мальчиков». Просто гениально.


      1. Jholinar Автор
        24.02.2026 23:23

        Это очень смешно, и правда. Я упустил этот момент в вычитке. В лекции речь шла о борьбе нанайских мальчиков. Ютуб странскриптил это в `ананайских мальчиков`, и после это все превратилось в борьбу `ананасных мальчиков`.


        1. FirsofMaxim
          24.02.2026 23:23

          Локальный мем получается...


    1. Lord_of_Rings
      24.02.2026 23:23

      о_О Вот это спасибо! Давно хотел что-то такое почитать, будет очень интересно как разработчику обходов) Это вы делали или нет? Какую иишку использовали?


    1. exeonid
      24.02.2026 23:23

      Судя по скринам на YT лежит видеоверсия


      1. Lord_of_Rings
        24.02.2026 23:23

        Вообще-то в readme репозитория есть эта ссылка


        1. exeonid
          24.02.2026 23:23

          Действительно. Не заметил


  1. Incognito4pda
    24.02.2026 23:23

    Здравствуйте. Скажите пожалуйста, на таком:

    Linux RT-BE92U-CC10 4.19.294 #1 SMP PREEMPT Tue Nov 25 10:59
    :27 EST 2025 aarch64 ASUSWRT-Merlin

    Ваш замечательный проект заведётся?


    1. Jholinar Автор
      24.02.2026 23:23

      о да, конечно! как азусник азуснику (обнимемся :)). Не вижу никаких проблем в заводе.

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


      1. Popadanec
        24.02.2026 23:23

        А что по требованиям к железу? У меня с учётом nfqws-keenetic(с веб мордой, но без автоподбора стратегий), меньше половины из 128Мб потребляется. Нагрузка ЦП, на уровне шума.


      1. up40k
        24.02.2026 23:23

        Ой, а скажите, в последних моделях асусов HW offloading все еще конфликтует с обработкой сетевых соединений в ядре? А то у меня на RT-AC88U (знаю, знаю, EOL и Мерлин уже два года не выпускал прошивки, как раз собираюсь обновляться по железу) - доходит до банального, либо hairpin NAT, либо NAT offloading и температура на 2-3 градуса ниже (77 вместо 80).
        Поскольку я все равно уже созрел отказаться от асуса, то вопрос чисто праздный.


        1. glebliutsko
          24.02.2026 23:23

          У вас система какая на роутере? OpenWRT?

          Проблема с offloading концептуальная (на сколько я понял), при включенном HW offloading пакеты через ядро (кроме первого) в принципе не проходят, а соответственно и захватывать и модифицировать нечего. Скорее всего такое будет на всех роутерах.

          Можно настроить так, что бы первые N пакетов проходили через ядро и только потом соединение отправлялись в HW offloading. Для этого надо немного поправить правило nftables, но создается оно автоматически firewall4 и как повлиять на него я не нашел.

          Но есть костыль. Сделать скрипт заменяющий правило и добавить hook в конфиг.

          /scripts/rewrite-nft-rule.sh
          #!/bin/sh
          
          trap "exit 1" TERM
          export TOP_PID=$$
          
          die () {
              >&2 echo "$1"
              kill -s TERM $TOP_PID
          }
          
          offload_rule=$(nft -a list ruleset | grep -E '^\s+meta l4proto \{ tcp, udp \} flow add @ft' || die 'Rule offloading not found')
          rule_handle=$(echo $offload_rule | sed -n 's/.*handle[[:space:]]\+\([0-9]\+\).*/\1/p')
          
          echo "Delete default rule $offload_rule"
          nft delete rule inet fw4 forward handle $rule_handle || die "Can't delete default rule"
          nft insert rule inet fw4 forward "ct packets > 50 meta l4proto { tcp, udp } flow add @ft"
          /etc/config/firewall
          config include
                  option enabled '1'
                  option type 'script'
                  option path '/scripts/rewrite-nft-rule.sh'
                  option fw4_compatible '1'

          Все что делает скрипт это заменяет правило `meta l4proto { tcp, udp } flow add @ft` на `ct packets > 50 meta l4proto { tcp, udp } flow add @ft`, т.е. теперь offloading применяется только для соединений после 50 пакетов. За эти 50 пакетов успевает примениться обман DPI, а дальше трафик все равно шифрованный.


          1. up40k
            24.02.2026 23:23

            OpenWRT?

            Вот в том и вопрос про асусы. Они используют Broadcom, который этот наш опенсорс в гробу видел. Как я понимаю (поправьте если не прав), у этих всяких чипов, заточенных на сети, есть разные типы offloading, не только NAT. И в той же OpenWRT можно на, например, Медиатеках, выбирать, какое именно ускорение включать, а какие вещи оставить ядру.

            За костыли спасибо, прикольное. Для сабжа как раз подходит, для hairpin NAT как я понял все равно придется отключать HW разгрузку, там все пакеты с/на внутренний бридж надо маскарадить. Но вообще странно, вродебы такая простая и нужная вещь, а её не реализовали на уровне железа.


            1. glebliutsko
              24.02.2026 23:23

              Вот в том и вопрос про асусы

              Судя по WIKI RT-AC88U вполне поддерживает openwrt
              https://openwrt.org/toh/asus/rt-ac88u

              У меня у самого Asus c OpenWRT, но на MediaTek.

              А вообще, мне кажется, на всех роутерах на linux offloading должен делаться одинаково. В nftables создается flowtable и дальше правилом туда добавляются соединения, а там уже драйвер в ядре сам разбирается, как эту таблицу на сетевую карту отправить.

              разные типы offloading

              Да есть программный, есть аппаратный.

              При программном пакеты все равно попадают в ядро, но пропускают большую часть сетевого стека и проверок (в том числе и правила netfilter) из-за чего нагрузка падает.

              При аппаратном пакеты вообще в ядро не попадают.

              В документации по ядру про это подробнее расписано, если интересно. https://docs.kernel.org/networking/nf_flowtable.html

              Но вообще странно, вродебы такая простая и нужная вещь, а её не реализовали на уровне железа.

              Да потому что эта функция нужна в РФ, да в Китае МБ. Никому больше не надо специально фрагментировать пакеты и творить прочую дичь с трафиком, лишь бы их DPI пропустил.


              1. up40k
                24.02.2026 23:23

                Оу, благодарю за линк. Последний раз поддержку в опенврт я смотрел лет 5 назад, а там как раз указано что поддерживается с версии 22.03.0. У меня устаревшие данные стало быть, как-то умудрились разработчики запилить поддержку BCM53xx.
                И за линк на flowtable тоже) Интересно.

                > Да потому что эта функция нужна в РФ, да в Китае МБ.
                Нене, я про hairpin NAT, это когда машины из локальной сети могут получить доступ к внутренним сервисам при обращении на внешний адрес роутера (при условии проброшенных портов, естественно). Если включать HW NAT offloading, то просто перестает работать вот это правило:
                `-A POSTROUTING -s $lan_subnet -d $lan_subnet -o $lan_bridge_if -j MASQUERADE`
                Сами пакеты проходят через проброшенные порты, но вот после рукопожатия (когда обработка потока уходит в железо) напрочь отключается SNAT и сервер начинает получать от роутера пакеты с адресом клиента в локальной сети, а не с адресом роутера.

                Впрочем, возможно дело именно в MASQUERADE, который сам по себе довольно тяжелый и требует получать информацию о текущем адресе на интерфейсе, а таблицам в железке неоткуда угадывать этот адрес. Надо будет попробовать просто SNAT вместе с HW offloading.


  1. eugenk
    24.02.2026 23:23

    Здравствуйте. Скажите, под винду и под андроид трудно допилить ?


    1. Jholinar Автор
      24.02.2026 23:23

      угу, к сожалению да, это серверное linux-по:(, под вин точно нет, но под андроид как буд-то можно буде попробовать


      1. eugenk
        24.02.2026 23:23

        Нет, про винду я имел в виду если выделить какой-то HAL и в нём просто заменить линуксовые системные вызовы на виндовые. Наверняка они достаточно похожи. С другой стороны, наверняка эта часть (HAL) окажется не слишком велика по сравнению со всем остальным. Вобщем поковыряюсь в исходниках. Про андроид даже не знаю, наверняка потребуется root, без чего хотелось бы обойтись..


        1. Jholinar Автор
          24.02.2026 23:23

          просто весь проект основан на базе линуксового nfqueue, по этому фундаметально винда мимо тут идет:( ну и в целом задача интересна была сделать сетевое серверное приложение (базово для роутеров), а не для частных клиентов.

          но! я могу что-то и не знать! проект опенсурсный, и если кто-то присоеденится к разработке, я буду более чем рад. Честно говоря это все те еще дебри всратые:).


          1. eugenk
            24.02.2026 23:23

            Полез сейчас гуглить "nfqueue аналог windows", выдало - Основным аналогом Linux-очереди пакетов NFQUEUE в Windows является драйвер WinDivert (Windows Packet Divert). Так что возможно не так уж всё безнадёжно. Попытаюсь :)))


            1. ThinkFresh
              24.02.2026 23:23

              Так через него и работает именитый "zapret")


            1. Lord_of_Rings
              24.02.2026 23:23

              Через WinDivert работает GoodbyeDPI, zapret и прочие. Если интересно, можете попробовать мое поделие, но оно работает как прокси, без дров


      1. matheria123
        24.02.2026 23:23

        Доброй ночи. А подробной инструкции как это дело поставить и настроить на Кинетик нет случайно?


        1. Jholinar Автор
          24.02.2026 23:23

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

          в любом случае у меня есть небольшие гайды на гитхабе, может помогут?

          https://daniellavrushin.github.io/b4/


          1. KW_xJERRYx
            24.02.2026 23:23

            не столько наверное с кинетиком связано, но не подскажете есть возможность оффлайн установку как-то сделать? На кинетике вива через скрипт получаю ошибку Failed to fetch latest version. Пробовал через wget, пробовал с флешки на которой стоит Entware. Проблем с доступом к гитхабу нет, в общем сходу как-то непонятно почему я номер последней сборки получить не могу

            UPD попробовал запустить ./install.sh v1.36.0 получил ошибку загрузки. Короче буду разбираться почему у меня с компа, на котором не установлено ни одного запрета и прочего к гитхабу доступ есть, а с роутера за которым этот комп находится доступа видимо нет


            1. Jholinar Автор
              24.02.2026 23:23

              да это косяк wget, нужно доставить `wget-ssl`.
              А попробуйте снова установить, кстати? я подкрутил кое-что в скрипте, может получится теперь?


              1. Launchlunch
                24.02.2026 23:23

                У меня так же, на DSL Skipper с 46Мб ROM:

                [INFO] Fetching latest release information...
                [WARNING] Direct download failed, trying proxy (proxy.lavrush.in)...
                [ERROR] Failed to fetch latest version

                Причём до этого установка прошла, но фейлился запуск без уточнения причин, поэтому решил очистить внутреннее хранилище, заново установил Entware, пакеты wget-ssl, bash и начал сначала.
                Рекомендуется больше памяти?


          1. DYNAMIT-75
            24.02.2026 23:23

            Человек не программист , но с пониманием дела , сможет залить в роутер данную стратегию ?


    1. cupespresso
      24.02.2026 23:23

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


    1. DarkStrider
      24.02.2026 23:23

      Под андроид уже есть решения, и да, рут нужен


      1. navion
        24.02.2026 23:23

        Для ByeByeDPI не нужен рут.


  1. eugenk
    24.02.2026 23:23

    del


  1. Asparagales
    24.02.2026 23:23

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


    1. Jholinar Автор
      24.02.2026 23:23

      много чего добавить можно и нужно, но конкретно это все уже есть.

      флаг `--remove` к скрипту удалит все установленное.

      А насчет правил - они добавляются только при работе приложения. При выходе все очищается и возвращается в былой вид.


  1. Metotron0
    24.02.2026 23:23

    Всё время хочется с сарказмом спросить, куда ж это ставить на Кинетике