Настройки Claude Code16 минобновлено Максим Самусь

Codex VPN: как настроить доступ

Вся система, из которой эти статьи, лежит в ClaudeBase - 990 ₽ в месяц. Файлы устанавливаются в проект по инструкции.

Codex VPN: почему по этому запросу находится не то?

Коротко: словосочетание Codex VPN описывает две несвязанные вещи. Первая - сторонний VPN-сервис с таким же названием, к OpenAI он отношения не имеет. Вторая - настройка сети, без которой агент Codex в терминале не соединяется с серверами OpenAI. Статья про вторую: что именно обрывается, как это проверить руками и чем ты при этом рискуешь.

Проверил подсказки Яндекса 10 сентября 2026 года. На «codex vpn» поисковик предложил девять продолжений, и только одно из них про агента OpenAI - «codex работает без vpn». Остальные восемь ведут к стороннему сервису: «codex vpn скачать», «codex vpn отзывы», «codex vpn bot», «codex vpn прокси», «codex vpn ru» и ещё три в том же духе.

Кириллицей запрос набирают как «кодекс впн», и картина та же: «кодекс впн телеграм», «бесплатный прокси для телеграм кодекс впн». Так что если ты пришёл сюда за приложением с таким названием - это другая статья и другой продукт.

Людей, которым нужен агент, поисковик слышит по другой формулировке. На «codex из россии» подсказки идут уже по делу: «как войти в codex из россии», «как оплатить codex из россии», «как пользоваться codex в россии».

Codex VPN в этой статье означает одно: сеть, через которую агент связывается с серверами OpenAI.

Дальше под словом Codex я имею в виду агента OpenAI, который работает в терминале. Установка разобрана отдельно: как установить Codex. Сам термин - в словаре.

Что понадобится

Коротко: понадобятся установленный Codex CLI, терминал, аккаунт ChatGPT или ключ платформы OpenAI и туннель с системным режимом. Туннель здесь - тот самый VPN из запроса: программа, которая уводит трафик через сервер в другой стране. Расширение для браузера в этот список не входит, и почему - разобрано ниже отдельным разделом. Это минимальный набор, без которого дальше идти нет смысла.

  • Установленный Codex CLI. Проверяется командой codex --version. Если его ещё нет, ставится он отдельно.
  • Терминал - тот, что уже есть в системе. Шаги одинаковые на macOS, Windows и Linux; отличия Windows с WSL вынесены в раздел про ошибки.
  • Аккаунт ChatGPT либо ключ платформы OpenAI.
  • Туннель, который умеет работать в системном режиме. Дальше по тексту я зову его туннелем: слово VPN в этой теме занято одноимённым сервисом из первого раздела.

Сразу про цену вопроса. OpenAI считает доступ из неподдерживаемой страны основанием закрыть аккаунт, и это написано на её собственной странице. Первоисточник и формулировка - в разделе про риск, но знать это лучше заранее.

Где обрывается соединение между Codex и OpenAI?

Коротко: у Codex три сетевых участка, и туннель нужен на каждом. Браузер открывает страницу входа на домене auth.openai.com. Терминал отдельным запросом обменивает код на токен там же. После входа рабочие запросы уходят на домен chatgpt.com и держатся постоянным соединением. Обрыв на каждом участке выглядит по-своему, и чинятся они по-разному.

Участок 1 - браузерный вход. Команда codex login поднимает локальный сервер и открывает страницу авторизации. В терминале это выглядит так:

Starting local login server on http://localhost:1455.
If your browser did not open, navigate to this URL to authenticate:
https://auth.openai.com/oauth/authorize?...

Порт 1455 назван и в официальной документации: локальный callback-сервер, который ловит ответ браузера, по умолчанию слушает localhost:1455.

Участок 2 - обмен кода на токен. Браузер показывает строку Authentication successful. Return to your terminal to continue. - и дальше работает уже терминал. Он отправляет запрос на https://auth.openai.com/oauth/token. Это отдельный запрос отдельной программы, и маршрут у него свой.

Участок 3 - рабочий канал. При входе по аккаунту ChatGPT запросы агента уходят на https://chatgpt.com/backend-api/codex/responses и держатся постоянным соединением WebSocket. Домен здесь chatgpt.com, хотя по привычке многие ждут api.openai.com. Адрес виден прямо в тексте ошибки из разбора 37682.

Дальше настройка Codex VPN сводится к одному: провести через туннель все три участка сразу.

Как понять, что дело в сети, а не в установке?

