В данном гайде я расскажу как исправить проблему зависающего YouTube и заблокированных сайтов с помощью различных программ обхода блокировок DPI (Deep Packet Inspection / Глубокое исследование пакетов).
Warning
В работу DPI погружать не буду, а сразу перейду к делу. Если есть желание узнать об этой технологии, вам сюда, или туда, или here.
- Как обойти DPI
- Необходимо скачать программу и необходимые компоненты. Сделаем мы это с помощью Git.
Установка на Linux:
-
Debian / Ubuntu / Debian подобные:
sudo apt-get install git curl ip6tables ipset iptables -
Либо для Ubuntu:
add-apt-repository ppa:git-core/ppasudo apt update && apt install git curl ip6tables ipset iptables -
Arch / Arch подобные:
sudo pacman -S git dnsutils curl ip6tables ipset iptables -
Red Hat / Fedora / Red Hat подобные:
sudo dnf install git curl iptables ipset -
NixOs:
sudo nix-env -i git curl ipset iptables -
Gentoo:
emerge --ask --verbose dev-vcs/git emerge --ask --verbose net-misc/curl emerge --ask --verbose net-firewall/ipset emerge --ask --verbose net-firewall/iptables -
opkg update opkg install iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptables-mod-ipopt iptables-mod-conntrack-extra ipset curl ip6tables-mod-nat grep git-http curl gzip ipset iptables nano ca-certificates mkdir /opt # Если директории нет
-
Клонируем архив с программой
git clone https://github.com/bol-van/zapret /opt/zapret -
(OpenWRT/Keenetic пропускаем логин в рут) Переходим в папку с Zapret из под рута
su -Вводим пароль root`аcd /opt/zapret -
Далее запускаем скрипты установки всех нужных компонентов
./install_bin.sh./install_prereq.sh -
Запускаем скрипт установки службы
./install_easy.shИ делаем следующее:
- Select firewall type - Выбираем на свое усмотрение
- enable IPV6 support - Выбираем отталкиваясь от того какой версии IP вы пользуетесь
- select MODE - Рекомендую выбирать между tpws и nfqws. Я буду показывать напримере nfqws, т.к. работает она лучше.
- do you want to edit the options - Да, мы хотим изменить, а потому вводим
Yи изменяем опции:
NFQWS_OPT_DESYNC="" #NFQWS_OPT_DESYNC_SUFFIX= #NFQWS_OPT_DESYNC_HTTP= #NFQWS_OPT_DESYNC_HTTP_SUFFIX= #NFQWS_OPT_DESYNC_HTTPS= #NFQWS_OPT_DESYNC_HTTPS_SUFFIX= #NFQWS_OPT_DESYNC_HTTP6= #NFQWS_OPT_DESYNC_HTTP6_SUFFIX= #NFQWS_OPT_DESYNC_HTTPS6= #NFQWS_OPT_DESYNC_HTTPS6_SUFFIX= NFQWS_OPT_DESYNC_QUIC="" #NFQWS_OPT_DESYNC_QUIC_SUFFIX= #NFQWS_OPT_DESYNC_QUIC6= #NFQWS_OPT_DESYNC_QUIC6_SUFFIX=Всё что за # - комменатрии, их не трогаем. Нужны нам лишь
NFQWS_OPT_DESYNCи (опционально, в зависимости от того будете вы использовать протокол QUIC или нет)NFQWS_OPT_DESYNC_QUIC.Выбираем способ обхода замедления. Теперь вписываем в
NFQWS_OPT_DESYNCпосле=":NFQWS_OPT_DESYNC="ваш способ обходаДля протокола QUIC:
NFQWS_OPT_DESYNC_QUIC="ваш способ обхода"
- После настройки опций сохраняемся и выходим.
- WAN interface - Рекомендую выбрать ANY
- enable http support - Включаем
- enable https support - Включаем
- enable quic support - Можно не включать, опять же в зависимости от того будете ли вы пользоваться протоколом QUIC или нет
- select filtering - Рекомендую выбирать hostlist
- do you want to auto download ip/host list - Скачиваем сам hostlist
- your choice - Рекомендую оставить по умолчанию
- Далее вставим ссылки из файла blacklist.txt
В файл
zapret-hosts-user.txt:
nano /opt/zapret/ipser/zapret-hosts-user.txt
Сохраняемся и выходим.
- (Если хотите QUIC) В вашем браузере зайдите в доп. настройки:
- Chrome -
chrome://flags/#enable-quic - Vivaldi -
vivaldi://flags/#enable-quic - Opera -
opera://flags/#enable-quic - Yandex -
browser://flags/#enable-quic - FireFox - зайдите в
about:configи в поиске введитеnetwork.http.http3.enable, переставьте значение наtrue.
Important
Желательно перезагрузить компьютер или же перезапустить браузер.
- Запускаем скрипт для выявления стратегии обхода блокировок:
./blockcheck.sh
- specify domain(s) for test - По умолчанию выставлен rutracker.org, можно оставить. Но не выставляйте как тестовый домен YouTube или Google, т.к. они замедлены, но не заблокированы полностью.
- ip protocol version(s) - Выбираем отталкиваясь от того какой версии IP вы пользуетесь.
- check http - Оставляем.
- check https tls 1.2 - Оставляем.
- check https tls 1.3 - Отключаем.
- do not verify server certificate - Отключаем.
- how many times to repeat each test - Выставляем кол-во запросов на сайт с одной стратегией.
- Выбор между quick standart force: Quick - Быстрая проверка (15-30 минут). Standart - Классическая проверка (1-1.5 часов). Force - Максимальная проверка (более 2-ух часов).
- Теперь ожидаем окончание проверки.
- После окончания проверки появится итоговый результат. Выглядит он примерно так (ЭТО НЕ ГОТОВЫЙ КОНФИГ):
ipv4 rutracker.org curl_test_https_tls12:nfqws --dpi-desync=fake,split2 --dpi-desync-ttl=3Важна нам часть после :- nfqws - это MODE, который вы выбираете в скрипте install_easy.sh, у вас может быть и tpws.
- Строку
--dpi-desync=fake,split2 --dpi-desync-ttl=3нам необходимо вставить в опциюNFQWS_OPT_DESYNCилиNFQWS_OPT_DESYNC_QUIC.
- Теперь после найденной стратегии запускаем скрипт
./install_easy.sh, доходим до do you want to edit the options и редактируем конфиг.
- Скачиваем программу из репозитория.
- Распаковываем.
- Зайдём в папку с Zapret и уже там в
zapret-winws. - Запустим файл
preset_russia.cmd.
Warning
Изначальная конфигурация не будет работать, нужно её составить самому. В этом помогут неравнодушные люди с форумов и документация.
Тот же Zapret, но с готовыми конфигами.
- Скачиваем программу с репозитория.
- Распаковываем и запускаем
service.cmdфайл. - В открывшемся меню выбираем
10. Run Diagnostics. Данная функция проверит вашу систему на наличие препятствий на пути обхода блокировок. Ликвидируем все преграды и переходим к следующему пункту. - После прохождения диагностики запускаем
11. Run Tests. Выбираем пункт который вам нужен:1. Standart tests- проверка доступа заблокированного ресурса (Youtube, Google, Cloudflare(как сайт, а не груда айпишников)).2. DPI Checket- проверка доступа к CDN (Content Delivery Network), это всякие: Cloudflare (На нём интернет держится), Fastly (Steam, и др.), Hetzner (Arch Linux репозитории) и куча других.
- Далее рекомендую выбрать пункт
All configs, так как вы пока не знаете какие конфиги работают лучше, а потому придётся потратить время на проверку заведомо плохих. Однако это гарантирует лучший результат. - После проверки наблюдаем итоги, по ним ориентируемся при выборе конфига. В меню программы нажимаем
1. Install Service, выбираем конфигурацию и всё.
Warning
По всем остальным вопросам рекомендую читать официальную документацию, потому что здесь повторяться не хочу, да и я не автор оригинальной программы, а потому не знаю многих тонкостей.
- Скачиваем программу с официального репозитория.
- Устанавливаем и запускаем.
- Сразу не подключаемся, а заходим в настройки.
- Далее выбираем пункт
Подбор стратегий (Beta). - Слева сверху есть шестерёнка (настройки подбора), можно там поколодовать с тем, что именно будем проверять, как и зачем. Выберите что вам необходимо и запускайте проверку, она обычно занимает 10-15 минут.
- После перед нами предстаёт список стратегий от лучше к худшей, выбираем, которая по запросам превзошла всех (то есть 150/150 или какая у вас первая в списке).
- Выходим в главное меню нажимаем кнопку подключения и проверяем, работает - отлично, нет - берём другую стратегию.
Далее можно на свой вкус и цвет настроить программу, например поставить белые или чёрные списки прокисируемых приложений, но тут уже ваше решение.
В данном разделе вы скорее всего найдёте решение вашей проблемы.
Для того чтобы дать скриптам права на исполнение вводим комманду:
chmod u+x "путь до скрипта"
Если нужно наделить других пользователей полномочиями запускать скрипт, то вводим следующее:
chmod ugo+x "путь до скрипта"
-
Debian / Ubuntu / Debian подобные:
sudo apt-get install bash -
Arch / Arch подобные:
sudo pacman -S base base-devel -
Red Hat / Fedora / Red Hat подобные:
sudo dnf install bash -
Gentoo:
emerge --ask --verbose app-shells/bash -
NixOs:
sudo nix-env -u '*' -
OpenWrt / Keenetic:
opkg install bash
Если служба не запущена, то запускаем её этой коммандой:
sudo systemctl start --now zapret.service
Для остановки:
sudo systemctl stop --now zapret.service
Для отключения автозагрузки:
sudo systemctl disable --now zapret.service
Для добавления в автозагрузку:
sudo systemctl enable --now zapret.service
Чтобы узнать статус службы вводим:
sudo systemctl status zapret.service
Если же такой службы нет, то переходим к пункту 5 и запускаем скрипт, вчитываясь в логи. Так можно найти ошибку.
Решить это почти никак, т.к. по сути программа висит в фоне и весь ваш траффик пропускает через себя, модифицируя его. Но пару действий можно предпринять:
-
Можно включить оптимизацию батареи для данного приложения
- Переходим в настройки телефона, ищем пункт Приложения, там ищем ByeDPI, нажимаем на приложение.
- Здесь есть пункт Расход батареи / Экономия батареи / Использование батареи / App battery usage
- И выбираем пункт Optimized / Оптимизированый и в таком духе.
-
Могу дать совет, не используйте приложение в фоне постоянно. Посмотрели YouTube, условно говоря, выключили.
Caution
NTC является заблокированным сайтом, как и ветка с ByeDPI на 4PDA (ТОЛЬКО VPN ИЛИ ПРОКСИ). Зайти можно либо с обходом блокировок (DPI), либо с VPN, либо с прокси.
Ссылки на готовые конфиги:
- ByeDPI/ByeByeDPI- 4PDA, GitHub Issue, NTC
- Zapret - GitHub Issue, NTC
Списки заблокированных сайтов можете найти здесь:
Если вы хотите поддержать автора, то поставьте ⭐ (в левом верхнем углу). И, пожалуйста, старайтесь своими действиями помочь сделать этот мир лучше и свободнее. Автор: 0x201 :3