Skip to content
/ DPI Public

Обход блокировок(youtube, discord) и DPI

Notifications You must be signed in to change notification settings

0x201/DPI

Repository files navigation

Как обойти DPI

В данном гайде я расскажу как исправить проблему зависающего YouTube и заблокированных сайтов с помощью различных программ обхода блокировок DPI (Deep Packet Inspection / Глубокое исследование пакетов).

Warning

В работу DPI погружать не буду, а сразу перейду к делу. Если есть желание узнать об этой технологии, вам сюда, или туда, или here.

GoodByeDPI (Windows)

  1. Скачайте архив с GoodByeDPI

  2. Распаковываем.

  3. Заходим в папку с программой и редактируем файл:

    • Если вам нужен YouTube рекомендую пользоваться:
    1_russia_blacklist_YOUTUBE.cmd
    1_russia_blacklist_YOUTUBE_ALT.cmd
    
    • Ну а если нужна раблокировка всех сайтов, но необязательно YouTube, то открываем: 1_russia_blacklist.cmd

    • Не рекомендуется использовать скрипты :

      service_install_russia_blacklist.cmd
      service_install_russia_blacklist_dnsredir.cmd
      service_install_russia_blacklist_YOUTUBE.cmd
      service_install_russia_blacklist_YOUTUBE_ALT.cmd
      

Так как они устанавливают службу в Windows, а потом их сложно будет выкорчевывать из системы. В добавок могут не открываться сайты (якобы нет интернета), а также есть вероятность срабатывания античит системы в игре на GoodByeDPI.

  1. После строчки goodbyedpi.exe вместо -9 вставим цифру в соответствии от вашего провайдера.
  2. Ну а после --fake-from-hex всталяем рандомный hex, с помощью hex генератора. В графе How many digits? вводим 120 и более, а после нажимаем Generate Hex, копируем и вставляем в файл.
  3. Сохраняем и выходим.
  4. И запускаем нужный нам скрипт.

Zapret для YouTube (Linux / Роутеры)

  1. Необходимо скачать программу и необходимые компоненты. Сделаем мы это с помощью Git.