Коротко: сначала проверь программу, потом маршрут. Команда codex –version печатает версию, команда codex login status показывает активный способ входа. Версия печатается, а вход не проходит - установка целая, разбираться надо с сетью. Только учти: ответ от curl подтверждает маршрут, но ещё не подтверждает, что агент пойдёт тем же путём.

Три команды по порядку. Первая печатает версию программы:

codex --version

Вторая показывает, каким способом ты вошёл и вошёл ли вообще:

codex login status

Третья проверяет тот самый адрес, на котором чаще всего и обрывается вход:

curl -sS -o /dev/null -w "%{http_code}\n" https://auth.openai.com/oauth/token

Ответ 405 тут нормальный: адрес принимает только POST, а простой запрос curl уходит методом GET. Важно другое - что HTTP-код вообще пришёл, значит запрос дошёл до сервера OpenAI. Таймаут или ошибка соединения означают, что маршрут не собрался.

Тут есть ловушка, о которой стоит знать заранее. В разборе 41434 автор показал: с той же машины и по тому же маршруту curl до адреса /oauth/token доходит, шифрованное соединение устанавливается, ответ приходит, а сам агент на этом шаге падает. Так что curl подтверждает только сам маршрут.

Почему VPN в браузере не помогает терминалу?

Коротко: расширение для браузера уводит в туннель трафик одного браузера. Codex работает в терминале и выходит в сеть отдельной программой. Поэтому страница входа открывается и даже отдаёт Authentication successful, а следующий шаг уходит с домашнего адреса и получает отказ по стране. Это самый частый сценарий у тех, кто настраивает Codex VPN впервые.

Как выглядит такой отказ, видно в разборе 14215 в трекере openai/codex - публичном списке ошибок и запросов, который ведут сами разработчики. Браузерная авторизация там прошла, локальный сервер ответ поймал, а обмен токена на https://auth.openai.com/oauth/token вернул вот это:

403 {"error":{"code":"unsupported_country_region_territory","message":"Country, region, or territory not supported","param":null,"type":"request_forbidden"}}

Код unsupported_country_region_territory означает одно: сервер проверил адрес, с которого пришёл запрос, и отказал по стране. Пароль, тариф и целость установки тут ни при чём.

Оговорю честно, чем закончился тот разбор: спотыкался там сторонний клиент, который настройки прокси не применял. Официальный codex-cli на той же машине работал, и запись закрыли как не-ошибку. Вывод от этого только крепче: маршрут у каждой программы свой, и адрес выхода у них может отличаться.

Отсюда простое правило: туннель поднимается на уровне системы, чтобы под него попали все программы разом.

Шаг 1. Поднять туннель на всю систему

Коротко: включи туннель в системном режиме, чтобы через него пошёл трафик всех программ, включая терминал. Режим «только для выбранных сайтов» и расширение для браузера для этой задачи не подходят. После включения перезапусти терминал и проверь адрес выхода именно из него: терминал и браузер проверяются по отдельности. С этого шага настройка и начинается.

Порядок такой, он одинаковый на macOS и на Windows:

  1. Включи туннель в системном режиме. В разных клиентах он называется по-разному: системный, TUN, «весь трафик».
  2. Закрой терминал и открой заново. Часть клиентов меняет маршрут только для новых процессов.
  3. Проверь адрес выхода прямо из терминала - подойдёт любой сервис, который печатает адрес обратно.
  4. Сверь ответ с тем, что показывает браузер. Разные адреса означают, что под туннель попал только браузер.

Команда для третьего пункта:

curl -s https://api.ipify.org

И отдельная просьба: не переключай туннель, пока агент отвечает. В трекере есть замер такого случая: после обрыва канала CLI оставался в активном ходе 299.987 секунды, то есть почти пять минут, без сообщения об ошибке.

Шаг 2. Пройти вход codex login до конца

Коротко: команда codex login поднимает локальный сервер на порту 1455 и открывает браузер. Надпись Authentication successful в браузере появляется раньше, чем вход закончен: последним шагом терминал сам обменивает код на токен. Проверяется это командой codex login status - она показывает активный способ входа.

Запускай вход при уже поднятом туннеле:

codex login

