Блог

Codex: request timed out? 7 способов, которые действительно помогают (2026)

Короткий ответ

«Request timed out» в Codex почти никогда не означает сбой у OpenAI — это проблема сетевого маршрута. Самые частые причины, по убыванию: в терминале не настроен прокси, песочница macOS молча блокирует доступ к сети, MCP-серверы не успевают запуститься за отведённое время, а в сетях с ограничениями мешают блокировки DNS/SNI. Самое надёжное решение в 2026 году — направить Codex на стабильный эндпоинт, доступный из любой точки мира, например TeamoRouter: это одним шагом снимает отравление DNS, конфликты прокси и троттлинг эндпоинта. Ниже — семь рабочих способов, от самого простого к самому основательному.

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

Codex CLI по умолчанию отправляет каждый запрос на https://api.openai.com/v1/responses. Когда запрос зависает, вы видите одну из нескольких типовых ошибок:

Сообщение об ошибке Наиболее вероятная причина
Error: Connection timeout after 30000ms Первый API-запрос заблокирован на сетевом уровне
fetch failed: request to https://api.openai.com/v1/responses failed Проблема с DNS, прокси или SNI
ETIMEDOUT TCP-соединение так и не устанавливается
read ECONNRESET Соединение сброшено посреди сессии
request timed out Завис MCP-сервер или потоковый вызов
Network Error Desktop App / веб-клиент

У них есть общая черта: браузер на той же машине часто работает нормально, а терминал — нет. Эта асимметрия и есть главная диагностическая подсказка: браузер читает системные настройки прокси, а большинство CLI-инструментов — нет. Почините сетевой маршрут терминала — и таймаут исчезнет.

Как определить, на каком уровне сбой

Прежде чем пробовать способы наугад, потратьте 60 секунд на диагностику и найдите уровень, на котором всё ломается. Ответ подскажет, какой способ вам нужен:

Проверка Команда Что означает результат
Разрешается ли DNS? ping -c 3 api.openai.com Постоянные сбои DNS → способ 6
Доступен ли API? curl -I --max-time 20 https://api.openai.com/v1/models Быстрый 401 → сеть в порядке, проблема в другом
Работает ли прокси? curl -x http://127.0.0.1:7890 -I --max-time 20 https://api.openai.com/v1/models 401 → прокси работает; таймаут → плохой прокси-узел
Дело в shell-команде? Выполните ls внутри сессии Codex в песочнице Зависает → способ 7
Дело в MCP-сервере? Посмотрите, какой процесс запускается перед таймаутом Запуск MCP → способ 3
Обрыв посреди потока? Обратите внимание, возникает ли таймаут через несколько минут работы Истёкшая авторизация → способ 5

Если curl быстро возвращает 401, сетевой маршрут до OpenAI исправен, а таймаут возникает на уровне песочницы, MCP, авторизации или инициализации оболочки. Если curl зависает, проблема в DNS, прокси или SNI — переходите к сетевым способам.

Способ 1: настройте прокси в терминале

Если браузер открывает OpenAI, а Codex уходит в таймаут, терминал почти наверняка работает в обход вашего прокси. Codex учитывает только эти переменные окружения — он не читает системные настройки прокси, PAC-файлы и автообнаружение WPAD:

bash
export HTTPS_PROXY="http://127.0.0.1:7890"
export HTTP_PROXY="http://127.0.0.1:7890"
export ALL_PROXY="socks5://127.0.0.1:7890"
export NO_PROXY="localhost,127.0.0.1"

Добавьте их в ~/.zshrc (macOS/Linux) или задайте на уровне системы в Windows, затем откройте новый терминал. Прежде чем винить Codex, проверьте маршрут:

bash
curl -I --max-time 20 https://api.openai.com/v1/models

Быстрый ответ 401 означает, что маршрут через прокси работает и можно идти дальше. Любой другой результат говорит о том, что узкое место — сам прокси-узел.

