35% Скидка на Резидентские прокси на 9 месяцев — используйте код WING35 при оформлении заказа

Получить предложение

Подробное руководство, как использовать curl с прокси

Часто возникает необходимость применять curl с прокси. В повседневных задачах эта утилита является первым шагом при диагностике доступности сайтов. Многие специалисты используют промежуточные серверы для маршрутизации HTTP или HTTPS-запросов. Поскольку указанная команда выводит и заголовки, и тело ответа, поиск неисправностей значительно упрощается. Например, можно тестировать приложение из другой сети через промежуточный сервер или из-за требований сетевого экрана. Также это помогает сохранить конфиденциальность, скрывая реальный IP-адрес и имитируя запросы из другого региона. Используя вышеупомянутую команду, можно сразу проверить, какой IP-адрес отображается на каждом этапе. В данном руководстве описано, как выполнять curl через прокси. Рассмотрены команды, польза промежуточных серверов, их настройка в различных системах и конфигурациях. Представлены сведения об HTTP/HTTPS, SOCKS, настройках через переменные окружения и конфигурационные файлы, исключениях для отдельных запросов, а также советы по выбору подходящего сервера.

Опубликовано:

19.05.2025

Время чтения:

10 min

Что такое curl и зачем его использовать с прокси?

Client URL– это утилита командной строки для передачи данных между клиентом и сервером по различным протоколам (HTTP, HTTPS, FTP и др.). Проще говоря, curl позволяет отправлять HTTP-запросы и получать ответы прямо из терминала без браузера. Этот инструмент широко используется в веб-скрейпинге, работе с API и автоматизации. Он бесплатный, с открытым исходным кодом и часто предустановлен в современных операционных системах. Кроме того, существует библиотека libcurl для интеграции. Многие языки программирования (например, PHP) позволяют использовать функциональность curl в коде для выполнения web-запросов.

Установка cURL

Запустите проверку, убедившись, что curl уже установлен: выполните в терминале

bash
curl –version

На Windows 10/11 он есть «из коробки» (при необходимости обновите через Chocolatey или Scoop). На macOS тоже предустановлен (для актуальной версии используйте Homebrew), а в Linux его обычно можно добавить через системный пакетный менеджер (apt, dnf и др.).

Чтобы направить запрос через прокси, достаточно добавить ключ:

bash
curl --proxy http://адрес_прокси:порт https://example.com

Подготовка к использованию прокси с cURL

Перед тем как отправлять HTTP-запросы через прокси, нужно подготовить четыре ключевых параметра:

  • Адрес: доменное имя или IP-сокет (например, proxy.example.com).
  • Порт: точка входа на промежуточный сервер (часто 3128 или 8080).
  • Тип соединения: протокол туннеля — HTTP/HTTPS или SOCKS4/SOCKS5, чтобы установить корректный канал.
  • Учётные данные: логин и пароль для доступа, если сервер требует авторизации.

Настройка HTTP/HTTPS прокси

После получения нужной информации её можно использовать несколькими способами. Самый простой — указывать промежуточный сервер непосредственно в командной строке при выполнении запроса, используя флаг -x (или –proxy). В таком случае запрос выглядит так:

curl -x http://proxy.example.com:8080 http://example.com

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

curl -x http://user:password@proxy.example.com:8080 http://example.com

Или использовать отдельный параметр:

curl --proxy-user user:password -x http://proxy.example.com:8080 http://example.com

Для отладки полезен режим подробного вывода (флаг -v). Если требуется защищённое соединение, нужно просто указать это явно в адресе:

curl -x https://proxy.example.com:8080 https://example.com

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

На Linux или Mac это выглядит так:

export http_proxy=http://proxy.server:8080

На Windows:

set http_proxy=http://proxy.server:8080

После такой настройки все HTTP-запросы автоматически будут проходить через заданный сервер, пока переменные окружения не будут изменены или удалены. Такой способ удобен при постоянном использовании промежуточного сервера. Чтобы прекратить использовать сервер, переменные нужно очистить или переопределить.

Использование прокси SOCKS4/SOCKS5 с cURL

Утилита curl поддерживает работу с промежуточными серверами типа SOCKS. Для использования SOCKS4 или SOCKS5 достаточно применить похожий подход, указав соответствующий флаг или схему подключения. Разработчики часто выбирают локальный SOCKS5-сервер при тестировании мобильных приложений в эмуляторе. Например, запрос через SOCKS5 на локальном адресе 1080 будет выглядеть следующим образом:

