мне выдали пермач в /s/ за то что рофлил над набросами лахты так что все вопросы задавайте в каментах, тред тамошний я больше не читаю потому что всё равно ничего написать не могу. ![молодец, политик, лидер и боец](https://i.imgur.com/x2mctAq.jpg) # ZAPRET - ПРОГРАММА КОТОРАЯ ПОЗВОЛЯЕТ ОБОЙТИ БЛОКИРОВКИ И ЗАМЕДЛЕНИЕ ЮТУБА НА ЛИНУКСЕ ## КАК СКАЧАТЬ И УСТАНОВИТЬ ПРОГРАММУ *инструкция для пользователей федоры и убунты, люди которые пользуются арчем и дебианом в пошаговых инструкциях для домохозяек не нуждаются* `sudo dnf install -y curl ipset dnsutils git jq` строчка для федоры `sudo apt install -y curl ipset dnsutils git jq` строчка для убунты `sudo pacman -S --needed curl ipset bind git jq` строчка для манжары **ВНИМАНИЕ У МЕНЯ НЕТ МАНЖАРЫ И МНЕ ЛЕНЬ СТАВИТЬ ЕЁ В ВИРТУАЛКУ НО ЛЮДИ УТВЕРЖДАЮТ ЧТО ЭТО ПРАВИЛЬНЫЙ АНАЛОГ ДЛЯ МАНЖАРЫ** > [!IMPORTANT] > ЕСЛИ У ВАС OPENWRT ТО ВМЕСТО КОМАНД ВЫШЕ НАДО ВВЕСТИ ЭТИ ``` service zapret stop opkg update opkg install curl ipset git bind-dig git-http libcurl jq cd / mkdir opt cd /opt wget $(curl -s https://api.github.com/repos/bol-van/zapret/releases/latest | jq -r '.assets[] | select(.name | contains ("openwrt")) | .browser_download_url') -O /opt/zapret-latest.tar.gz tar -xvzf /opt/zapret-latest.tar.gz rm -v /opt/zapret-latest.tar.gz cp -vr /opt/zapret-v*/* /opt/zapret/ rm -rfv zapret-v* cd /opt/zapret ./install_bin.sh ./install_prereq.sh ``` если у вас openwrt то я настоятельно советую сначала сделать возможность подключить флешку к роутеру как внешний носитель по [официальной инструкции](https://openwrt.org/docs/guide-user/additional-software/extroot_configuration) чтобы не трястись за каждый килобайт свободного места на роутере. > [!NOTE] > КОНЕЦ КОМАНД ДЛЯ OPENWRT ЕСЛИ У ВАС ЕГО НЕТ ДАЛЬШЕ НАДО ВВЕСТИ ``` sudo apt-get update sudo apt-get install jq -y sudo dnf --assumeyes install jq cd /opt sudo wget $(curl -s https://api.github.com/repos/bol-van/zapret/releases/latest | jq -r '.assets[] | .browser_download_url' | grep zapret-v[0-9\.]*.tar.gz | head -n 1) -O /opt/zapret-latest.tar.gz sudo tar -xvzf /opt/zapret-latest.tar.gz sudo rm -v /opt/zapret-latest.tar.gz sudo cp -vr /opt/zapret-v*/* /opt/zapret/ sudo rm -rfv zapret-v* cd /opt/zapret sudo ./install_bin.sh sudo ./install_prereq.sh ``` это установит все пакеты и сделает предварительную настройку. ## ГДЕ ВЗЯТЬ АДРЕС КЕШИРУЮЩЕГО СЕРВЕРА адрес кеширующего сервера вы будете вставлять в блокчек чтобы найти способ обхода блокировки именно ютуба а не рутрекера (по умолчанию в скрипте блокчека стоит именно адрес рутрекера) инструкция на примере хромоподелий: 1) тыкаете на страничке ютуба правой кнопкой -> инструменты разработчика -> инспектировать 2) справа открывается панелька, вверху тыкайте на сеть 3) пишите в фильтре googlevideo 4) тыкайте на один из запросов 5) справа будет виден полный адрес 6) копируйте домен кеширующего сервера без `https://` вот как это должно выглядеть - стрелками показал в каком порядке куда тыкать ![как получить адрес кеширующего сервера гугла](https://gist.github.com/user-attachments/assets/a32c3daf-372d-494b-85d7-57029c040f33) теперь адрес можно вставлять в блокчек для поиска стратегии обхода блокировки ютуба - вставлять любой другой домен не поможет обойти блокировку ютуба, но поможет обойти блокировку того домена который вставлен в блокчек. потом надо запустить в терминале блокчек - скрипт который подберёт методы обхода конкретно под ваш провайдер `/opt/zapret/blockcheck.sh` **БЛОКЧЕК НАДО ЗАПУСКАТЬ ТОЛЬКО КОГДА ПРОГРАММА НЕ РАБОТАЕТ. ЕСЛИ ПРОГРАММА УЖЕ РАБОТАЕТ НАДО ПЕРЕД ЗАПУСКОМ БЛОКЧЕКА ВЫПОЛНИТЬ `sudo systemctl stop zapret` а на openwrt `service zapret stop` или `/opt/zapret/uninstall_easy.sh`** Блокчек будет спрашивать доступ к какому серверу будем тестировать (не надо указывать googlevideo.com потому что он даёт редирект который вызывает ложноe срабатывание блокчека, лучше вбить добытый по инструкции выше адрес кеширующего сервера гугла если надо обойти именно блокировку ютуба или оставить по дефолту рутрекер), количество повторений теста - тут я советую указать 2-3 повторения, это будет в разы медленней но зато не будет ложных срабатываний как если бы стратегия обхода блокировки была рабочая, а на самом деле это единичный сбой ТСПУ. Но у меня мелкий провайдер с посредственными айтишниками, может на крупных провайдерах ТСПУ не даёт сбоев и одного повторения достаточно. Блокчек напишет какая стратегия обхода оптимальная, выглядеть это будет примерно так: >* SUMMARY > >ipv4 rr2---sn-4gxxqvh-8v1s.googlevideo.com curl_test_https_tls12 : nfqws --dpi-desync=split2 >ipv4 rr2---sn-4gxxqvh-8v1s.googlevideo.com curl_test_http3 : nfqws -dpi-desync=fake,split2 —dpi-desync-ttl=3 значит при установке или переустановке запрета надо выбрать режим `nfqws` и в параметр `NFQWS_OPT_DESYNC_HTTPS` вставить `--dpi-desync=split2`а в параметр `NFQWS_OPT_DESYNC_QUIC` вставить `-dpi-desync=fake,split2 —dpi-desync-ttl=3`. у вас могут быть другие параметры, но делать надо примерно так же по аналогии - что советует блокчек в строке с `curl_test_https_tls12` суём в `NFQWS_OPT_DESYNC_HTTPS` что советует блокчек в строке с `curl_test_http3` суём в `NFQWS_OPT_DESYNC_QUIC`. > [!NOTE] > ДЛЯ ТОГО ЧТОБЫ ТЕСТ ПРЕДЛАГАЮЩИЙ ПАРАМЕТРЫ ДЛЯ ОБХОДА ЗАМЕДЛЕНИЯ ЮТУБА ЗАРАБОТАЛ ВАМ МОЖЕТ ПОТРЕБОВАТЬСЯ CURL С ПОДДЕРЖКОЙ HTTP3/QUIC ЕГО МОЖНО СКАЧАТЬ ТУТ https://curl.se/download.html И СУНУТЬ В /USR/BIN НО СНАЧАЛА ПЕРЕИМЕНУЙТЕ СТАРЫЙ CURL ЧТОБЫ НЕ ПЕРЕЗАПИСАТЬ ЕГО И ВОССТАНОВИТЬ В СЛУЧАЕ ЧЕГО НО НА НОВЫХ ДИСТРИБУТИВАХ ЭТО МОЖЕТ БЫТЬ УЖЕ НЕ НУЖНО ## КАК УСКОРИТЬ БЛОКЧЕК И НАЙТИ МАКСИМУМ РАБОЧИХ СТРАТЕГИЙ ОБХОДА 1. открываете blockcheck.sh в текстовом редакторе 2. находите там строчку вида `[ "$SCANLEVEL" = quick ] && break` 3. меняете её на `break` 4. запускаете блокчек, выбираете режим `standard` и несколько повторений 5. теперь в режиме `standard` блокчек будет переходить к следующему тесту после первой же неудачи, поэтому даже если вы укажете 10 повторений теста это будет быстрее чем обычный `standard` но найдёт гарантированное рабочие стратегии обхода если они вообще в принципе могут быть. 6. подробнее об ускорении блокчека можно почитать [здесь](https://github.com/bol-van/zapret/issues/884#issuecomment-2497609286). затем надо выполнить `sudo /opt/zapret/install_easy.sh` скрипт может спросить что у вас - `iptables` или `nftables`. современные убунты и федоры насколько мне известно используют `nftables`. но если укажете неправильно - ничего страшного, запустите ещё раз `install_easy.sh` и укажете параметры по другому. и при установке включить режим `nfqws` который посоветовал блокчек (или другой режим из списка если блокчек посоветовал другой), выглядеть этот список будет так: ``` enable tpws socks mode on port 987 ? (default : N) (Y/N) ? enable tpws transparent mode ? (default : N) (Y/N) ? enable nfqws ? (default : Y) (Y/N) ? ``` если блокчек посоветовал другой режим надо вбить другую циферку. далее установщик спросит надо ли вам запускать с определёнными параметрами программу, выглядеть это будет так: `do you want to edit the options (default : N) (Y/N) ?` надо будет вбить Y и откроется файлик примерно такого вида ``` NFQWS_OPT= "--filter-tcp=80 --dpi-desync=split --dpi-desync-ttl=7 --hostlist=/opt/zapret/lists/rest.txt --new --filter-tcp=443 --dpi-desync=fake,split2 --dpi-desync-ttl=7 --hostlist=/opt/zapret/lists/rest.txt --new --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=10 --hostlist=/opt/zapret/lists/discord.txt --new --filter-tcp=443 --dpi-desync=split --dpi-desync-fooling=badseq --wssize 1:6 --hostlist=/opt/zapret/lists/yt.txt --new --filter-tcp=443 --dpi-desync=fake --dpi-desync-ttl=2 --hostlist=/opt/zapret/lists/discord.txt --new --filter-tcp=443 --dpi-desync=fake --dpi-desync-ttl=2" ``` как это работает - `--filter-tcp=80` это к какому протоколу и порту будут применяться параметры обхода, `--hostlist=` это путь к хостлисту в котором перечислены домены (хостлист это текстовый файл в котором указываете домены в столбик по одному на строчку) к которым будут применяться параметры обхода, а между ними надо вставить те параметры обхода которые предложит блокчек. > [!NOTE] > НА ВСЯКИЙ СЛУЧАЙ ЧТО ТАКОЕ "СОХРАНИТЬ И ВЫЙТИ" > параметры вы будете вбивать в редакторе `nano` когда вобьёте нажимаете `CTRL+X` потом `Y` потом `ENTER`. > я это добавил потому что такой вопрос уже был. остальные опции мне менять не потребовалось, просто тыкал enter. вообще не бойтесь тыкать энтер во всех случаях кроме того когда спрашивают про выбор режима (который `SELECT MODE` выше) и про выбор параметров обхода (их должен подобрать блокчек и они у каждого провайдера свои), во всех остальных случаях запрет имеет такие настройки которые почти всем подойдут, а если напортачите при настройке то можно будет заново запустить `install_easy.sh` и заново всё настроить. ## КАК СДЕЛАТЬ ТАК ЧТОБЫ ЗАРАБОТАЛ ДИСКОРД ВКЛЮЧАЯ ЗВОНКИ ЧЕРЕЗ ДИСКОРД для пк ``` sudo cp /opt/zapret/init.d/openwrt/custom.d.examples/50-discord /opt/zapret/init.d/openwrt/custom.d ``` для опенврт ``` cp /opt/zapret/init.d/openwrt/custom.d.examples/50-discord /opt/zapret/init.d/openwrt/custom.d ``` и потом перезапускаем запрет через ``` /opt/zapret/install_easy.sh ``` или ``` service zapret restart ``` (для опенврт) или ``` sudo systemctl restart zapret ``` (для пк). ## КАК ЗАПУСТИТЬ/ОСТАНОВИТЬ ПРОГРАММУ ВРУЧНУЮ ЧТОБЫ ЗАНОВО ЗАПУСТИТЬ БЛОКЧЕК? ``` start : sudo systemctl start zapret stop : sudo systemctl stop zapret ``` ## КАК ДОБАВИТЬ/УДАЛИТЬ ЕЁ ИЗ АВТОЗАГРУЗКИ ``` enable auto start : sudo systemctl enable zapret disable auto start : sudo systemctl disable zapret ``` ## КАК ОБНОВИТЬ ПРОГРАММУ ``` cd /opt sudo wget $(curl -s https://api.github.com/repos/bol-van/zapret/releases/latest | \ jq -r '.assets[] | select(.name | contains ("tar.gz")) | .browser_download_url') sudo tar -xvzf zapret*.tar.gz sudo rm zapret-v*.tar.gz sudo mv -f zapret-v* zapret cd /opt/zapret ``` но можно просто скачать руками из https://github.com/bol-van/zapret/releases/latest ## КАК ОБНОВИТЬ ГИТ ``` cd /opt/zapret sudo git checkout master sudo git fetch --all sudo git reset --hard sudo git pull ``` ## ПРОЧИЕ ПОЛЕЗНЫЕ КОМАНДЫ ``` status, output messages : sudo systemctl status zapret timer info : sudo systemctl list-timer delete service : sudo systemctl disable zapret ; sudo rm /lib/systemd/system/zapret.service delete timer : sudo systemctl disable zapret-list-update.timer ; sudo rm /lib/systemd/system/zapret-list-update./* ``` ## СЛОЖНОЕ как скомпилировать из исходников самый свежак из гитхаба? сначала надо установить пакеты которые могут пригодиться ``` kde deb12.8 sudo apt install git python3-distutils ncurses-dev gawk wget libcap-dev kubuntu22.04 sudo apt install git make build-essential unzip libncurses-dev fedora41 sudo dnf install git perl patch ncurses-devel libcap-devel ``` затем можно следовать [инструкции](https://github.com/bol-van/zapret/blob/master/docs/compile/build_howto_openwrt.txt) но надо понимать что там указан SDK для openwrt 23.5.5 а у вас может быть другая, например я использую такую команду ``` curl -o - https://downloads.openwrt.org/releases/23.05.4/targets/x86/64/openwrt-sdk-23.05.4-x86-64_gcc-12.3.0_musl.Linux-x86_64.tar.xz | tar -Jxvf - cd openwrt-sdk-23.05.4-x86-64_gcc-12.3.0_musl.Linux-x86_64 ``` а в остальном то же самое ``` curl -o - https://downloads.openwrt.org/releases/23.05.4/targets/x86/64/openwrt-sdk-23.05.4-x86-64_gcc-12.3.0_musl.Linux-x86_64.tar.xz | tar -Jxvf - cd openwrt-sdk-23.05.4-x86-64_gcc-12.3.0_musl.Linux-x86_64 ./scripts/feeds update base packages ./scripts/feeds install libnetfilter-queue zlib libcap cp -R /opt/zapret/docs/compile/openwrt/. . cp -R /opt/zapret/tpws package/zapret/tpws cp -R /opt/zapret/nfq package/zapret/nfqws cp -R /opt/zapret/mdig package/zapret/mdig cp -R /opt/zapret/ip2net package/zapret/ip2net rm -f package/zapret/tpws/tpws/tpws package/zapret/nfqws/nfq/nfqws package/zapret/mdig/mdig/mdig package/zapret/ip2net/ip2net/ip2net make package/{tpws,nfqws,mdig,ip2net}/compile ls -l bin/packages/*/base ``` последняя команда покажет есть ли скомпилированные ipk/apk файлы или нет. если нет значит что-то пошло не так и надо читать какие ошибки пишет компилятор. если они там есть значит надо их закинуть в роутер (mc очень удобно перекидывать файлы через ssh) и установить в опенврт роутера, а потом запустить скрипт `install_easy.sh` и он установит свежайшую версию запрета прямо из гита. ## ОБРАТНАЯ СВЯЗЬ если есть вопрос или нашли ошибку/опечатку - можно прям в каменты написать, но тут нет уведомлений о них так что я их прочитаю когда зайду прям сюда по ссылке.