Автоматический обход блокировок ChatGPT через DNS и GitHub Actions | AiManual
AiManual Logo Ai / Manual.
11 Янв 2026 Гайд

Обход блокировок ChatGPT: автоматическое обновление DNS-правил через GitHub Actions без VPN

Полное руководство по настройке автообновления DNS-правил для доступа к ChatGPT без VPN. NextDNS, Cloudflare, GitHub Actions.

Почему VPN — это прошлый век для доступа к ChatGPT

Каждый раз, когда вы включаете VPN чтобы зайти в ChatGPT, вы платите трижды. Деньгами за подписку. Скоростью — потому что трафик идет через другой континент. И приватностью — ведь провайдер VPN видит все ваши запросы. Особенно обидно, когда блокируют только один сервис, а вы вынуждены туннелировать весь интернет.

Если вы из России, Турции, Ирана, Китая или любой другой страны где ChatGPT решили заблокировать — этот гайд для вас. Но предупреждаю: технический уровень — средний. Если не знаете что такое DNS, лучше сначала почитайте основы.

Магия DNS: как работает обход блокировок

Когда вы вводите chat.openai.com в браузере, происходит примерно следующее:

  1. Ваш компьютер спрашивает у DNS-сервера: "Какой IP у chat.openai.com?"
  2. Если DNS-сервер заблокирован или подчиняется местным законам, он отвечает: "Не знаю такого" или подсовывает фейковый IP
  3. Вы получаете ошибку "Доступ запрещен"

Решение гениально простое: использовать DNS-сервер который не подчиняется местным блокировкам. Но есть проблема — IP-адреса ChatGPT меняются. Часто. И если вы просто прописали статический IP в hosts файле, через неделю он перестанет работать.

💡
Вот почему большинство инструкций "просто добавь эти строки в hosts" работают пару дней. OpenAI использует CDN, облачные платформы, балансировщики нагрузки. IP-адреса плавают как рыбы в океане.

NextDNS vs Cloudflare: кто кого?

У вас есть два основных варианта для умного DNS:

Сервис Плюсы Минусы Для кого
NextDNS Графический интерфейс, логи, блокировка рекламы, кастомные правила Бесплатно только 300k запросов в месяц Для тех кто хочет контроль и мониторинг
Cloudflare DNS Полностью бесплатно, быстрый, 1.1.1.1 легко запомнить Нет кастомных правил, только общий DNS Для минималистов

Я выбираю NextDNS. Почему? Потому что он позволяет создавать кастомные конфигурации с правилами типа "все запросы к *.openai.com перенаправлять на рабочие IP". И эти конфигурации можно обновлять через API.

Сердце системы: Python-скрипт который находит живые IP

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

#!/usr/bin/env python3
import dns.resolver
import requests
import json
from datetime import datetime

# Домены которые нужно проверять
DOMAINS = [
    'chat.openai.com',
    'api.openai.com',
    'platform.openai.com',
    'auth0.openai.com',
    'cdn.openai.com'
]

# Публичные DNS-сервера которые точно знают настоящие IP
DNS_SERVERS = [
    '1.1.1.1',        # Cloudflare
    '8.8.8.8',        # Google
    '9.9.9.9',        # Quad9
    '208.67.222.222'  # OpenDNS
]

def find_best_ip(domain):
    """Находит рабочий IP для домена"""
    ips_found = []
    
    for dns_server in DNS_SERVERS:
        try:
            resolver = dns.resolver.Resolver()
            resolver.nameservers = [dns_server]
            answers = resolver.resolve(domain, 'A')
            
            for rdata in answers:
                ip = str(rdata)
                # Проверяем что IP доступен
                try:
                    # Быстрая проверка через HEAD запрос
                    response = requests.head(
                        f'https://{domain}',
                        headers={'Host': domain},
                        timeout=2,
                        verify=False
                    )
                    if response.status_code < 500:
                        ips_found.append(ip)
                        break  # Достаточно одного рабочего IP
                except:
                    continue
                    
        except Exception as e:
            print(f"Ошибка с DNS {dns_server}: {e}")
            continue
    
    return ips_found[0] if ips_found else None