curl --socks5 localhost:1080 http://example.com

Эта команда направляет HTTP-запрос через указанный SOCKS5-сервер на локальном компьютере. Аналогично можно использовать и SOCKS4, заменив флаг на соответствующий. Также можно указать тип промежуточного сервера иным способом, через опцию -x, задав нужную схему в URL-адресе:

curl -x socks5h://localhost:1080 http://example.com

В этом примере схема с дополнительным символом «h» указывает команде выполнять DNS-запросы через указанный сервер (протоколы SOCKS поддерживают такое поведение с использованием данной схемы). SOCKS4 — более старый тип, не поддерживающий аутентификацию и IPv6, тогда как SOCKS5 умеет работать с аутентификацией пользователей и многими другими возможностями. Если сервер требует авторизации, предоставьте учётные данные так же, как и для HTTP-варианта (например, через флаг –proxy-user). Поддержка SOCKS в этой утилите позволяет вам гибко направлять запросы через различные промежуточные серверы и схемы соединений. 

Методы настройки прокси в cURL

Существует несколько способов настроить curl для работы через прокси-сервер. Ниже рассмотрены самые распространённые методы.

Опции командной строки

Самый простой способ — указывать прокси-сервер непосредственно с помощью опции -x при выполнении команды. Эта опция (-x или –proxy) позволяет подключиться через указанный прокси-сервер прямо из командной строки.

