Блог

Тайм-аут соединения в Codex: руководство по диагностике сети для Китая

Нет ничего досаднее: Codex CLI полностью установлен, вы вводите первую команду — и она висит, пока не появится Connection Failed, ETIMEDOUT или Network Error. В регионах с ограниченным доступом в интернет это скорее норма, чем исключение. В этой статье разберём все первопричины тайм-аутов Codex и объясним, как TeamoRouter устраняет проблему в корне.

Типичные симптомы тайм-аута в Codex

Сообщение об ошибке Когда возникает
Error: Connection timeout after 30000ms Первый API-запрос из CLI
fetch failed: request to https://api.openai.com/v1/responses failed Любой вызов API
ETIMEDOUT npm install / работа CLI
read ECONNRESET Обрыв посреди диалога
Network Error Codex Desktop App или веб-версия
Could not connect to the server Проверка конфигурации

Первопричина у этих ошибок не всегда одна: иногда в терминале не задан прокси, иногда недоступен реестр npm, а иногда DNS-запросы к самому API перехватываются. Каждый путь нужно диагностировать отдельно.

Почему запросы Codex завершаются ошибкой

Эндпоинт API по умолчанию у Codex CLI — https://api.openai.com/v1/responses. В сетях с ограничениями на этом пути встречаются три уровня блокировки:

  1. Отравление DNS: api.openai.com может резолвиться в подставной IP, либо запрос перехватывает промежуточное устройство.
  2. Блокировка по SNI: даже при корректном DNS проверка SNI во время TLS-рукопожатия может привести к сбросу соединения.
  3. Замедление диапазонов IP: диапазоны IP-адресов серверов OpenAI могут ограничиваться по скорости в часы пик, что вызывает затяжные тайм-ауты.

Поэтому просто «включить прокси» редко бывает достаточно: это решает лишь часть проблемы, а конфликты прокси с локальными портами Codex CLI добавляют новой головной боли.

Прокси в терминале и прокси в браузере

Многие замечают, что chat.openai.com в браузере открывается, а Codex CLI в терминале всё равно отваливается по тайм-ауту. Дело в том, что браузер и терминал используют совершенно разные сетевые пути:

Компонент Путь трафика по умолчанию Способ проксирования
Браузер Системные настройки прокси или расширения Применяется автоматически
CLI в терминале Игнорирует системный прокси Нужна переменная окружения https_proxy
npm Читает npm config proxy или переменные окружения Нужна отдельная настройка
Git Читает git config http.proxy Нужна отдельная настройка

Распространённое заблуждение: вы включили VPN в системных настройках и считаете, что Codex CLI в терминале тоже им пользуется. Большинство CLI-инструментов не читают системные настройки прокси автоматически.

Настройка прокси в терминале

bash
export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
codex

Настройка прокси для npm

bash
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890

Настройка прокси для Git

bash
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

Прокси и сами создают проблемы: дополнительная задержка, нестабильность, частые обрывы при смене сети, а многие публичные прокси-узлы ещё и режут трафик к OpenAI.

Диагностика npm, Git и OpenAI по отдельности

Проверка сети для npm

bash
npm ping

# If timeout, set mirror
npm config set registry https://registry.npmmirror.com
npm ping

Проверка сети для Git

bash
ssh -T git@github.com

# If timeout, set proxy
git config --global http.proxy http://127.0.0.1:7890

Проверка доступности OpenAI API

bash
curl -s -o /dev/null -w "%{http_code}" \
  https://api.openai.com/v1/responses \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o","input":"test"}' \
  --max-time 10

# 000 = connection not established (network issue)
# 401 = unauthorized (network ok, API Key issue)
# 200 = working

Расшифровка распространённых кодов ошибок

HTTP-статус Значение Возможная причина
000 Соединение не установлено DNS / SNI / сеть недоступна
408 Тайм-аут запроса Высокая задержка или медленный прокси
429 Превышен лимит запросов Слишком частые запросы или общий API-ключ
502 Ошибка шлюза Недоступен апстрим реселлера или прокси
503 Сервис недоступен Перегрузка серверов OpenAI
525 Сбой SSL-рукопожатия Блокировка по SNI / несовместимый прокси

Как настроить base URL, чтобы избавиться от тайм-аутов API

Самое чистое решение — не настраивать прокси слой за слоем, а направить API-эндпоинт на шлюз, напрямую доступный из вашей сети. TeamoRouter предоставляет напрямую доступный API-эндпоинт, совместимый с Responses API, который использует Codex:

bash
# Configure TeamoRouter gateway
export OPENAI_BASE_URL="https://api.teamorouter.com/v1"
export OPENAI_API_KEY="sk-teamo-xxxxxxxx"

# Verify connectivity (should return non-000 immediately)
curl -s -o /dev/null -w "%{http_code}" \
  https://api.teamorouter.com/v1/responses \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o","input":"test"}' \
  --max-time 10

Преимущества такого подхода:

  • Прокси не нужен: TeamoRouter напрямую доступен из внутренних сетей Китая без VPN
  • Единая точка настройки: один baseUrl обслуживает все вызовы API — CLI, npm, Git
  • Единый биллинг: доля попаданий в кэш > 99%, плавающий тариф 10–20% от официальной цены, неудачные запросы не оплачиваются

FAQ

Браузер открывает OpenAI, а Codex CLI отваливается по тайм-ауту — почему?

Браузер и терминал используют разные сетевые пути. Браузер учитывает системные настройки прокси (или VPN-расширения), а CLI в терминале по умолчанию их игнорирует — переменную окружения https_proxy нужно задавать отдельно. Решение получше — сразу указать baseUrl TeamoRouter и вообще обойтись без настройки прокси.

Я настроил прокси, но тайм-ауты остались — что дальше?

Сначала проверьте сам прокси: curl -x http://127.0.0.1:7890 https://api.openai.com/v1/responses .... Если и через прокси запрос не проходит, значит, трафик режется на самом прокси-узле. Переключитесь на шлюз TeamoRouter.

Нужен ли прокси для TeamoRouter?

Нет. API-эндпоинт TeamoRouter напрямую доступен из внутренних сетей Китая — достаточно один раз настроить baseUrl, никакого дополнительного прокси не требуется.

Codex Desktop App отваливается по тайм-ауту — как это отладить?

Codex Desktop App использует сетевую конфигурацию системы, а не настройки прокси терминала. Сначала проверьте системный прокси. Если это не помогло, укажите baseUrl TeamoRouter прямо в настройках приложения.

npm install работает, а Codex во время работы отваливается по тайм-ауту — почему?

npm корректно использует зеркало (например, npmmirror), но прямой путь к OpenAI API по-прежнему проблемный. Нужно настроить baseUrl или прокси на уровне окружения Codex.

С чего начать

Самое простое решение — сменить шлюз:

  1. Зарегистрируйтесь в TeamoRouter и получите API-ключ
  2. Задайте OPENAI_BASE_URL и OPENAI_API_KEY
  3. Проверьте связность через curl — код статуса должен быть отличным от 000

Настройте Codex бесплатно →

Стабильный доступ к Codex, Claude Code и Gemini CLI через TeamoRouter.

Готовы подключиться?Войдите в консоль, пополните баланс и создайте API-ключ.
Тайм-аут соединения в Codex: руководство по диагностике сети для Китая · TeamoRouter