Примерно год назад я написал статью ChatGPT без VPN за 10 минут (и установка нативного приложения). Хотя она актуальна до сих пор, сегодня я хочу вам рассказать про еще один способ. Он основан на том же принципе, но использует другие подходы и инструменты.
Суть: мы делаем свой DNS-профиль в NextDNS или Cloudflare и автоматически актуализируем его раз в сутки.
Для этого я написал небольшую программу. Самое приятное: для ее работы вам не придется ничего устанавливать вообще.
Как это работает
Программа будет запускаться в GitHub Actions, каждую ночь обновляя записи DNS.
Для этого ей потребуются данные вашей учетки от выбранного DNS-провайдера и ссылки на файлы hosts, которые будут использованы для применения правил.
Принцип работы обхода блокировок
Многие сайты недоступны в РФ не из-за блокировок со стороны РКН. Напротив, они сами отказываются обслуживать пользователей некоторых стран.
Для этого используют геоблокировку: проверяют, к какой стране относится IP, с которого пришел запрос. Именн�� так поступают Chatgpt, Gemini, Spotify и многие другие.
Геоблокировку можно обойти, подменив свой IP на иностранный: запросы отправляются не напрямую к сайту, а через прокси-сервер, который находится в другой стране.
Если совсем просто: мы отправляем запросы на "ретранслятор", который не попадает под геоблокировку. Таким образом, запрос получает новый, подходящий IP.
Важно понимать: это не VPN. Трафик не шифруется. Никакие скрепные законы не нарушаются, сервера YouTube не ускоряются.
Где брать hosts?
За прошедшее время появилось несколько альтернатив DNS от Comss, которые сами предоставляют эти файлы (за что им большое спасибо). В рамках статьи мы воспользуемся файлом hosts от GeoHide DNS:
https://raw.githubusercontent.com/Internet-Helper/GeoHideDNS/refs/heads/main/hosts/hosts
Почему просто не использовать готовое чужое решение?
Вы вполне можете указать у себя в настройках адрес Comss, Xbox DNS, GeoHide, malw, Astracat или mafioznik. В этом случае, абсолютно все ваши DNS-запросы пойдут через их сервера. Проходит ли кто-то из них аудиты безопасности и прочие процедуры, которые могут гарантировать конфиденциальность? Очевидно, что нет.
Более того, владельцы Xbox DNS активно борются с использованием IP их прокси-серверов напрямую, минуя их DNS-сервер. Лично я из этого делаю вывод, что они каким-то образом монетизируют DNS-запросы и, совершенно точно, занимаются их хранением и обработкой (иначе такая борьба была бы невозможна технически).
Но вот что мы можем сделать - это минимизировать свои риски, проксируя только те запросы, которые действительно в этом нуждаются. А все остальные - пускать через проверенного провайдера с неподконтрольной РКН юрисдикцией.
Что выбрать между NextDNS и Cloudflare
Однозначного фаворита нет, поскольку каждый из способов имеет свои ограничения.
Ограничения Cloudflare
100 000 DNS-запросов в сутки на бесплатном тарифе (вполне достаточно)
На бесплатном тарифе DNS-запросы по IPv4 оганичены одним IP-адресом, что делает данный способ неудобным для случаев, когда вы не можете использовать запросы DNS-over-HTTPS, DNS-over-TLS/QUIC или IPv6 (на них ограничений нет)
Ограничения NextDNS
300 000 DNS-запросов в месяц на бесплатном тарифе (тоже вполне достаточно)
Медленный API, который никак не выйдет из беты (на данный момент - всего 1 RPS), не позволяет загружать данные "пачкой". Каждый домен приходится записывать отдельным запросом. Поэтому время обновления растягивается на несколько минут.
Мой совет
Для себя я выбрал NextDNS. Данный провайдер позволяет в настройках профиля выбрать целую кучу списков блокировки трекеров и прочей гадости, снимая со скрипта необходимость добавлять их через медленный API. Просто перейдите во вкладку Privacy и выберите столько настроек Blocklists и Native Tracking Protection, сколько захотите.
Ограничение Cloudflare на IPv4 вкупе с отсутствием встроенного каталога списков блокировки делает его не самым удобным в использовании. Стоит выбирать, если вам зачем-то нужна максимально высокая скорость обновления настроек.
Настройка работы через GitHub Actions
Если коротко, то вся настройка займет пару минут, ее можно разделить на несколько коротких этапов:
1) Форкаем репозиторий
2) Генерируем токен доступа, находим свой ID клиента
3) Настраиваем несколько переменных среды для работы GitHub Actions
Осталось прописать адрес DNS в настройках ваших устройств - и все готово!
Я предлагаю посмотреть вам видео с настройкой для NextDNS, в котором за две минуты показан весь процесс. Перед просмотром убедитесь, что вы "ускорили" кэширующие сервера YouTube :)
Ниже, уже более мелкими шагами, дана инструкция, и дополнительно описан процесс настройки для Cloudflare. Также при необходимости вы можете ознакомиться с readme.
Шаг 1. Форкаем репозиторий
Если у вас еще нет аккаунта на GitHub
Придется его создать. Не используйте одноразовую почту, в идеале - войти через свою основную почту Google. Иначе GitHub заподозрит в вас бота и заблокирует возможность сделать форк.
На странице репозитория жмем Fork вверху справа. Если вы в хорошем настроении, можете заодно прожать звезду :)
Шаг 2. Создаем место хранения переменных среды
После того, как форк готов, перейдите по пути Settings → Environments и создайте новую environment с именем DNS. Не закрывайте вкладку - она нам еще пригодится.
Шаг 3. Получаем данные учетной записи
Для NextDNS:
1) Сгенерируйте API KEY на странице https://my.nextdns.io/account
и сохраните его в Environment secrets на вкладке с Шага 2 как AUTH_SECRET
2) Нажмите на логотип NextDNS. На открывшейся странице скопируйте ID из секции Endpoints . Сохраняем в Environment secrets как CLIENT_ID.
Для Cloudflare:
1) После регистрации в Cloudflare перейдите во вкладку Zero Trust и создайте аккаунт с бесплатным тарифом. Шаг с добавлением платёжного метода можно пропустить, нажав Cancel and exit (в правом верхнем углу).
2) Создайте токен: Create Token → Create Custom Token: https://dash.cloudflare.com/profile/api-tokens
С двумя разрешениями (Permissions): Account.Zero Trust : EditAccount.Account Firewall Access Rules : Edit
Сохраните его в Environment secrets как AUTH_SECRET
3) Найдите Account ID по ссылке https://dash.cloudflare.com/?to=/:account/workers и сохраните в Environment secrets как CLIENT_ID
Шаг 4: устанавливаем провайдера DNS
Создайте Environment variable (именно variable, не secret!) с названием DNS и именем выбранного вами DNS-провайдера (NextDNS или Cloudflare).
Шаг 5: задаем настройки перенаправления и блокировки
Создайте Environment variable с названием REDIRECT и поместите туда ссылку на hosts. Если вы хотите добавить несколько ссылок, указывайте их через запятую без пробела. Если домен встречается в нескольких списках, приоритет отдается той записи, которая была получена первой.
Создайте Environment variable с названием BLOCK и поместите туда ссылку на hosts
Если у вас один файл, в котором сразу указаны редиректы и блокировки, программа это поймет и отфильтрует только те записи, которые подходят под правило. Таким образом, редирект отбросит все, что начинается с
0.0.0.0и127.0.0.1, а блок поступит наоборот. Так что имеет смысл ��казать один файл сразу и там, и там.Напоминю, что для NextDNS лучше всего указывать только редирект, а блокировки настраивать самостоятельно в личном кабинете!
Шаг 5: запускаем GitHub Actions
На странице форкнутого репозитория выбираем вкладку Actions и жмем длинную зеленую кнопку "I understand...".
Слева выбираем пункт DNS Block&Redirect Configurer cron task
Справа появится предупреждение, жмем там кнопку Enable workflow
Производим ручной запуск через кнопку Run Workflow
Через несколько секунд вы увидите, что джоба запустилась.
Вот и все! Не забудьте прописать в настройках ваших устройств адрес нового DNS :)
Комментарии (71)