bash
curl -x [протокол://]адрес_прокси[:порт] [URL]

Пример:

bash
curl -x "http://user:password@127.0.0.1:8080" http://httpbin.org/ip

В этом примере запрос отправляется через прокси по адресу 127.0.0.1:8080 (с указанными именем пользователя и паролем). В итоге сервис httpbin возвращает IP-адрес, показывая, что запрос прошёл через прокси.

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

Вы также можете задать прокси для curl глобально с помощью переменных окружения. Этот способ удобен, когда вы собираетесь выполнять множество запросов и не хотите прописывать прокси для каждой команды.

Шаг 1: установите переменные окружения http_proxy и https_proxy в системе. Например, в Linux или macOS это можно сделать так:

bash
export http_proxy="http://user:password@proxyserver:8080"

export https_proxy=http://user:password@proxyserver:8080

(В приведённой строке вместо user:password@proxyserver:8080 укажите адрес, порт и при необходимости учётные данные вашего прокси.)

Шаг 2: запустите curl-запросы как обычно, без явного указания прокси. Теперь нет необходимости указывать прокси каждый раз – утилита возьмёт настройки из переменных окружения:

bash
curl http://httpbin.org/ip

Этот запрос вернёт IP-адрес прокси, подтверждая, что curl использует прокси из переменных окружения.

Примечание: описанная выше настройка действует на Linux и macOS. В Windows вместо переменных окружения используется файл _curlrc в папке пользователя (в нём можно прописать строчку proxy = http://user:password@proxyserver:8080 с нужными значениями).

Постоянная конфигурация (например, .curlrc или _curlrc)

Для постоянного использования одних и тех же прокси-настроек удобно воспользоваться конфигурацией curl – специальным файлом .curlrc. С его помощью можно задать прокси по умолчанию один раз, чтобы не прописывать его в каждой команде.

Как это сделать:

  • Создайте (или откройте) файл ~/.curlrc в вашем домашнем каталоге (для Windows – файл _curlrc в каталоге %APPDATA%).
  • Затем в этот файл нужно добавить строку с настройками прокси, например:
bash
proxy = http://user:password@proxyserver:8080
  • Сохраните файл.

Теперь при запуске любой команды curl прокси будет использоваться автоматически (по умолчанию). Вы всегда можете изменить эту конфигурацию, отредактировав файл .curlrc.

Как обойти или отключить прокси для определённых запросов

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

curl --noproxy example.com,localhost http://example.com

Подстановка * отключит шлюз для всего запроса.

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

export NO_PROXY="localhost,127.0.0.1,.internal.example.com"

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

Быстрое включение/выключение прокси

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

  • Псевдонимы или небольшие скрипты в оболочке.
    Используйте короткие алиасы(псевдонимы) или скрипты, которые включают или отключают переменные окружения, отвечающие за промежуточный сервер. Например, можно создать команду proxy_on, задающую переменные окружения, и команду proxy_off, убирающую их. После этого переключение становится быстрым и простым: достаточно вызвать одну из этих команд перед вашим запросом.
  • Игнорирование конфигурации на один запуск.
    Если у вас в файле конфигурации (.curlrc) задан промежуточный сервер по умолчанию, его можно временно проигнорировать, добавив к команде опцию -q. Она позволяет выполнить запрос без использования стандартных настроек. Это удобно, если вы хотите выполнить отдельный запрос напрямую, не изменяя глобальные параметры.
  • Использование альтернативной конфигурации.
    Если промежуточный сервер обычно не используется, но иногда требуется, создайте отдельный файл с настройками. При выполнении команды curl можно воспользоваться опцией -K, чтобы задать программе заранее подготовленный конфигурационный файл. Такой подход позволяет быстро применить все необходимые параметры, не вводя их вручную каждый раз.

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

Как выбрать подходящий прокси для cURL

Не все прокси-серверы одинаковы, поэтому при их выборе обращайте внимание на несколько ключевых факторов:

  • Тип (SOCKS5 или HTTP): SOCKS5-прокси подходят для работы с разнообразными протоколами и позволяют выполнять DNS-запросы через себя. Для обычного веб-трафика (HTTP/HTTPS) достаточно HTTP-прокси. Уточните, какие типы поддерживаются вашим инструментом, и выберите вариант, соответствующий вашим задачам.
  • Расположение и IP: старайтесь выбирать прокси-сервер в той стране, где находится нужный вам контент. Если при тестировании или парсинге данных требуется часто менять IP-адрес, подойдут ротационные или резидентные прокси. Как правило, платные варианты более надёжны и стабильны в работе, чем бесплатные.
  • Производительность: помните, что работа через дополнительный сервер-посредник может приводить к появлению задержек. Старайтесь выбирать быстрые прокси-серверы с минимальной задержкой, чтобы команды выполнялись почти так же быстро, как и без него. Чтобы оценить влияние прокси на скорость, сравните время выполнения одной и той же операции с прокси-сервером и без него.
  • Конфиденциальность: если для вас важна приватность, отдавайте предпочтение анонимным прокси-серверам, которые скрывают ваш реальный адрес. При работе с конфиденциальными данными (например, токенами или API-ключами) обязательно используйте защищённое соединение — HTTPS-прокси, так как оно шифрует трафик куда надёжнее, чем обычный HTTP. Помните, что любой прокси-сервер видит весь не зашифрованный трафик, поэтому для важных сведений обращайтесь только к проверенным решениям. Если же приходится задействовать сомнительный вариант, постарайтесь свести к минимуму передачу ценной информации через него и работайте с ним максимально осторожно.
  • Аутентификация: если выбранный прокси требует авторизации, убедитесь, что указали правильные учётные данные. Как правило, логин и пароль передаются либо с помощью специального параметра командной строки, либо непосредственно в URL (например: http://пользователь:пароль@адрес). Поддерживаются различные схемы аутентификации (Basic, NTLM и др.), поэтому корректно заданные данные гарантируют успешное подключение.
  • Надёжность: для длительных или критически важных процессов старайтесь использовать только проверенные и стабильные прокси-сервисы. Учтите, что бесплатные варианты часто грешат нестабильностью и низкой скоростью, поэтому в ответственных случаях лучше отдавать предпочтение платным решениям с высокой доступностью. Также заранее выясните, не установлены ли ограничения на объём передаваемых данных или количество запросов. Всегда имейте резервный прокси на случай, если основной перестанет работать — так сбой одного сервера не остановит весь процесс.

С учётом приведённых рекомендаций диагностика неполадок при работе с прокси-серверами станет намного проще и понятнее. Какой бы вариант вы ни выбрали, принцип использования этой утилиты остаётся одинаковым во всех Unix-подобных системах.

Заключение

Использование curl в паре с прокси-сервером — простой и эффективный способ повысить безопасность и гибкость ваших веб-запросов. Такой подход помогает скрыть ваш реальный IP-адрес, обходить географические ограничения и собирать большие объёмы данных без риска блокировок. При этом сам curl предлагает обширные возможности конфигурации: прокси можно указать как для отдельной команды, так и глобально — через переменные окружения или конфигурационный файл (в зависимости от поставленных задач).

Надеемся, что это руководство помогло вам разобраться, как использовать curl с прокси-сервером. Теперь вы обладаете всеми необходимыми знаниями и можете смело применять их на практике — будь то для личной безопасности, изучения веб-сервисов или отладки своих приложений.

Похожие статьи

Остались вопросы?