Что тут ломается чаще всего:

  • Порт 1455 занят. Он фиксированный, и его делят между собой окна редактора, расширение и вторая копия приложения. В трекере это дословный заголовок записи 3927: Port 127.0.0.1:1455 is already in use.
  • В браузере пусто. Новичок видит This site can't be reached и думает про блокировку, хотя локальный сервер входа просто не поднялся. В трекере на это есть отдельная запись: сообщение не объясняет, что порт callback уже занят.
  • Браузера нет вообще. Для машины без окна есть отдельный способ входа: codex login --device-auth.
  • Вход по ключу платформы. Ключ передаётся так: printenv OPENAI_API_KEY | codex login --with-api-key. Браузерного шага и локального порта при таком входе нет, значит уходит и весь класс проблем с портом 1455.
  • Прокси подменяет сертификат. На этот случай в документации Codex названа переменная CODEX_CA_CERTIFICATE: в неё кладётся путь к файлу с сертификатами в формате PEM, и делать это надо до входа.

Шаг 3. Убедиться, что агент отвечает

Коротко: вход закрывает только половину задачи, рабочий канал идёт на другой домен и работает через постоянное соединение. Проверка занимает одну команду: codex exec с коротким запросом. Полный ответ означает, что туннель работает на обоих участках. Обрыв на середине указывает на рабочий канал: вход при этом целый.

Проверка одной строкой, без рабочего экрана:

codex exec "перечисли файлы в этой папке"

Полный ответ означает, что можно работать. Обрыв на середине указывает в другое место: вход уже пройден, обрывается длинное соединение с chatgpt.com. Разбор таких обрывов по тексту ошибки идёт отдельной таблицей.

И оговорка, без которой инструкция была бы неполной. Ни один из шагов не обещает, что соединение поднимется: адрес выхода видит и вторая сторона, а правила доступа задаёт тоже она. Статья показывает, где смотреть и что означают ошибки; решение работать так или не работать остаётся за тобой.

Заодно проверь лимиты своего тарифа: обрыв ответа иногда путают с упёршимся лимитом, а это разные вещи и решаются они по-разному.

Что делать, если VPN включён, а Codex всё равно падает?

Коротко: если туннель уже поднят, а агент всё равно падает, смотри на дословный текст ошибки: он однозначно указывает участок. Отказ по стране приходит кодом unsupported_country_region_territory, в тексте про провал входа стоит адрес oauth/token, а при обрыве работы - адрес backend-api/codex/responses. Дальше по таблице: каждой строке соответствует свой шаг из этой инструкции.

Все строки ниже взяты из разборов в трекере openai/codex, ссылки на них - в блоке источников.