Способ 2: песочница macOS молча блокирует доступ к сети

В macOS параметр network_access = true в ~/.codex/config.toml молча игнорируется песочницей seatbelt, которая безусловно выставляет CODEX_SANDBOX_NETWORK_DISABLED=1. В результате исходящие вызовы из shell-команд в песочнице завершаются таймаутом соединения, хотя сам API доступен.

Решение — запускать Codex с полным доступом к сети на уровне CLI:

bash
codex --sandbox danger-full-access "your prompt"

Для удобства добавьте алиас, чтобы доступ к сети был в каждой сессии:

bash
alias codex='CODEX_SANDBOX_NETWORK_DISABLED=0 codex --sandbox danger-full-access'

Учтите: одного sandbox_mode = "danger-full-access" в config.toml недостаточно — реально срабатывает именно флаг CLI. Если вы запускаете внутри Codex много shell-команд (сборки, тесты, git push), один этот способ обычно убирает большинство ошибок «request timed out».

Способ 3: увеличьте таймаут запуска MCP-серверов

MCP-серверы (Context7, Playwright, Dart, Firebase и подобные) часто выдают request timed out в Windows, потому что Codex запускает их напрямую, минуя cmd.exe. Ломаются две вещи: исполняемые файлы из PATH не находятся, а медленный первый запуск не укладывается в таймаут по умолчанию.

Оберните команды MCP в cmd.exe /c и увеличьте таймаут в ~/.codex/config.toml:

toml
[mcp_servers.context7]
command = "cmd"
args = ["/c", "npx", "-y", "@upstash/context7-mcp", "--api-key", "your-key"]
env = { SystemRoot = "C:\\Windows" }
startup_timeout_ms = 30_000

Разумное значение startup_timeout_ms — от 20 000 до 60 000 мс: при первом вызове npx скачивает пакет и легко выходит за таймаут по умолчанию. Если удалённый MCP-сервер продолжает уходить в таймаут, установите mcp-remote глобально (npm install -g mcp-remote) и укажите серверу удалённый URL.

Способ 4: пробросьте прокси через SSH (удалённые хосты)

Когда Codex работает на удалённой машине через VSCode Remote SSH, он использует сеть удалённого хоста. Если с этого хоста api.openai.com недоступен, запросы уходят в таймаут, хотя на локальной машине всё в порядке.

Пробросьте локальный прокси на удалённую машину в ~/.ssh/config:

text
Host myserver
    RemoteForward 10808 127.0.0.1:10808

Затем экспортируйте прокси на удалённом хосте:

bash
export HTTPS_PROXY=http://127.0.0.1:10808
export HTTP_PROXY=http://127.0.0.1:10808

Проверьте с удалённого хоста командой curl -I --max-time 20 -x http://127.0.0.1:10808 https://api.openai.com/v1/models — быстрый 401 подтверждает, что туннель работает. Также задайте http.proxy / https.proxy в Remote Settings (JSON) в VSCode, чтобы вызовы, встроенные в редактор, шли тем же маршрутом.

Способ 5: истёкшая или отозванная авторизация

request timed out посреди потока (а не при запуске) иногда оказывается замаскированной проблемой авторизации. В релизах Codex эпохи 0.41 была известная проблема: истёкшие или отозванные refresh-токены вызывали таймауты при стриминге. Если таймаут стабильно появляется через несколько минут работы, а сетевой маршрут чист, обновите сессию:

bash
codex logout
codex login

Если вы авторизуетесь по API-ключу, а не через вход в ChatGPT, убедитесь, что ключ действителен и на нём есть баланс: отозванный ключ может проявиться как зависание ещё до того, как придёт настоящий 401.

Способ 6: устраните блокировки DNS и SNI в сетях с ограничениями