averkij
11.01.2026 15:26Способ годный, но, кмк, не все читатели поймут, как это работает. Немного скомкано написано

remindscope Автор
11.01.2026 15:26Буду благодарен, если укажете на сложные моменты, попробую отредактировать

fronik
11.01.2026 15:26Нехватает логических деталей как именно этот инструмент решает проблему доступа к GPT? Как в этом случае идет трафик? Происходит подмена только dns зоны или dns перенаправляет на какой-то прокси?
Прочитал статью, но так и не понял деталей, только догадки.

remindscope Автор
11.01.2026 15:26Подмены DNS-зоны не происходит, вы правильно догадались про прокси.
Подробнее ответил чуть ниже
Также здесь можно посмотреть примерную схему реализации

viruseg
11.01.2026 15:26После прочтения я так и не понял, через что пойдёт трафик для сайтов из списка?

remindscope Автор
11.01.2026 15:26Трафик пойдет через прокси, которые передают ваш запрос, благодаря чему целевые сайты будут видеть IP именно прокси, а не ваш. Так как прокси находятся в странах, на которые не настроен геоблок, запросам не будет отказано в обработке. Короче, примерно как VPN, только трафик не идет по зашифрованному туннелю.

viruseg
11.01.2026 15:26Спасибо за ответ. Получается, нужно иметь в распоряжении прокси (всё-таки нужен свой сервер)? Извиняюсь, если туплю. Я очень далёк от сетевых технологий.

