Примерно год назад я написал статью ChatGPT без VPN за 10 минут (и установка нативного приложения). Хотя она актуальна до сих пор, сегодня я хочу вам рассказать про еще один способ. Он основан на том же принципе, но использует другие подходы и инструменты.

Суть: мы делаем свой DNS-профиль в NextDNS или Cloudflare и автоматически актуализируем его раз в сутки.

Для этого я написал небольшую программу. Самое приятное: для ее работы вам не придется ничего устанавливать вообще.

Как это работает

Программа будет запускаться в GitHub Actions, каждую ночь обновляя записи DNS.
Для этого ей потребуются данные вашей учетки от выбранного DNS-провайдера и ссылки на файлы hosts, которые будут использованы для применения правил.

Где брать hosts?

За прошедшее время появилось несколько альтернатив DNS от Comss, которые сами предоставляют эти файлы (за что им большое спасибо). В рамках статьи мы воспользуемся файлом hosts от GeoHide DNS:
https://raw.githubusercontent.com/Internet-Helper/GeoHideDNS/refs/heads/main/hosts/hosts

Почему просто не использовать готовое чужое решение?

Вы вполне можете указать у себя в настройках адрес Comss, Xbox DNS, GeoHide или 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 : Edit
Account.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

  1. На странице форкнутого репозитория выбираем вкладку Actions и нажать длинную зеленую кнопку "I understand...".

  2. Слева выбираем пункт DNS Block&Redirect Configurer cron task

  3. Справа появится предупреждение, жмем там кнопку Enable workflow

  4. Производим ручной запуск через кнопку Run Workflow

Через несколько секунд вы увидите, что джоба запустилась.

Вот и все! Не забудьте прописать в настройках ваших устройств адрес нового DNS :)

Комментарии (16)


  1. ArtyomOchkin
    11.01.2026 15:26

    Просто используйте для смартфона dns.comss.one и аналогичные серверы.


    1. remindscope Автор
      11.01.2026 15:26

      Просто - не значит безопасно. Для вас в статье есть спойлер:
      Почему просто не использовать готовое чужое решение?


      1. ArtyomOchkin
        11.01.2026 15:26

        Спасибо, ознакомился.

        Но если дополнительно использовать VPN или не использовать такой DNS для критически важной информации, а всяких DIY поделок, то страшного ничего не должно быть по идее. Хотя и есть возможности глубокого анализа пакетов и тп, учитывая TLS шифрование, и что в ChatGPT используется повсеместно https://, добавляет некоторый уровень безопасности.

        Для более серьёзных проектов и важной информации, согласен, публичные VPN/DNS прокси неприемлемы.


        1. remindscope Автор
          11.01.2026 15:26

          Небольшая поправка: Дополнительно использовать VPN нет смысла, его нужно использовать вместо.

          В остальном, все так.


  1. averkij
    11.01.2026 15:26

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


    1. remindscope Автор
      11.01.2026 15:26

      Буду благодарен, если укажете на сложные моменты, попробую отредактировать


  1. Aleksandr_Moosienko
    11.01.2026 15:26

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


    1. remindscope Автор
      11.01.2026 15:26

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


  1. fermentum
    11.01.2026 15:26

    Спасибо, настроил. Правила скриптом прописывались 19 минут.

    Но тот же dezeer и многое другое из списка все равно верно определяет регион.

    С другой стороны, настройки приватности у Некста действительно порадовали. Попробую использовать как альтернативный профиль фильтрации DNS в кинетике.


    1. remindscope Автор
      11.01.2026 15:26

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


    1. fermentum
      11.01.2026 15:26

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


      1. M_AJ
        11.01.2026 15:26

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


  1. Serge1001
    11.01.2026 15:26

    Для google ai studio поможет? Или они по учетке банят?


    1. remindscope Автор
      11.01.2026 15:26

      Поможет


  1. Andnet
    11.01.2026 15:26

    Сейчас любой имеет свой сервер. К чему городить огороды? Если и так есть доступ ко всем нужным ресурсам. .Это тот вариант, когда простой вопрос решается сложными и нестабильными вариантами и будет забыт и снесен через месяц, по причине неработоспособности.
    Ну а про днс мутного сайта комсс вообще смешно читать, вы хоть сам сайт видели? там адекватных пользователей то нет и весь сайт был создан только для продажи лицензий, сейчас он мертвый и малоинтересен. Как можно доверять свои запросы? Яндексбраузер еще надо посоветовать тогда и антивирус касперского и мессенджер макс, для полного счастья, на верочку.


    1. remindscope Автор
      11.01.2026 15:26

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