Попробовать
Назад к блогу

Настройка прокси в Postman: системный и свой прокси, авторизация и решение частых ошибок

Настройка прокси в Postman: системный и свой прокси, авторизация и решение частых ошибок

Десктопный Postman умеет отправлять запросы к API двумя путями: брать прокси, который уже задан в операционной системе, или ходить через собственный сервер, указанный прямо в приложении на вкладке Settings → Proxy. Во втором случае можно выбрать HTTP или один из четырёх вариантов SOCKS, добавить логин с паролем и перечислить узлы, которым туннель не нужен. Если включить оба режима сразу, приоритет получит собственный.

Ниже — что именно меняет каждый переключатель, как убедиться, с какого IP на самом деле уходят запросы, как поля прокси уживаются с переменными окружения и Newman, а также таблица-расшифровка невнятных сообщений, которые Postman выдаёт при сбоях прокси.

Прокси дата-центров

Быстрые прокси дата-центров с постоянным IP для тестирования API в Postman

Попробовать

Два «прокси», которые легко перепутать

Слово proxy встречается в интерфейсе Postman дважды, и эти функции никак не связаны.

Прокси для отправки и прокси для перехвата
Прокси для отправки и прокси для перехвата
ФункцияНаправлениеГде находитсяЗачем
Прокси для отправки запросовPostman выходит наружу через удалённый серверSettings, вкладка ProxyКорпоративные сети, гео-тесты, постоянный IP выхода
Встроенный прокси для перехватаДругие приложения идут через PostmanПанель захвата запросовЗапись трафика телефона или браузера в коллекцию

Здесь разбираем первую. Если нужно, чтобы Postman записывал запросы мобильного приложения, ищите функцию захвата.

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

  • Десктопная версия для Windows, macOS или Linux. Браузерная не умеет хранить данные авторизации для системного прокси.
  • Адрес сервера, порт и протокол от провайдера, например 198.51.100.7:3128 по HTTP.
  • Логин и пароль, если провайдер не пускает вас по белому списку IP.

Тестировать API с постоянного адреса проще всего через прокси дата-центров: они быстрые, недорогие в расчёте на запрос и неделями держат один выход, а это важно, когда сторона API проверяет список разрешённых адресов.

Где вкладка Proxy

Щёлкните по шестерёнке в верхней панели, выберите Settings и перейдите на Proxy. На экране три блока: настройка по умолчанию для системного прокси, переключатель Use system proxy и переключатель Use custom proxy configuration.

Настройки Proxy в Postman: Use system proxy включён, Use custom proxy configuration выключен
Раздел Proxy в настройках Postman

Вариант А. Унаследовать прокси системы

Подходит, когда сеть работодателя и так гонит трафик через шлюз, а от Postman нужно лишь не мешать.

  1. Включите Use system proxy. Теперь Postman читает HTTP- или SOCKS-сервер, заданный в Windows, macOS или Linux.
  2. Вложенная галочка заставляет приложение учитывать ещё и переменные HTTP_PROXY, HTTPS_PROXY и NO_PROXY. Отметьте её, если консольные утилиты опираются на эти переменные и поведение должно совпадать.
  3. Переключатель Use custom proxy configuration оставьте выключенным, иначе он перекроет всё перечисленное.
  4. Если корпоративный шлюз требует входа, в блоке по умолчанию отметьте This proxy requires authentication, заполните два поля и нажмите Save and Restart Postman.

Вариант Б. Отдельный сервер только для Postman

Браузеры и другие программы этот путь не затрагивает, поэтому для тестирования он нужен чаще всего.

Шаг 1. Решите, какой трафик пускать через прокси

Включите Use custom proxy configuration. В пункте Use proxy for по умолчанию отмечены и HTTP, и HTTPS. Не трогайте их, если только сознательно не хотите оставить обычные HTTP-запросы без прокси.

Шаг 2. Опишите сервер

В выпадающем списке протоколов выберите HTTP, SOCKS5, SOCKS5H, SOCKS4 или SOCKS4A, затем впишите адрес и порт в отдельные поля. Добавлять http:// перед адресом не нужно: протокол уже задан списком. С SOCKS5H доменные имена разрешаются на стороне прокси, и внутренний DNS офиса не видит, к какому сайту вы обращаетесь. Варианты SOCKS переносят только HTTP- и HTTPS-запросы, вкладки WebSocket и gRPC они не покрывают. Как выбирать между протоколами, рассказано в сравнении SOCKS5 и HTTP-прокси.

Шаг 3. Добавьте учётные данные

Включите Proxy auth и вставьте логин и пароль. Postman передаёт их самому прокси как базовую авторизацию. С вкладкой Authorization у запроса они не связаны: та работает с API за прокси. Путаница между ними — частая причина ответов 407.