remindscope Автор
11.01.2026 15:26Ничего, мне нетрудно ответить)
Свой прокси не нужен - в этом и удобство способа. Мы используем уже существующие, общедоступные прокси. Как раз их IP адреса и указаны в файле hosts, который используется в статье. Взгляните

Okeu
11.01.2026 15:26общедоступные прокси. Как раз их IP адреса
а не возникает проблем с банами или закрытием доступа для айпишника публичного прокси? Например помню, что первое время ChatGPT банил, если мой VPS в "неудачном" по их мнении пуле адресов находился, откуда много "левого" траффла идет.
И одну учетку мне так уже сносили с подпиской. Но там был VPS прокси, и это было в начале 23 года
remindscope Автор
11.01.2026 15:26Пока таких проблем не припомню. В любом случае, если они возникнут, их решают владельцы DNS-серверов. Программа просто обновит список на новые IP и все

vikarti
11.01.2026 15:26Ну то есть в итоге - сводится все к тому же прокси только на этот раз - не comss а (насколько понимаю) нечто заточенное под эти нужды (GeoHide) и живущее - где?
Но вроде как с инструкциями как свое такое поднять (если я правильно понимаю - инструкции на https://github.com/Internet-Helper/GeoHideDNS вот только создано буквально недавно).

remindscope Автор
11.01.2026 15:26Да, если говорить совсем прямо - все сводится к неизвестно чьим, неизвестно где живущим прокси)
Поэтому и столько заморочек, чтоб не пускать туда чувствительный трафик.
В идеале бы действительно свое поднять, но как вы понимаете, у нас здесь рубрика "любой ценой, но бесплатно"

fedokanez
11.01.2026 15:26Вопрос , а не проще просто использовать actions в гитхаб для отправки запросов по апи в нужный gpt и получать ответ , записывая его себе куда-то?

remindscope Автор
11.01.2026 15:26Для этого у джобы должен быть статический IP, а также возможность крутиться бесконечно. Такие фичи недоступны

fedokanez
11.01.2026 15:26У меня просто был репозиторий на гитхабе с bash скриптом , который брал ключи отправлял запрос и сохранял файл в репозиторий с ответом, скрипт запускался с помощью , action.yml, а тригерился при создании проблемы или при обновлении , ну так конечно я согласен , что у Вас совсем о другом )))

fermentum
11.01.2026 15:26Спасибо, настроил. Правила скриптом прописывались 19 минут.
Но тот же dezeer и многое другое из списка все равно верно определяет регион.
С другой стороны, настройки приватности у Некста действительно порадовали. Попробую использовать как альтернативный профиль фильтрации DNS в кинетике.

remindscope Автор
11.01.2026 15:26Пожалуйста! Со списками есть нюанс, их часто вручную формируют, поэтому могут быть косяки. Обычно, рано или поздно исправляют

fermentum
11.01.2026 15:26Важный момент про NextDNS. У них один из узлов расположен в Anexia Cloud Solutions GmbH, что потенциально может быть проблемой.

M_AJ
11.01.2026 15:26Можете развернуть мысль, а то быстрый гуглинг не дал понимания того, чем они таким занимаются.

fermentum
11.01.2026 15:26При включении через NextDNS запросы DNS начинают ходить через ближайшие узлы - в основном через Киев. В настройках профиля не нашел как настроить предпочитаемые узлы.

