В данном гайде я расскажу как исправить проблему зависающего YouTube и заблокированных сайтов с помощью различных программ обхода блокировок DPI (Deep Packet Inspection / Глубокое исследование пакетов).
Warning
В работу DPI погружать не буду, а сразу перейду к делу. Если есть желание узнать об этой технологии, вам сюда, или туда, или here.
- Как обойти DPI
-
Скачайте архив с GoodByeDPI
-
Распаковываем.
-
Заходим в папку с программой и редактируем файл:
- Если вам нужен 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.
- После строчки
goodbyedpi.exe
вместо-9
вставим цифру в соответствии от вашего провайдера. - Ну а после
--fake-from-hex
всталяем рандомный hex, с помощью hex генератора. В графеHow many digits?
вводим 120 и более, а после нажимаемGenerate Hex
, копируем и вставляем в файл. - Сохраняем и выходим.
- И запускаем нужный нам скрипт.
- Необходимо скачать программу и необходимые компоненты. Сделаем мы это с помощью 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
-
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
Note
Если нужна разблокировка других сервисов, то смотрим на этот пункт.
-
Запускаем скрипт установки службы
./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, но с готовыми конфигами.
- Скачиваем программу с репозитория.
- Распаковываем и запускаем
.cmd
файл в зависимости от того, что вам необходимо:
general.bat
- для всех блокировокgeneral (ALT)
- альтернативные вариантыgeneral (МГТС)
- для провайдера МГТСdiscord.bat
- для сервиса Discordservice_install
- устанавливает службу в Windows
Это тоже сборка Zapret с готовыми конфигурациями.
Warning
Форум заблокирован на территории РФ, а потому зайти возможно либо с помощью VPN/Прокси, либо обходом DPI.
- Скачиваем программу, если же нет возможности зайти на форум, то я выложу архив с программой в данном репозитории.
- Распаковываем архив в удобное для нас место.
- И запустим программу файлом
.cmd
:
preset_russia.cmd
- обычный пресет для обхода блокировокpreset_russia_noattl.cmd
- пресет с установленным TTLpreset_russia_zl.cmd
- не особо понял чем отличается, но по словам автора: "Или вариант _zl если хотите настройки как в zapret launcher.".
Caution
Разработчик временно перестал поддерживать программу. Если она не работает, то дело в долгих выходах обновлений.
- Скачиваем 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
- MacOS Intel
- Далее в зависимости от того какая у вас оболочка терминал Bash или Zsh, редактируем файл
- Zsh -
nano ~/.zshrc
- Bash -
nano ~/.bashrc
- Zsh -
Проверить какая у вас стоит оболочка, можно с помощью комманды echo $SHELL
- В конфиге оболочки вставляем строку
export PATH=$PATH:~/.spoofdpi/bin
Чтобы вводя spoofdpi
у вас открывалась эта программа. Мы создали некоторую ассоциацию с ней.
-
Необходимо перезапустить терминал, а лучше перезагрузить компьютер.
-
Теперь запускаем программу (можем также добавить пару параметров)
spoofdpi
-
Программа запущена, но она не будет работать, т.к. мы должны запустить браузер с параметрами прокси на loopback
google-chrome --proxy-server="http://127.0.0.1:8080"
Вместо google-chrome
вводим название своего браузера.
- Скачиваем программу с официального репозитория.
Tip
Также можно скачать продвинутую версию ByeByeDPI.
- Устанавливаем и запускаем.
- Сразу не подключаемся, а заходим в настройки с помощью шестерёнки в правом верхнем углу.
- (Необязательно, т.к. сервера Google медленее (либо и их замедляют)) В графе DNS вводим
8.8.8.8
вместо1.1.1.1
(то есть вводим DNS Google вместо Cloudflare) - Далее выбираем пункт UI editor.
- Тут уже можно поиграться с настройками и выявить стратегию обхода блокировок.
- После всех мохинаций выходим из настроек программы и нажимаем кнопку Connect / Подключиться
Или же можно вписать параметры в консоли. Найти их можно в ссылках.
Также стоит упомянуть такой способ, как просмотр видео через IPv6. В РФ если вы используете мобильную сеть, то вы являетесь пользователем IPv6, а DPI в свою очередь не особо умеет в данную версию интернет протокола (IPv6 - Internet Protocol version 6). Важно уточнить, хоть и DPI не сильно ладит с данным протоколом, сайты заблокированные в РФ останутся таковыми.
Note
Кстати, можно упомянуть статистику использования IPv6 в разных странах (по версии Google). Мы увидим, что Россия почти впереди планеты всей с 60%.
В данном разделе вы скорее всего найдёте решение вашей проблемы.
У GoodByeDPI большинство конфигураций пришли в негодность. Тут выходов немного:
- Собрать программу из исходного кода, дабы была возможность пользоваться новыми параметрами.
- Поискать рабочие конфигурации.
- Можно перейти на аналоги по типу: Zapret, SpoofDpi
- Ну или VPN. Тут уже ищите сами :)
Для того чтобы дать скриптам права на исполнение вводим комманду:
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 - 4PDA, GitHub Issue, NTC
- GoodByeDPI - NTC скрипт для нахождения стратегии, GitHub Issue
- Zapret - GitHub Issue, NTC
- SpoofDPI - GitHub параметры
Список заблокированных сайтов позаимствовал от:
Если вы хотите поддержать автора, то поставьте ⭐ (в левом верхнем углу). Автор: 0x201 :3