Codex CLI стал незаменимым для многих разработчиков, но если вы находитесь в Китае, то, скорее всего, уже при первом запуске наткнулись на ошибки подключения: ConnectionError, Timeout или «Failed to connect to OpenAI API». Ваша сеть в порядке: Codex зависит от API-эндпоинтов OpenAI, а они действительно недоступны из материкового Китая — и вы тут ни при чём. Переключение Wi-Fi или перезапуск терминала это не исправят. В статье разберём три уровня блокировки и покажем самый чистый обходной путь — без VPN, без прокси и без перенастройки сети.
Три уровня блокировки: почему Codex не подключается из Китая
Codex CLI зависит от эндпоинтов OpenAI /v1/responses и /v1/chat/completions. В китайских сетевых условиях эти запросы сталкиваются не с одним, а с тремя наложенными друг на друга уровнями помех.
Уровень 1: DPI/SNI-блокировка со стороны GFW
API-домены OpenAI (api.openai.com, oaiusercontent.com и др.) давно входят в чёрный список DPI (Deep Packet Inspection) системы GFW. Когда ваш клиент начинает HTTPS-рукопожатие, GFW проверяет поле Server Name Indication (SNI) в TLS ClientHello и, обнаружив заблокированный домен, сразу отправляет TCP RST, обрывая соединение. Это прямая причина большинства ошибок «Operation timed out» и «Connection reset».
Уровень 2: отравление DNS
Даже если вам каким-то образом удалось обойти проверку SNI, DNS-запросы к доменам OpenAI активно отравляются. Когда система резолвит api.openai.com, GFW возвращает поддельный или неверный IP-адрес. Некоторые пробуют перейти на 8.8.8.8 или 1.1.1.1, но вмешательство GFW теперь распространяется и на DoH (DNS over HTTPS), так что обходы через DNS становятся всё менее надёжными.
Уровень 3: ограничения по геолокации исходящего IP
Даже если прокси или VPN выпускает ваш запрос наружу, сама OpenAI применяет антифрод-политики к запросам из диапазонов IP материкового Китая. Вы можете получить ответ 403 или 429 либо вас незаметно переведут в очередь с более низким приоритетом. Поэтому браузер иногда работает, а CLI стабильно не работает: браузерный трафик идёт через граничные узлы CDN в других диапазонах IP, а API-вызовы из CLI с большей вероятностью попадают под фильтры по IP-диапазонам.
Почему браузер работает, а CLI — нет
Это один из самых сбивающих с толку симптомов: chat.openai.com в Chrome открывается и нормально работает, а curl api.openai.com в терминале уходит в таймаут. Причина — в разных сетевых маршрутах:
- Доступ через браузер: веб-интерфейс ChatGPT стоит за CDN Cloudflare. Браузер обращается к ближайшему граничному узлу CDN, у которого собственный независимый сетевой маршрут и диапазоны IP, не заблокированные GFW напрямую. WebSocket и пул соединений HTTP/2 дополнительно повышают надёжность.
- Доступ через CLI: Codex CLI отправляет прямые HTTPS-запросы на
api.openai.comбез резервного пути через CDN. Каждый новый запрос начинает новое TLS-рукопожатие, подставляя поле SNI под проверку. К тому же клиентские HTTP-библиотеки (urllib3, httpx) обрабатывают повторы иначе, чем браузеры: агрессивные циклы повторов могут вызвать лавину соединений.
Поэтому многие и считают, что «ChatGPT работает = Codex работает», хотя на деле они ходят совершенно разными сетевыми маршрутами.
Типичные симптомы сбоя подключения
Если вы видите в Codex CLI любую из этих ошибок, почти наверняка вы столкнулись с блокировкой на сетевом уровне:
ConnectionError: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceededrequests.exceptions.ConnectTimeout: Connection to api.openai.com timed outssl.SSLCertVerificationError: certificate verify failed(вызывается SNI-блокировкой в стиле MITM)openai.APITimeoutError: Request timed out after 60000ms- Codex CLI зависает на «Checking API connection...» больше чем на 30 секунд
- Случайные разрывы посреди задачи с бесконечными циклами «reconnecting»
У всего этого одна первопричина: из китайской сети невозможно надёжно достучаться до API OpenAI.
Сравнение решений
| Подход | Как работает | Надёжность | Обслуживание |
|---|---|---|---|
| Собственный прокси/VPN | Пересылка запросов через зарубежный сервер | Зависит от качества прокси | Высокое: нужно поддерживать сервер, ротировать IP |
| Смена DNS | Использовать 8.8.8.8/1.1.1.1 | Всё менее надёжно | Среднее: нужно часто переключаться |
| Обратный прокси на Nginx | Развернуть на зарубежном VPS | Средняя | Высокое: всё поддерживаете сами |
| API-шлюз | Совместимый по baseUrl шлюз, доступный из Китая | Стабильно | Низкое: разовая настройка |
Рекомендуем: используйте API-шлюз, совместимый с Codex
Самое чистое решение — не пробивать путь к api.openai.com, а сменить эндпоинт, к которому вы подключаетесь. Codex CLI нативно поддерживает пользовательский baseUrl. Направьте его на шлюз, который доступен из Китая и на 100% совместим с протоколом OpenAI /v1/responses, — и вы обойдёте GFW без локального прокси и VPN.
TeamoRouter — Agent-native LLM-шлюз, созданный именно для такого сценария:
- Доступен из Китая: API-эндпоинты TeamoRouter достижимы из китайской сети без отравления DNS и SNI-блокировок. Просто укажите адрес TeamoRouter в
baseUrlCodex CLI. - Нативная поддержка
/v1/responses: полная совместимость с протоколом responses, который использует Codex, — никакой локальной конвертации протоколов. В отличие от старых шлюзов, поддерживающих только/v1/chat/completions, TeamoRouter работает с Codex «из коробки». - Один ключ, много моделей: помимо Codex (с вызовами GPT-4o и компании) тот же ключ подходит для Claude Code и Gemini CLI. Вы управляете одним ключом, а не отдельным на каждый инструмент.
- Вход в аккаунт не нужен: ни входа в аккаунт OpenAI, ни подтверждения телефона, ни зарубежного способа оплаты. Пополните баланс и получите API-ключ — за всю настройку вы ни разу не упрётесь в цензурные барьеры.
- 100% точность протокола: уровень модели вы выбираете явно; шлюз никогда не переписывает запросы и не подменяет модели за вашей спиной. Вызываете GPT-4o — именно её и получаете.
- Стабильность корпоративного уровня: SLA 99.98% и 5000 QPM. Доля попаданий в кэш выше 99% означает, что ваши фактические затраты намного ниже прайсовой цены, а плавающий тариф составляет 10-20% от официальной цены.
Среди других вариантов — собственный обратный прокси на Nginx или CC Switch с локальным слоем маршрутизации, но каждый из них добавляет постоянные расходы на сопровождение. Для подавляющего большинства разработчиков в Китае выделенный шлюз требует меньше всего внимания.
Начало работы
- Зарегистрируйтесь в TeamoRouter и получите API-ключ (оплата по использованию, начать можно с небольшого пополнения)
- Следуя руководству по установке Codex, настройте baseUrl и API-ключ
- Запустите свою первую задачу в Codex
Стабильный доступ к Codex, Claude Code и Gemini CLI через TeamoRouter — без VPN, без перенастройки сети и без зарубежной банковской карты.
FAQ
Заблокирован ли Codex в Китае?
Да. API-домены OpenAI блокируются GFW с помощью DPI/SNI-инспекции. Отравление DNS и ограничения по геолокации IP добавляют ещё два уровня, так что прямой доступ из материкового Китая практически невозможен.
Почему Codex всё равно отключается даже с VPN?
Две частые причины: IP узла VPN помечен системой обнаружения прокси OpenAI, и в ответ приходит 403/429; либо режим HTTP-прокси в VPN-клиенте плохо совместим с пулом соединений urllib3 в Codex CLI, что вызывает случайные разрывы. API-шлюз избавляет от обеих проблем, направляя трафик по прямым официальным каналам API.
Можно ли пользоваться Codex, если заблокированы и браузер, и VPN?
Да. Если все обычные способы обхода не сработали, самый действенный путь — API-шлюз, доступный изнутри Китая. Ваши запросы идут не на заблокированный api.openai.com, а на совместимый эндпоинт, который на бэкенде маршрутизирует их в официальный API. Меняется пункт назначения, а не ваша локальная сеть.
Может ли один ключ обслуживать и Codex, и Claude Code?
Да. TeamoRouter совместим и с протоколом OpenAI /v1/responses, и с протоколом Anthropic. Используйте один и тот же ключ с разными настройками baseUrl для каждого инструмента — биллинг будет общий.
Шлюз или VPN: что быстрее для Codex в Китае?
Шлюз, как правило, стабильнее и даёт меньшую задержку. Запросы через VPN сначала идут на зарубежный сервер и только потом в OpenAI — это лишний хоп. Шлюзы оптимизируют маршрутизацию и сокращают реальные накладные расходы на запросы за счёт кэширования. К тому же VPN требуют постоянного обслуживания по мере блокировки IP, а шлюз настраивается один раз и надолго.