GeekProxy в Postman и Insomnia
У обоих API-клиентов есть нормальный экран прокси, и оба применяют его ко всему приложению, а не к одной коллекции. В гайде настройки Postman, Newman и Postman CLI для тех же коллекций из терминала и Preferences в Insomnia, с точными названиями полей и единственным ограничением по SOCKS, которое имеет значение.
Что нужно: активный план GeekProxy и данные прокси из кабинета. Настройка занимает минуты три на приложение.
Получить прокси1 Перед началом
Postman и Insomnia это десктопные приложения для Windows, macOS и Linux, у обоих есть бесплатный тариф, и оба держат прокси в глобальных настройках. Прокси на коллекцию или на запрос нет ни там, ни там: настройка действует на каждый запрос приложения. Insomnia идёт дальше и ведёт через тот же прокси весь свой трафик, включая синхронизацию и вход. Веб-версия Postman прокси по умолчанию настроить вообще не может, поэтому гайд про десктопное приложение.
SOCKS5 с логином и паролем, честная версия:
- В выпадающем списке протоколов Postman есть HTTP, SOCKS5, SOCKS5H, SOCKS4 и SOCKS4A, но переключатель "Proxy auth" описан как basic-авторизация. Доходят ли эти логин и пароль до SOCKS5-прокси, мы подтвердить не смогли. Проверенный путь это HTTP с "Proxy auth"
- Insomnia принимает префиксы
socks4://,socks4a://,socks5://иsocks5h://, в зависимости от версии, а логин и пароль привязывает к Basic, Digest и NTLM, то есть к HTTP-механизмам. SOCKS5 с логином не проверен. Беритеhttp://LOGIN:PASSWORD@IP:PORT - Newman: SOCKS только в библиотечном режиме через свой агент; сам CLI читает переменные HTTP-прокси
Белый список IP в плане снимает вопрос. Оба приложения тогда берут голые хост и порт.
Что понадобится
- Активный план GeekProxy (ISP, датацентр или резидентские)
- Данные прокси из кабинета: хост, порт, логин, пароль
- Десктопный Postman, Insomnia 10.1 или новее, Node.js для Newman
- Поле Откуда взять
- Протокол HTTP (SOCKS5 с белым списком IP)
- Хост IP или имя шлюза из кабинета
- Порт из кабинета
- Логин из кабинета
- Пароль из кабинета
2 Где взять данные прокси
- Войдите в кабинет GeekProxy
- Откройте план. У планов с оплатой за IP (датацентр, ISP) список адресов, порты, логин и пароль лежат прямо на карточке, а кнопка Export отдаёт весь список текстом
- У резидентских и мобильных планов нажмите Options. Панель Proxy Configuration соберёт строку логина с вашей страной, городом и настройками сессии. Готовую строку копируйте из Proxy List
Postman хочет четыре значения в четырёх отдельных полях, Insomnia хочет один URL. Держите под рукой обе формы. Для гео-проверки по странам соберите в кабинете логин Turbo со страной и session_id, чтобы весь прогон коллекции шёл с одного адреса.
3 Postman: Settings, Proxy
Нажмите иконку Settings в шапке, выберите Settings и откройте вкладку Proxy. На странице два блока, и про ваши запросы только второй.
"Default proxy configuration" это системный прокси, через который приложение ходит в интернет. Если тому прокси нужна Basic-авторизация, отметьте "This proxy requires authentication", заполните "Username" и "Password" и нажмите "Save and Restart Postman". Для GeekProxy этот блок не трогайте, если только вся ваша ОС и так не сидит за прокси.
"Proxy configurations for sending requests" это нужный блок. В нём переключатель "Use system proxy" с необязательным вторым переключателем, который читает переменные HTTP_PROXY, HTTPS_PROXY и NO_PROXY из ОС, и переключатель "Use custom proxy configuration". Включите второй; если включены оба, Postman берёт custom. Дальше:
- "Use proxy for": оставьте отмеченными и HTTP, и HTTPS, так по умолчанию
- "Proxy server": выберите HTTP в списке протоколов, впишите
IPв поле хоста иPORTв поле порта. Документация повторяет дважды: протокол в поле хоста не писать - Включите "Proxy auth" и введите
LOGINиPASSWORD - "Proxy bypass": список хостов через запятую, которые идут мимо custom-прокси, например ваши локальные сервисы
Настройки действуют на запросы, которые шлёт Postman, и на онлайн-ресурсы, к которым он обращается. Capture proxy, где Postman сам работает прокси для телефона или браузера, это отдельная функция и здесь не участвует.
Переменные прокси на уровне ОС важнее. Если в окружении есть HTTP_PROXY или HTTPS_PROXY, Postman использует системный прокси и игнорирует собственные настройки. Уберите переменные или запускайте Postman из оболочки, где они очищены.
4 Newman и Postman CLI
Newman гоняет те же коллекции из терминала, и в его README один раздел про прокси: переменные окружения. HTTP_PROXY или http_proxy, HTTPS_PROXY или https_proxy, и NO_PROXY или no_proxy. Флага нет, в списке опций его не существует.
export HTTPS_PROXY="http://LOGIN:PASSWORD@IP:PORT" export HTTP_PROXY="http://LOGIN:PASSWORD@IP:PORT" newman run collection.json
Подробности про эти переменные README отдаёт библиотеке postman-request, и ту страницу мы не читали. Форма scheme://user:pass@host:port в этой экосистеме стандартная; если логин из URL не подхватится, переведите план на белый список IP и используйте http://IP:PORT. Для всего, что должно оставаться локальным, задайте NO_PROXY.
SOCKS в библиотечном режиме
Когда Newman работает как Node-библиотека, options.requestAgents принимает свои агенты для HTTP и HTTPS, и пример в README использует socks-proxy-agent. README до сих пор показывает старый API с default-экспортом и объектом { host, port }; нынешний socks-proxy-agent экспортирует { SocksProxyAgent } и принимает URL.
const newman = require('newman');
const { SocksProxyAgent } = require('socks-proxy-agent');
const requestAgent = new SocksProxyAgent('socks5h://LOGIN:PASSWORD@IP:PORT');
newman.run({
collection: require('./sample-collection.json'),
requestAgents: {
http: requestAgent, // агент для HTTP-запросов
https: requestAgent, // агент для HTTPS-запросов
}
}, function (err) {
if (err) { throw err; }
console.log('collection run complete!');
});
Postman CLI, более новый бинарник postman, на странице опций никакого прокси не упоминает. Читает ли он переменные окружения, мы не проверяли; когда прогон должен идти через прокси, берите Newman.
5 Insomnia: Preferences, Proxy
Откройте Preferences и перейдите в Proxy. С версии 10.1 Insomnia сама подхватывает прокси операционной системы, и тот же экран позволяет её переопределить. HTTP- и HTTPS-прокси вводятся полными URL с префиксом схемы, а логин и пароль идут в URL как Basic-авторизация; пример из документации: http://username:password@localhost:8005. Для GeekProxy:
- Поле HTTP-прокси:
http://LOGIN:PASSWORD@IP:PORT - Поле HTTPS-прокси: то же значение
- "No Proxy": имена хостов через запятую, которые идут мимо прокси, например localhost
Insomnia поддерживает ещё Digest и NTLM на прокси, GeekProxy это не нужно. Одно стоит помнить: прокси действует на весь трафик приложения, и документация прямо говорит, что ограничить его отдельными коллекциями или запросами нельзя. Синхронизация и вход едут через тот же прокси.
6 Проверка работы
Создайте в любом из приложений GET-запрос на https://ipinfo.io/json и отправьте. Поле ip должно показать адрес прокси, а не ваш. На ISP или датацентре это адрес из кабинета, на Residential или Turbo любой адрес из пула в выбранной стране. Поля country и org описывают сеть прокси.
Для Newman добавьте тот же запрос в черновую коллекцию и прочитайте ответ в выводе прогона. Вернулся ваш IP, значит переменные не экспортированы в той оболочке, где запущен Newman, или NO_PROXY зацепил больше, чем вы хотели.
7 Какой продукт GeekProxy подходит
Разработчику, который тестирует API с фиксированного адреса или из страны, где API ведёт себя иначе, нужен один неизменный IP: статический ISP или датацентр IPv4, без счётчика трафика, а с белым списком IP и вовсе без ввода пароля. Гео-проверки по многим странам это работа для Residential Turbo: логин со страной вроде -country-xx в поле Username плюс sticky session_id, чтобы весь прогон коллекции шёл с одного адреса. Residential Flex тоже подходит, он только TCP, а Postman и есть TCP. Во всех случаях берите HTTP; SOCKS5 в API-клиенте ничего не добавляет. Мобильные нужны для API, которые ведут себя иначе в сетях операторов.
8 Частые проблемы
Postman игнорирует custom-прокси
В окружении ОС есть переменные прокси, и Postman идёт за системным прокси. Очистите HTTP_PROXY и HTTPS_PROXY и перезапустите приложение.
Postman не подключается после вставки хоста
В поле хоста попал http://. Уберите протокол из поля; эту информацию несёт список рядом.
407 через запись SOCKS5 в Postman
"Proxy auth" задокументирован как basic-авторизация, и применимость к SOCKS5 мы подтвердить не смогли. Выберите HTTP в списке или внесите IP в белый список и оставьте SOCKS5 без логина.
В Insomnia перестали работать синхронизация или вход
Весь трафик Insomnia теперь идёт через прокси. Добавьте нужные хосты в "No Proxy" или выключите прокси на время входа.
Newman идёт напрямую, несмотря на переменные
Их задали в другой оболочке или без export. Поставьте их в одну строку с командой либо экспортируйте в той оболочке, где запускается Newman.
Библиотечный режим Newman падает на SocksProxyAgent
Сниппет в README использует старый API. Импортируйте { SocksProxyAgent } и передавайте URL, как в разделе 4.
Прокси для Postman и Insomnia
Статические ISP и датацентр для фиксированного адреса или резидентские сессии по странам, выдача за секунды.
Заказать