Если вы находитесь в регионе с ограниченным доступом в интернет, цепочка сбоев обычно глубже, чем проблема с прокси:

  1. Отравление DNSapi.openai.com разрешается в поддельный или мёртвый IP.
  2. Блокировка по SNI — проверка TLS-рукопожатия вызывает сброс соединения даже при правильном DNS.
  3. Троттлинг диапазонов IP — диапазоны серверов OpenAI ограничиваются по скорости или блокируются в часы пик.

VPN или прокси помогает, только если покрыт весь маршрут трафика, — поэтому ситуация «браузер работает, а Codex нет» так распространена. Если вы не можете надёжно контролировать DNS и SNI для каждого процесса, надёжное решение — сменить эндпоинт, с которым общается Codex. Шлюз вроде TeamoRouter размещает OpenAI-совместимый эндпоинт на доменах, которые не блокируются, так что отравление DNS и вмешательство в SNI исчезают в самом источнике. Направьте на него Codex двумя переменными окружения — и вообще без прокси:

bash
export OPENAI_API_KEY="your-key"
export OPENAI_BASE_URL="https://gateway.teamorouter.com/v1"
codex

Способ 7: исключите таймауты shell-команд в песочнице

Иногда «таймаут» вообще не связан с API — зависает shell-команда, запущенная внутри песочницы Codex. Если для тривиальных команд вроде ls или git status вы видите код выхода 124 (GNU timeout), виновата инициализация вашей оболочки. Известный триггер — версии pyenv до 2.6.16, которые зависают на rehash внутри песочницы.

Решение: обновите pyenv, передавайте больший timeout_ms в вызовы shell-инструмента или запускайте сессию с --yolo, когда доверяете задаче. Если запуск в песочнице падает ещё до какого-либо ответа OpenAI, считайте это проблемой среды выполнения, а не API.

Самый быстрый путь: не тушить пожары

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

Поэтому прагматичное решение 2026 года — убрать хрупкие слои, а не отлаживать их. TeamoRouter даёт Codex единый OpenAI-совместимый эндпоинт, напрямую доступный из большинства сетей: без прокси и без танцев с сетью в песочнице. Вся настройка — две переменные окружения:

  1. Зарегистрируйтесь на TeamoRouter и скопируйте свой API-ключ
  2. Задайте OPENAI_API_KEY и OPENAI_BASE_URL (см. руководство по установке Codex)
  3. Запустите codex — если таймаут был на сетевом уровне, теперь всё заработает

FAQ

Почему браузер открывает OpenAI, а Codex CLI уходит в таймаут?

Браузер читает системные настройки прокси (или использует VPN-расширение), а CLI-инструменты полностью игнорируют системные настройки и полагаются на переменные окружения HTTPS_PROXY / HTTP_PROXY. Задайте их или переключите Codex на эндпоинт с прямым доступом.

«Request timed out» возникает из-за того, что OpenAI лежит?

Почти никогда. Таймауты в подавляющем большинстве случаев — проблемы сетевого маршрута: прокси, песочницы, запуск MCP или вмешательство в DNS/SNI. Когда API OpenAI доступен, он возвращает структурированные ошибки (401, 429, 5xx); зависание или ETIMEDOUT означает, что запрос так и не прошёл туда и обратно.

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

Нет. Эндпоинт TeamoRouter напрямую доступен из большинства сетей, поэтому вы один раз задаёте base URL и полностью убираете слой прокси.

Почему Codex Desktop App уходит в таймаут, а CLI работает?

Desktop App использует системную сетевую конфигурацию — это другой маршрут, не тот, что задают переменные окружения терминала. Сначала проверьте системные настройки прокси, а затем впишите base URL шлюза прямо в настройках приложения, чтобы оба клиента ходили по одному стабильному маршруту.

С чего начать

Самое простое решение — сменить эндпоинт:

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

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

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

Готовы подключиться?Войдите в консоль, пополните баланс и создайте API-ключ.
Codex: request timed out? 7 способов, которые действительно помогают (2026) · TeamoRouter