Что печатает терминал Что это значит Куда идти
unsupported_country_region_territory Отказ по стране выхода Шаг 1; если туннель уже поднят - смотри разбор под таблицей
Token exchange error: error sending request for url (https://auth.openai.com/oauth/token) Браузер вошёл, терминал до обмена токена не дошёл Шаг 1, затем Шаг 2
oauth token exchange transport failure is_timeout=false is_connect=true is_request=true Соединение не установилось вообще; в одном из разборов запрос ушёл не на тот резолвер DNS - службу, которая превращает имя домена в адрес Шаг 1: переподнять туннель и перезапустить терминал
stream disconnected before completion: error sending request for url (https://chatgpt.com/backend-api/codex/responses) Оборвался рабочий канал, вход при этом целый Шаг 3
stream disconnected before completion: idle timeout waiting for websocket Постоянное соединение осталось без данных и было закрыто по таймауту Не трогать туннель во время ответа
Port 127.0.0.1:1455 is already in use Порт входа занят другой копией Codex Шаг 2, закрыть лишние окна
This site can't be reached в браузере Локальный сервер входа не поднялся Шаг 2, тот же порт 1455

Туннель поднят, а отказ по стране всё равно приходит. Так тоже бывает, и означает это одно: сервер OpenAI не принял сам адрес, с которого пришёл запрос. На форуме OpenAI разбирали ровно такой заход. У автора серверы физически стояли в Калифорнии, страна поддерживается, а в ответ на запросы приходил тот же код unsupported_country_region_territory. В ответе ему посоветовали взять свой адрес и прогнать его через несколько сервисов геолокации: купленный диапазон адресов может до сих пор числиться в базах за другой страной.

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

Отдельный случай - Windows с WSL. Туннель, поднятый в основной системе, внутри WSL может не наследоваться, и агент там работает в своей сети. Значит, маршрут в этой связке проверяется дважды: в основной системе и внутри самой WSL. В трекере на эту тему есть записи с обеих сторон: и провал обмена токена в WSL2, и занятый порт входа именно в WSL.

Почему переменные HTTPS_PROXY здесь не работают?

Коротко: Codex CLI сам переменные HTTPS_PROXY, HTTP_PROXY и ALL_PROXY не читает. Запрос на то, чтобы он начал их применять, висит в трекере открытым с сентября 2025 года. Ключи network_proxy в файле config.toml относятся к другому: это прокси для команд, которые агент запускает в песочнице.

Здесь тема Codex VPN делится на две разные задачи, и их постоянно путают.

Трафик самого Codex до OpenAI Трафик команд, которые агент запускает
Кто ходит наружу сам агент команды внутри песочницы
Ключ в config.toml нет такого ключа features.network_proxy, [permissions.<имя>.network]
Переменные окружения не читаются, запросы открыты учитываются встроенным прокси песочницы
Чем настраивается маршрутом на уровне системы настройками песочницы

Задача первая - трафик самого Codex до OpenAI. В официальном справочнике конфигурации ключа для него нет. В трекере лежат два открытых запроса. Issue 4242 - про то, чтобы клиент сам применял переменные HTTPS_PROXY, HTTP_PROXY и ALL_PROXY во всех исходящих запросах. Issue 6060 - про отдельное поле http_proxy в config.toml. Оба открыты, то есть готового поведения на них ссылаться нельзя. Переменная NO_PROXY в справочнике не описана.

Задача вторая - трафик команд, которые запускает сам агент. Вот для неё в ~/.codex/config.toml есть целая ветка: features.network_proxy с полями enabled, proxy_url, socks_url, domains, и секция [permissions.<имя>.network]. По официальному описанию это прокси для команд в песочнице - ограниченном окружении, в котором агент запускает команды на твоей машине. Собственный канал агента наружу эти ключи не настраивают.

Практический вывод простой: настраивай маршрут на уровне системы. Переменные окружения эту задачу не решают. Терминальные клиенты со строчными http_proxy в окружении в трекере встречаются, но подтверждённого правила «выставь переменную и заработает» нет.

Чем рискует аккаунт и что об этом пишет OpenAI?

Коротко: России в официальном списке поддерживаемых стран OpenAI нет. На той же странице написано, что доступ к сервисам за пределами перечисленных стран может привести к блокировке или приостановке аккаунта. Условия использования отдельно запрещают обход ограничений. Решение принимаешь ты, но условие стоит знать до того, как поднимаешь туннель.

Я открыл официальную страницу поддерживаемых стран 10 сентября 2026 года. В перечне 208 стран и территорий; России и Беларуси среди них нет, Украина указана с пометкой про исключения, даты последнего обновления на странице не видно.

«Доступ к нашим сервисам за пределами перечисленных ниже стран и территорий, равно как и предоставление такого доступа другим, может привести к блокировке или приостановке вашего аккаунта» - так написано на официальной странице Supported countries and territories. Перевод мой, оригинал по ссылке.

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

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

Что дальше

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

Настройки и скиллы, которые я держу для своих проектов, собраны в базе знаний ClaudeBase: файлы ставятся в проект по инструкции, агент читает их в рабочем контексте.

Источники

Спрашивают

Пять вопросов по теме

Почему ChatGPT в браузере открывается, а Codex в терминале не подключается?

Браузер и терминал ходят в сеть разными путями. Расширение туннеля уводит только трафик браузера, поэтому страница входа открывается, а следующий шаг - обмен кода на токен - делает уже сам терминал со своего маршрута. Решает это системный режим туннеля; режим для отдельных сайтов сюда не подходит.

Что означает ошибка unsupported_country_region_territory?

Это отказ по стране выхода. Сервер OpenAI проверил адрес, с которого пришёл запрос, и вернул 403 с текстом Country, region, or territory not supported. Пароль, тариф и целость установки тут ни при чём: тот же аккаунт с другого маршрута работает.

Понимает ли Codex CLI переменные HTTPS_PROXY и HTTP_PROXY?

На сентябрь 2026 года Codex CLI сам эти переменные не читает. Запрос на то, чтобы клиент их применял, висит в трекере openai/codex открытым (issue 4242), как и предложение завести ключ http_proxy в config.toml (issue 6060).

Порт 1455 занят, вход не проходит - что делать?

Порт локального сервера входа фиксированный, и его занимают между собой окна редактора, расширение и вторая копия приложения. В трекере это описано строкой Port 127.0.0.1:1455 is already in use. Закрыть лишние окна и повторить вход. Вариант без браузера - команда codex login --device-auth.

Могут ли заблокировать аккаунт за доступ из неподдерживаемой страны?

OpenAI пишет об этом прямо на странице поддерживаемых стран: доступ к сервисам за пределами перечисленных стран и территорий может привести к блокировке или приостановке аккаунта. России в этом списке нет. Решение принимаешь ты, но знать условие лучше заранее.

Максим Самусь · проверено на своих проектах