March 8, 2023

Обход гео-блокировок на сайтах

Сначала я расскажу про такой сервис, как CONTROL D. Он будет помогать нам обходить гео-блокировки на сайтах (например, можно будет зайти на всем известный openai.com или войти в аккаунт Spotify, находясь в России).

Для его использования вообще не нужно ничего скачивать, его можно установить на любое устройство и даже в роутер! И не надо сейчас думать "мой роутер слишком старый, наверное в нем эта функция не поддерживается", так как настройка DNS серверов поддерживается даже в самых древних роутерах.

Его разработкой занимается не ноу-нейм компания, а Windscribe. Можно ли доверять - решать вам.

Для начала нужно создать аккаунт на сайте https://controld.com/

В Starting Configuration выбираем Geo-Unblocking Profile.

Так как у сервиса есть 30-дневный бесплатный период, у нас есть два варианта: либо каждый месяц менять аккаунт (для создания не требуется даже почта), либо оплачивать 4$ в месяц (очень дешево за такой крутой сервис).

Включаем переключатель "30 Days Free Trial?" и нажимаем Finish.

Аккаунт создан! Теперь давайте добавим настройку DNS на устройство.

Нажимаем на "Add Device", далее нажимаем + возле Devices.

Как добавлять устройство?

Выбираем нашу платформу, ставим любое имя на английском в поле "Device Name".

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

Если она включена, будет доступна настройка "В каком регионе хранить статистику". Включать это все или нет - решать вам, я включил.

Наконец, нажимаем на "Add Device".

Настройка на windows 10

Для настройки на Windows обязательно нужно, чтобы была включена галочка "Legacy Resolver" на предыдущем этапе.

Нам понадобятся данные из раздела Legacy DNS. Кстати, никому их не сообщайте!

Нажимаем правой кнопкой на Пуск -> Выполнить. Вводим ncpa.cpl.

Далее два раза нажимаем на нашу сеть -> Свойства -> IP версии 4 -> Использовать следующие адреса DNS-серверов.

Далее соответственно вводим IP-адреса, как на скриншоте:

Аналогично делаем и с IP версии 6:

На этом настройка завершена!

Как теперь обходить гео-ограничения на сайтах?

Допустим, мы нашли какой-то сайт, который ограничен для пользователей из России. Приведу в пример всем известный openai.com

Если я попытаюсь войти в аккаунт openai, будет ошибка:

Нам нужно создать правило на CONTROL D. Для этого заходим на эту страницу: https://controld.com/control-panel/custom-rules

Здесь можно создавать сторонние правила, что нам и нужно в данный момент.

Нажимаем на + внизу справа, вводим openai.com:

В ползунке Select Rule выбираем третью позицию - Redirect. Затем нажимаем Choose Destination и выбираем любую страну. Я выбрал Auto Location.

Больше ничего трогать не нужно, нажимаем Add Rule. В случае именно сайта openai.com нужно еще очистить его куки. Всё! И вот я успешно зашел в аккаунт openai.com!

Теперь попробуем войти в Spotify Desktop. У нас этого сделать не получится.

Все самые известные сервисы собраны в отдельной вкладке - Services

Идем в Audio -> включаем Spotify и делаем уже известный нам Redirect

Именно для Spotify я советую выбрать не Auto Location, а всегда одинаковую страну. Я выбрал США. А еще именно для Spotify нужно сменить страну в аккаунте.

Теперь я могу входить в Spotify Desktop!

Обратите внимание, что из-за кеширования DNS в системе правила могут примениться не сразу. Для очистки кеша DNS выполните команду в cmd от имени администратора:

ipconfig /flushdns

Обходить ограничения вы научились, а теперь узнаем, что ещё может CONTROL D.

Он может блокировать рекламу, слежку и прочий кал интернета.

Во вкладке Filters я включил такие переключатели:

Какие включите вы - решать вам.

Никаких расширений для блокировки у меня не установлено, давайте выполним AdBlock Test:

Как видите, CONTROL D на все 100% справляется с блокировкой рекламы и слежки!

Ещё он может блокировать некоторые сайты. Допустим, я хочу, чтобы никаким образом у меня не мог установиться Яндекс Браузер на ПК. Скачивается он с сайта browser.yandex.ru.

Я снова захожу во вкладку Custom Rules, добавляю правило browser.yandex.ru и передвигаю ползунок налево, то есть Blocked.

Теперь этот сайт у меня никогда не сможет открыться:

Вот такая магия DNS серверов! Об остальных возможностях CONTROL D, я думаю, вы узнаете сами.

К сожалению, магии DNS серверов недостаточно, чтобы обходить блокировки РКН.

Ведь они блокируются с помощью DPI - Deep packet inspection.

Вкратце расскажу, как это работает. Вот так выглядит обычный HTTP запрос:

GET /index.php HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: keep-alive

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

GET /index.php HTTP/1.1
hoSt: ru.wikipedia.org
user-agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
coNNection: keep-alive

Или, например, два таких запроса:

GE

T /index.php HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: keep-alive

Оборудование провайдера не сможет проверить эти запросы (так как пакеты "повреждены") и спокойно пропустит их :)

Именно так "повреждает" пакеты программа GoodbyeDPI. С ней мы можем спокойно посещать заблокированные РКН сайты.

Скачать с официального репозитория GitHub:

VirusTotal:

В архиве детектится не goodbyedpi.exe, а WinDivers.sys, который ловит все пакеты (повреждает пакеты - поэтому и детектится).

Нужно распаковать архив в какую-нибудь папку. Устанавливается все это дело одним файлом, но если вы хотите использовать GoodbyeDPI одновременно с CONTROL D, нужно будет отредактировать файл service_install_russia_blacklist_dnsredir.cmd, как на скриншоте:

Параметры "--dns-port 1253" и "--dnsv6-port 1253" нужно удалить.

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

После всех действий запускаем файл service_install_russia_blacklist_dnsredir.cmd от имени администратора, нажимаем любую клавишу... и всё! Теперь мы можем спокойно посещать заблокированные РКН сайты!

А что насчет Android?

К сожалению, тут мы можем это установить только с root-правами.

Скачать DPI Tunnel для Android с официального GitHub репозитория:

VirusTotal:

www.virustotal.comать DPI Tunnel одновременно с CONTROL D, нужно зайти во вкладку Профили -> Wromg SEQ universal (по умолчанию) -> в самом низу в поле DoH сервер нужно вписать значение DNS-over-HTTPS/3

После этого нажимаем на СТАРТ и всё, можем посещать заблокированные РКН сайты.