Установка на Linux:

  • Debian / Ubuntu / Debian подобные: sudo apt-get install git curl ip6tables ipset iptables

  • Либо для Ubuntu: add-apt-repository ppa:git-core/ppa sudo 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
    
  • OpenWrt / Keenetic:

    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 # Если директории нет
    
  1. Клонируем архив с программой git clone https://github.com/bol-van/zapret /opt/zapret

  2. (OpenWRT/Keenetic пропускаем логин в рут) Переходим в папку с Zapret из под рута su - Вводим пароль root`а cd /opt/zapret

  3. Далее запускаем скрипты установки всех нужных компонентов ./install_bin.sh ./install_prereq.sh

Note

Если нужна разблокировка других сервисов, то смотрим на этот пункт.

  1. Запускаем скрипт установки службы ./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 - Рекомендую оставить по умолчанию
  1. Далее вставим ссылки из файла blacklist.txt В файл zapret-hosts-user.txt:

nano /opt/zapret/ipser/zapret-hosts-user.txt Сохраняемся и выходим.

  1. (Если хотите 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

Желательно перезагрузить компьютер или же перезапустить браузер.

Zapret для всех блокировок

  1. Запускаем скрипт для выявления стратегии обхода блокировок: ./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.
  1. Теперь после найденной стратегии запускаем скрипт ./install_easy.sh, доходим до do you want to edit the options и редактируем конфиг.

Zapret (Windows)

  1. Скачиваем программу из репозитория.
  2. Распаковываем.
  3. Зайдём в папку с Zapret и уже там в zapret-winws.
  4. Запустим файл preset_russia.cmd.

Warning

Изначальная конфигурация не будет работать, нужно её составить самому. В этом помогут неравнодушные люди с форумов и документация.

Zapret, но круче (Windows)

Тот же Zapret, но с готовыми конфигами.

  1. Скачиваем программу с репозитория.
  2. Распаковываем и запускаем .cmd файл в зависимости от того, что вам необходимо:
  • general.bat - для всех блокировок
  • general (ALT) - альтернативные варианты
  • general (МГТС) - для провайдера МГТС
  • discord.bat - для сервиса Discord
  • service_install - устанавливает службу в Windows

Zapret не менее крутой (Windows)

Это тоже сборка Zapret с готовыми конфигурациями.

Warning

Форум заблокирован на территории РФ, а потому зайти возможно либо с помощью VPN/Прокси, либо обходом DPI.

  1. Скачиваем программу, если же нет возможности зайти на форум, то я выложу архив с программой в данном репозитории.
  2. Распаковываем архив в удобное для нас место.
  3. И запустим программу файлом .cmd:
  • preset_russia.cmd - обычный пресет для обхода блокировок
  • preset_russia_noattl.cmd - пресет с установленным TTL
  • preset_russia_zl.cmd - не особо понял чем отличается, но по словам автора: "Или вариант _zl если хотите настройки как в zapret launcher.".

SpoofDPI (Linux / MacOS)

Caution

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

  1. Скачиваем SpoofDPI с помощью комманд:
    • MacOS Intel curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s darwin-amd64
    • MacOS Apple Silicon curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s darwin-arm64
    • Linux amd64 (x86/x64) curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s linux-amd64
    • Linux arm curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s linux-arm
    • Linux arm64 curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s linux-arm64
  2. Далее в зависимости от того какая у вас оболочка терминал Bash или Zsh, редактируем файл
    • Zsh - nano ~/.zshrc
    • Bash - nano ~/.bashrc

Проверить какая у вас стоит оболочка, можно с помощью комманды echo $SHELL

  1. В конфиге оболочки вставляем строку export PATH=$PATH:~/.spoofdpi/bin

Чтобы вводя spoofdpi у вас открывалась эта программа. Мы создали некоторую ассоциацию с ней.

  1. Необходимо перезапустить терминал, а лучше перезагрузить компьютер.

  2. Теперь запускаем программу (можем также добавить пару параметров) spoofdpi

  3. Программа запущена, но она не будет работать, т.к. мы должны запустить браузер с параметрами прокси на loopback google-chrome --proxy-server="http://127.0.0.1:8080"

Вместо google-chrome вводим название своего браузера.

ByeDPI (Android)

  1. Скачиваем программу с официального репозитория.

Tip

Также можно скачать продвинутую версию ByeByeDPI.

  1. Устанавливаем и запускаем.
  2. Сразу не подключаемся, а заходим в настройки с помощью шестерёнки в правом верхнем углу.
  3. (Необязательно, т.к. сервера Google медленее (либо и их замедляют)) В графе DNS вводим 8.8.8.8 вместо 1.1.1.1 (то есть вводим DNS Google вместо Cloudflare)
  4. Далее выбираем пункт UI editor.
  5. Тут уже можно поиграться с настройками и выявить стратегию обхода блокировок.
  6. После всех мохинаций выходим из настроек программы и нажимаем кнопку Connect / Подключиться

Или же можно вписать параметры в консоли. Найти их можно в ссылках.

YouTube через IPv6

Также стоит упомянуть такой способ, как просмотр видео через IPv6. В РФ если вы используете мобильную сеть, то вы являетесь пользователем IPv6, а DPI в свою очередь не особо умеет в данную версию интернет протокола (IPv6 - Internet Protocol version 6). Важно уточнить, хоть и DPI не сильно ладит с данным протоколом, сайты заблокированные в РФ останутся таковыми.

Note

Кстати, можно упомянуть статистику использования IPv6 в разных странах (по версии Google). Мы увидим, что Россия почти впереди планеты всей с 60%.

Решение возникших проблем

В данном разделе вы скорее всего найдёте решение вашей проблемы.

GoodByeDPI не работает

У GoodByeDPI большинство конфигураций пришли в негодность. Тут выходов немного:

Скрипты Zapret не являются исполняемыми

Для того чтобы дать скриптам права на исполнение вводим комманду: chmod u+x "путь до скрипта"

Если нужно наделить других пользователей полномочиями запускать скрипт, то вводим следующее: chmod ugo+x "путь до скрипта"

Нет Bash

  • 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

Zapret не запущен

Если служба не запущена, то запускаем её этой коммандой: 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 жрет много батареи

Решить это почти никак, т.к. по сути программа висит в фоне и весь ваш траффик пропускает через себя, модифицируя его. Но пару действий можно предпринять:

  • Можно включить оптимизацию батареи для данного приложения

    1. Переходим в настройки телефона, ищем пункт Приложения, там ищем ByeDPI, нажимаем на приложение.
    2. Здесь есть пункт Расход батареи / Экономия батареи / Использование батареи / App battery usage
    3. И выбираем пункт Optimized / Оптимизированый и в таком духе.
  • Могу дать совет, не используйте приложение в фоне постоянно. Посмотрели YouTube, условно говоря, выключили.

Источники / Готовые конфиги

Caution

NTC является заблокированным сайтом, как и ветка с ByeDPI на 4PDA (ТОЛЬКО VPN ИЛИ ПРОКСИ). Зайти можно либо с обходом блокировок (DPI), либо с VPN, либо с прокси.

Ссылки на готовые конфиги:

Список заблокированных сайтов позаимствовал от:

Поддержка

Если вы хотите поддержать автора, то поставьте ⭐ (в левом верхнем углу). Автор: 0x201 :3