Нет ничего досаднее: 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. В сетях с ограничениями на этом пути встречаются три уровня блокировки:
- Отравление DNS:
api.openai.comможет резолвиться в подставной IP, либо запрос перехватывает промежуточное устройство. - Блокировка по SNI: даже при корректном DNS проверка SNI во время TLS-рукопожатия может привести к сбросу соединения.
- Замедление диапазонов 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-инструментов не читают системные настройки прокси автоматически.
Настройка прокси в терминале
export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
codex
Настройка прокси для npm
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
Настройка прокси для Git
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
npm ping
# If timeout, set mirror
npm config set registry https://registry.npmmirror.com
npm ping
Проверка сети для Git
ssh -T git@github.com
# If timeout, set proxy
git config --global http.proxy http://127.0.0.1:7890
Проверка доступности OpenAI API
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:
# 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.
С чего начать
Самое простое решение — сменить шлюз:
- Зарегистрируйтесь в TeamoRouter и получите API-ключ
- Задайте
OPENAI_BASE_URLиOPENAI_API_KEY - Проверьте связность через
curl— код статуса должен быть отличным от 000
Стабильный доступ к Codex, Claude Code и Gemini CLI через TeamoRouter.