Собственная конфигурация прокси в Postman: отмечены HTTP и HTTPS, сервер, порт и поля Proxy auth
Адрес и логин прокси задаются в собственной конфигурации

Шаг 4. Исключите узлы

Поле Proxy bypass принимает список через запятую, например localhost,127.0.0.1,staging.internal. Запросы к этим узлам идут напрямую. Внесите сюда локальные mock-серверы, иначе удалённый прокси будет искать localhost у себя и ничего не найдёт.

Postman выбирает один из двух путей: через настройки операционной системы или через собственный прокси, а локальные узлы из списка исключений получают запросы напрямую
Путь запроса в Postman: системный прокси, собственный прокси и список исключений

Проверка IP выхода

Создайте GET-запрос к любому сервису, который возвращает адрес клиента, например https://ip-echo.example/json (подставьте настоящий API определения IP, которому доверяете), и отправьте его. В ответе должен быть адрес прокси и его страна, а не ваши. Затем откройте Postman Console сочетанием Ctrl+Alt+C в Windows и Linux или Cmd+Option+C в macOS: если раскрыть запись запроса, видны сетевые подробности, в том числе удалённый адрес соединения. Для проверки вне Postman подойдёт наш чекер прокси, который покажет, отвечает ли сервер, а заметки о проверке геолокации прокси объясняют, почему базы иногда расходятся в стране.

Переменные окружения и Newman

Переменные оболочки ведут себя неожиданно. Если в сеансе заданы http_proxy, https_proxy или их версии в верхнем регистре, Postman встаёт на сторону системного прокси и игнорирует то, что вы ввели в приложении. Уберите их из профиля или запускайте Postman небольшим скриптом, который сначала их очищает:

@echo off
set HTTP_PROXY=
set HTTPS_PROXY=
start "" "%LOCALAPPDATA%\Postman\Postman.exe"

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

HTTPS_PROXY=http://qa-user:s3cret@198.51.100.7:3128 NO_PROXY=localhost newman run orders-api.json

Так CI-пайплайны не зависят от чьих-то настроек на рабочем столе.

Сообщения об ошибках и их смысл

Сообщение в PostmanВероятная причинаЧто делать
tunneling socket could not be established, statusCode=407Прокси отклонил учётные данныеЗаново введите логин и пароль в Proxy auth, проверьте, не закончился ли тариф
connect ECONNREFUSED с адресом проксиНеверный порт или сервер не работаетСверьте порт и протокол, проверьте сервер чекером
getaddrinfo ENOTFOUNDОпечатка в имени прокси или узел, который прокси не может разрешитьПроверьте написание, попробуйте SOCKS5H или IP-адрес
ETIMEDOUT или socket hang upМедленный или перегруженный прокси, файрвол на путиУвеличьте таймаут запроса в Settings → General, попробуйте другой выход
self signed certificate in certificate chainКорпоративный шлюз вскрывает HTTPSДобавьте корпоративный CA в Settings → Certificates или отключите проверку SSL-сертификатов только на время тестов
Запрос всё равно идёт с вашего IPПобеждают переменные окружения или системный переключательОчистите переменные, выключите системный режим, перезапустите приложение

Если запрос падает только через прокси, API может блокировать этот диапазон адресов. Похожие симптомы даёт HTTP-прокси, который не умеет открывать HTTPS-туннель; как работает метод CONNECT, объясняет материал о HTTP- и HTTPS-прокси.

Частые вопросы о прокси в Postman

Поддерживает ли Postman SOCKS5-прокси?

Да. В списке протоколов собственного прокси есть SOCKS5 и SOCKS5H, а также SOCKS4 и SOCKS4A, с необязательными логином и паролем. Работают они только для HTTP- и HTTPS-запросов.

Почему Postman игнорирует мои настройки прокси?

Чаще всего в системе заданы переменные окружения прокси, и Postman отдаёт предпочтение им. Очистите переменные или запускайте приложение скриптом, который их удаляет, и проверьте, что активен именно собственный режим.

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

В десктопном клиенте нет: вкладка прокси — одна глобальная настройка, переменные она не читает. Вместо этого запускайте коллекции через Newman с разными переменными прокси на каждый прогон.

Чем авторизация прокси отличается от авторизации запроса?

Proxy auth представляет вас промежуточному серверу и уходит с каждым запросом. Вкладка Authorization задаёт данные для самого API, например заголовок с токеном или базовый вход.

Как отключить прокси в Postman?

Откройте Settings → Proxy и выключите оба переключателя — Use system proxy и Use custom proxy configuration. Если запросы всё равно идут через прокси, поищите на компьютере переменные окружения прокси.