vikarti
11.01.2026 15:26Но тот же dezeer и многое другое из списка все равно верно определяет регион.
Если не боитесь в консоли запускать команды которые запускают что-то с интернета (ну или есть песочница/виртуалка поднятая под это) то в консоли линукса со своего основного подключения :
bash <(wget -qO- https://github.com/vernette/ipregion/raw/master/ipregion.sh)
(Если не понимаете почему предупреждение - теоретически там может патч бармина качаться например)
Реально получите Checking XXX и итоге примерно такой вывод:
vikarti@nest:~$ bash <(wget -qO- https://github.com/vernette/ipregion/raw/master/ipregion.sh)
Made with <3 by vernette
https://github.com/vernette/ipregionIPv4: 91.555.., registered in CENSORED
ASN: AS555555 CENSOREDPopular services
Service IPv4
Google RU
YouTube RU
Twitch US
ChatGPT US
Netflix US
Spotify US
Reddit US
Disney+ N/A
Reddit (Guest Access) No
YouTube Premium No
Spotify Signup Yes
Disney+ Access No
Apple US
Steam US
Tiktok US
Ookla Speedtest US
JetBrains US
PlayStation US
Microsoft USCDN services
Service IPv4
Cloudflare CDN US (SEA)
YouTube CDN CA (YYZ)
Netflix CDN USGeoIP services
Service IPv4
maxmind.com US
rdap.db.ripe.net US
ipinfo.io US
cloudflare.com US
ipregistry.co US
ipapi.co US
ifconfig.co US
ip2location.io US
iplocation.com US
country.is N/A
geoapify.com US
geojs.io US
ipapi.is US
ipbase.com US
ipquery.io N/A
ipwho.is US
ip-api.com US
vikarti@nest:~$И смотрите где там вылазит ненужное.

remindscope Автор
11.01.2026 15:26добавлю, что можно не запускать локально, а воспользоваться https://terminator.aeza.net/ru/

vikarti
11.01.2026 15:26В случае с Terminator'ом вы будете проверять их сетевой канал а не свой+что у вас там в качестве Технических Средств Предотвращения Угроз Цензуры.

Andnet
11.01.2026 15:26Сейчас любой имеет свой сервер. К чему городить огороды? Если и так есть доступ ко всем нужным ресурсам. .Это тот вариант, когда простой вопрос решается сложными и нестабильными вариантами и будет забыт и снесен через месяц, по причине неработоспособности.
Ну а про днс мутного сайта комсс вообще смешно читать, вы хоть сам сайт видели? там адекватных пользователей то нет и весь сайт был создан только для продажи лицензий, сейчас он мертвый и малоинтересен. Как можно доверять свои запросы? Яндексбраузер еще надо посоветовать тогда и антивирус касперского и мессенджер макс, для полного счастья, на верочку.
remindscope Автор
11.01.2026 15:26Ну, справедливости ради, и сервер стабильным вариантом не назвать. Постоянно банят диапазоны IP у крупных хостеров. В способе из статьи я просто заменю один, "нестабильный и неработоспособный" вариант (каждый из которых уже существует больше года), на другой. Просто подставив новый файлик. И не потеряю ни деньги на аренде старого сервера, ни время на поиск нового, который пока еще не попал в черные списки.

PetrSerg
11.01.2026 15:26Зря на dns.comss.one тут наехали. comss.ru и dns.comss.one - это разные вещи.
dns.comss.one - проект AdGuard. Но, видимо, некоторые люди, как тут любят говорить, дальше первой строчки читать не умеют.
riky
11.01.2026 15:26comss.one редиректит на ru

PetrSerg
11.01.2026 15:26А куда редиректит dns.comss.one ?

MrPlap
11.01.2026 15:26На развернутый у кого-то (comss.ru) экземпляр Adguard Home. Который вы точно также можете развернуть на своём сервере и в нём также настроить себе и блокировку запросов, и перезапись.

S3R1OUS
11.01.2026 15:26Откуда дровишки про проект AdGuard? То что они используют AdGuard Home, не говорит о том что это проект AdGuard. На сайте AdGuard DNS dns.comss.one фигурирует как доверенный сторонний сервис.
https://adguard-dns.io/kb/ru/private-dns/statistics-and-log/statistics/
по ссылке выше страница из документации AdGuard DNS. Просто для размышления.
upd: пока коммент прошел модерацию выше уже пояснили. Мысль в том что сервис собирает данные и статистику. Как администратор сервиса этими данными распоряжается - вопрос открытый.

Bardakan
11.01.2026 15:26не совсем понимаю, что получилось в итоге. Вы имеете полный доступ к chatgpt, включая api? Или этот способ позволит только открывать и общаться с chatgpt через сайт?
ArtyomOchkin
Просто используйте для смартфона dns.comss.one и аналогичные серверы.
remindscope Автор
Просто - не значит безопасно. Для вас в статье есть спойлер:
Почему просто не использовать готовое чужое решение?
ArtyomOchkin
Спасибо, ознакомился.
Но если дополнительно использовать VPN или не использовать такой DNS для критически важной информации, а всяких DIY поделок, то страшного ничего не должно быть по идее. Хотя и есть возможности глубокого анализа пакетов и тп, учитывая TLS шифрование, и что в ChatGPT используется повсеместно https://, добавляет некоторый уровень безопасности.
Для более серьёзных проектов и важной информации, согласен, публичные VPN/DNS прокси неприемлемы.
remindscope Автор
Небольшая поправка: Дополнительно использовать VPN нет смысла, его нужно использовать вместо.
В остальном, все так.
poige
— Гонять трафик ChatGPT (или ещё чего-то) через публичные неизвестные прокси, управляемые третьими лицами, подключаясь к ним через DNS-подмену, и при этом называть это «без VPN» — ну технически тут, конечно, у пользователя нет VPN, но …
— это не ✌️подменить свой IP✌️Единственная подмена тут — результатов DNS запроса. А по сути это называется воспользоваться чужими Proxy-серверами. Что с одной стороны, при HTTPS не сказать, чтобы уж совсем опасным было, но принципиально от использования чужих VPN-серверов не отличается — трафик всё так же проходит через посредников.