def generate_nextdns_config(domain_ips):
    """Генерирует конфиг для NextDNS"""
    rewrites = []
    for domain, ip in domain_ips.items():
        if ip:
            rewrites.append({
                "domain": domain,
                "answer": ip
            })
    
    config = {
        "rewrites": rewrites,
        "last_updated": datetime.utcnow().isoformat()
    }
    
    return json.dumps(config, indent=2)

if __name__ == "__main__":
    print("Поиск рабочих IP для ChatGPT...")
    
    domain_ips = {}
    for domain in DOMAINS:
        print(f"Проверяем {domain}...")
        ip = find_best_ip(domain)
        if ip:
            print(f"  Найден IP: {ip}")
            domain_ips[domain] = ip
        else:
            print(f"  Не удалось найти рабочий IP")
    
    if domain_ips:
        config = generate_nextdns_config(domain_ips)
        with open('nextdns_config.json', 'w') as f:
            f.write(config)
        print("Конфиг сохранен в nextdns_config.json")
    else:
        print("Не удалось найти ни одного рабочего IP!")
        exit(1)

Этот скрипт делает простую вещь: опрашивает несколько публичных DNS-серверов, находит IP-адреса для доменов ChatGPT, проверяет что они действительно работают, и сохраняет результат в JSON.

Важно: скрипт проверяет доступность через HTTPS. Некоторые IP могут отвечать на ping, но не работать с HTTPS — такие нам не нужны.

GitHub Actions: бесплатный сервер для автоматизации

Теперь нужно чтобы этот скрипт запускался автоматически. Каждый день. И обновлял вашу DNS-конфигурацию. GitHub Actions идеально подходит — бесплатно, надежно, и не требует вашего участия.

1 Создаем репозиторий с секретами

Создайте новый приватный репозиторий на GitHub. Добавьте туда наш Python-скрипт. Теперь нужно добавить секреты:

  • NEXTDNS_CONFIG_ID — ID вашей конфигурации NextDNS (находится в URL личного кабинета)
  • NEXTDNS_API_KEY — API ключ из настроек NextDNS

Без этих секретов GitHub Actions не сможет обновлять вашу конфигурацию.

2 Создаем workflow файл

В папке .github/workflows/ создайте файл update-dns.yml:

name: Update ChatGPT DNS

on:
  schedule:
    # Запускаем каждый день в 3:00 UTC
    - cron: '0 3 * * *'
  # Также запускаем вручную из интерфейса GitHub
  workflow_dispatch:

jobs:
  update-dns:
    runs-on: ubuntu-latest
    
    steps:
    - name: Checkout repository
      uses: actions/checkout@v3
    
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
        python-version: '3.10'
    
    - name: Install dependencies
      run: |
        pip install dnspython requests
    
    - name: Find working IPs
      run: python find_chatgpt_ips.py
    
    - name: Update NextDNS configuration
      env:
        NEXTDNS_CONFIG_ID: ${{ secrets.NEXTDNS_CONFIG_ID }}
        NEXTDNS_API_KEY: ${{ secrets.NEXTDNS_API_KEY }}
      run: |
        # Загружаем текущую конфигурацию
        curl -s -u "$NEXTDNS_API_KEY:" \
          "https://api.nextdns.io/profiles/$NEXTDNS_CONFIG_ID" \
          -o current_config.json
        
        # Обновляем только rewrite правила
        python update_config.py
        
        # Отправляем обновленную конфигурацию
        curl -X PUT \
          -u "$NEXTDNS_API_KEY:" \
          -H "Content-Type: application/json" \
          -d @updated_config.json \
          "https://api.nextdns.io/profiles/$NEXTDNS_CONFIG_ID"
        
        echo "Конфигурация NextDNS обновлена!"
    
    - name: Create commit with updates
      run: |
        git config --local user.email "action@github.com"
        git config --local user.name "GitHub Action"
        git add nextdns_config.json
        git commit -m "Update ChatGPT IPs $(date -u)" || echo "No changes to commit"
        git push

Этот workflow запускается каждый день, находит свежие IP-адреса, и обновляет вашу NextDNS конфигурацию через API.

Альтернатива: старый добрый hosts файл

Если NextDNS кажется слишком сложным, есть более простой вариант — автоматически обновляемый hosts файл. Тот же самый скрипт может генерировать его:

def generate_hosts_file(domain_ips):
    """Генерирует содержимое для hosts файла"""
    lines = ["# Автоматически обновляемые IP для ChatGPT",
             "# Сгенерировано: " + datetime.now().isoformat(),
             ""]
    
    for domain, ip in domain_ips.items():
        if ip:
            lines.append(f"{ip}\t{domain}")
    
    return "\n".join(lines)

Затем вы можете настроить GitHub Pages чтобы hosts файл был доступен по URL, и написать простой скрипт для его загрузки на ваши устройства.

💡
Для Windows есть утилита Hosts File Editor, для Linux/Mac можно написать cron job который раз в день качает свежий hosts файл и применяет его.

Типичные ошибки и как их избежать

Ошибка Причина Решение
ChatGPT открывается, но не работает API Не все домены добавлены в конфиг Добавьте api.openai.com и platform.openai.com
Работает только в браузере Приложения используют свой DNS Настройте системный DNS на NextDNS
GitHub Action падает с ошибкой 429 Слишком много запросов к DNS Добавьте задержки между запросами

А что с безопасностью?

Когда вы используете кастомный DNS, возникает законный вопрос: а не перенаправят ли вас на фишинговый сайт? В нашем случае риск минимален:

  1. Скрипт проверяет несколько независимых DNS-серверов
  2. HTTPS сертификаты все равно проверяются вашим браузером
  3. Вы контролируете весь процесс — код открытый, запускается на вашем GitHub

Это безопаснее чем случайный VPN-сервис из магазина приложений, который может делать что угодно с вашим трафиком.

Когда это не сработает

Есть сценарии где DNS-обход бесполезен:

  • Глубокая проверка пакетов (DPI) — если провайдер анализирует содержимое трафика и блокирует по SNI
  • Блокировка по IP — если сами IP-адреса OpenAI заблокированы на уровне сети
  • Требуется геолокация — некоторые сервисы OpenAI проверяют страну по IP

В этих случаях придется использовать VPN или прокси. Но для большинства блокировок уровня "запретить DNS-запросы" наш метод работает идеально.

Что дальше? Мониторинг и алерты

Настроили автоматическое обновление? Отлично. Теперь добавьте мониторинг. Простейший вариант — расширить GitHub Action чтобы он отправлял уведомление в Telegram если не удалось найти рабочие IP:

- name: Send Telegram notification on failure
  if: failure()
  env:
    TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
    TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
  run: |
    curl -s -X POST \
      "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
      -d chat_id=$TELEGRAM_CHAT_ID \
      -d text="❌ Не удалось обновить IP для ChatGPT! Проверьте GitHub Actions."

Так вы будете знать о проблеме раньше чем она станет критической.

Почему это лучше чем готовые решения

В интернете полно списков "рабочих IP для ChatGPT". Проблема в том что они:

  1. Быстро устаревают
  2. Могут содержать вредоносные перенаправления
  3. Не адаптируются под ваше местоположение

Наше решение самодостаточно. Оно находит лучшие IP именно для вашей сети. Обновляется автоматически. И самое главное — вы понимаете как оно работает. Если что-то сломается, вы сможете починить.

Помните историю про Grok в Индии? Там один неосторожный промпт привел к блокировке целой страны. С нашим решением вы не зависите от чьих-то ошибок.

Финал: что делать если OpenAI сменит архитектуру

Самый страшный кошмар — OpenAI перейдет на технологию которая сделает DNS-обход невозможным. Например, если они начнут использовать один IP для всех сервисов через обратный прокси с проверкой домена в заголовках.

В этом случае придется переходить на более сложные методы. Например, использовать self-hosted прокси на своем сервере. Или поднимать туннель через Cloudflare Argo.

Но пока что DNS-обход работает. И будет работать до тех пор пока интернет построен на доменных именах. А это, скорее всего, еще очень долго.

Главное — не останавливаться на достигнутом. Автоматизируйте. Мониторьте. Совершенствуйте. Как в той статье про автоматизацию рутины разработчика — каждая минута потраченная на автоматизацию экономит часы в будущем.

Теперь у вас есть система которая сама заботится о доступе к ChatGPT. Вы можете забыть о блокировках. Сосредоточиться на работе. И когда в следующий раз кто-то спросит "как ты заходишь в ChatGPT?", вы сможете не просто дать ссылку на VPN, а объяснить как устроен интернет. А это, согласитесь, гораздо круче.