К содержимому

Прокси в curl: -x, аутентификация, SOCKS5 и переменные окружения

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

Опция -x и адрес прокси

В руководстве curl сказано, что -x, или --proxy, принимает строку прокси вида [protocol://]host[:port]. Без протокола или с http:// curl считает прокси HTTP-прокси. Если порт не указан, по руководству curl берёт 1080, поэтому всегда пишите порт, который дал провайдер.

Опция -x и адрес прокси: пример

curl -x http://proxy-host:port https://ipinfo.io/json

Замените proxy-host и port значениями из вашего списка прокси.

Опция -x и адрес прокси, продолжение

Для адреса https:// через HTTP-прокси книга Everything curl объясняет: curl просит у прокси туннель CONNECT и шифрует трафик внутри него, поэтому прокси не может ни прочитать, ни изменить содержимое. Добавьте -v, и вы увидите это: curl подключается к прокси, а не к сайту.

Логин и пароль

Используйте -U, или --proxy-user, с user:password либо укажите учётные данные в адресе прокси. В руководстве curl сказано, что логин и пароль в строке прокси curl декодирует как URL, поэтому @ записывается как %40, а двоеточие как %3a. Это важно: пароль с @, : или / ломает адрес, если его не закодировать.

Логин и пароль: пример

curl -x http://USERNAME:PASSWORD@proxy-host:port https://ipinfo.io/json
curl -U USERNAME:PASSWORD -x http://proxy-host:port https://ipinfo.io/json

В первой форме закодируйте специальные символы пароля в процентной записи.

Логин и пароль, продолжение

Руководство также предупреждает, что учётные данные в командной строке на короткое время видны другим пользователям той же системы, и советует читать чувствительные данные из файла. Один из способов — файл конфигурации (ниже).

SOCKS5 и разница между socks5 и socks5h

Руководство называет socks4://, socks4a://, socks5:// и socks5h:// префиксами для SOCKS-прокси. Разницу объясняет книга Everything curl: при socks5:// curl сам разрешает имя сайта, а при socks5h:// имя хоста отправляется прокси, и на вашем компьютере поиск имени не выполняется. Используйте socks5h://, если хотите, чтобы поиск имени делал прокси.

SOCKS5 и разница между socks5 и socks5h: пример

curl -x socks5h://USERNAME:PASSWORD@proxy-host:port https://ipinfo.io/json

Используйте socks5://, если хотите, чтобы curl разрешал имя локально.

SOCKS5 и разница между socks5 и socks5h, продолжение

Если нужно лишь убедиться, какой протокол поддерживает ваш тариф, он указан на странице SOCKS5-прокси, а четыре нужных значения объясняет руководство об адресе, порте и логине прокси.

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

curl также читает переменные окружения. В руководстве сказано, что их можно писать в нижнем или верхнем регистре, что вариант в нижнем регистре имеет приоритет, а http_proxy — исключение: он принимается только в нижнем регистре. Книга Everything curl объясняет причину: веб-сервер, запускающий CGI-скрипт, задаёт HTTP_PROXY из заголовка входящего запроса, поэтому curl игнорирует имя в верхнем регистре. Переменные: http_proxy, HTTPS_PROXY, ALL_PROXY, которая действует, когда не задана переменная для конкретного протокола, и NO_PROXY.

Переменные окружения и --noproxy: пример

export http_proxy="http://USERNAME:PASSWORD@proxy-host:port"
export HTTPS_PROXY="http://USERNAME:PASSWORD@proxy-host:port"
export NO_PROXY="localhost,127.0.0.1"
curl https://ipinfo.io/json

Значение прокси в этих переменных может использовать те же префиксы, что и -x, например socks5h://.

Переменные окружения и --noproxy, продолжение

По руководству, опция --proxy переопределяет эти переменные, а --noproxy со списком хостов через запятую или NO_PROXY заставляет curl подключаться к этим хостам напрямую. Запись --proxy "" переопределяет прокси, заданный в окружении.

Прокси по умолчанию в .curlrc

Руководство называет ~/.curlrc файлом конфигурации по умолчанию, а книга Everything curl сообщает, что в каждой строке одна опция, её можно писать с двумя ведущими дефисами или без них, а решётка начинает комментарий. Если вы всегда используете прокси, запишите его туда.

Прокси по умолчанию в .curlrc: пример

# ~/.curlrc
proxy = "http://USERNAME:PASSWORD@proxy-host:port"

Сделайте файл доступным для чтения только вам, потому что в нём пароль.

Проверьте, что прокси используется

Запросите https://ipinfo.io/json через прокси. Поля country и org должны описывать прокси, а не ваше собственное подключение; как их читать, объясняет руководство по проверке местоположения прокси. Если в ответе виден ваш собственный адрес, какая-то опция или переменная не сработала: проверьте совпадение с NO_PROXY, пустой --proxy "" или опечатку в имени переменной.

Типичные ошибки

Статус 407 означает, что прокси не принял учётные данные. Книга Everything curl сообщает, что заголовки ответа 407 показывают, какой метод аутентификации нужен прокси, и что можно указать --proxy-basic, --proxy-digest, --proxy-ntlm или --proxy-negotiate либо дать curl выбрать самому через --proxy-anyauth. Для обычных логина и пароля сначала заново скопируйте значения и проверьте кодирование; см. руководство по ошибке аутентификации. Отказ в соединении или тайм-аут обычно указывают на неверный порт или схему, это разобрано в руководстве по ошибке подключения. Если та же задача выполняется в Python, эквивалентные настройки показывает руководство по прокси в requests.

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

Для любой из этих команд нужны только хост, порт, логин и пароль прокси Proxy302. Трафик ротационных резидентных прокси оплачивается за ГБ, страна выхода задаётся при создании прокси; HTTP — порт 2222, SOCKS5 — порт 3333 на proxy.proxy302.com. Статический ISP IP фиксирован на весь срок аренды и не ротируется. В таблице — выходы в 7 странах при нашей последней почасовой проверке; зонд отправляет запрос к ChatGPT, это лишь пример целевого сайта. Подробности — на странице ротационных резидентных прокси и в руководстве по проверке местоположения прокси.

Измеренные выходы: ChatGPT, 7 стран

Измеренные выходы: ChatGPT, 7 стран
ПунктГородСеть (провайдер)ASN
СШАBaton Rouge, LouisianaVerizon BusinessAS6167
ВеликобританияBirkenhead, EnglandVirgin Media LimitedAS5089
ГерманияHannover, Lower Saxonyhtp GmbHAS13045
ЯпонияSaitama, SaitamaJCOM Co., Ltd.AS9824
СингапурYishun New Town, SingaporeSingtel Fibre BroadbandAS9506
БразилияSilvianópolis, Minas Geraisintertel telecomunicacao LTDAAS268801
ИндонезияДжакартаPT Mahawira Nusantara GrupAS151576

Почасовая проверка зонда Proxy302, 28 октября 2026, 14:56 UTC: по одному запросу к ChatGPT из каждой страны через динамический резидентный выход, по публичной точке входа Proxy302. Публично показаны только первые три октета IP. Один замер на страну, не среднее; следующие проверки будут отличаться.

Как это сделать с Proxy302: шаги

  1. Шаг 1

    Откройте страницу ротационных резидентных прокси, выберите линию, оставьте протокол HTTP или выберите SOCKS5 и нажмите «Проверить цену и создать».

  2. Шаг 2

    Откройте «Мои активы» (раздел консоли со всем, что вы купили) и скопируйте HOST, PORT, USERNAME и PASSWORD. На странице «Подключение» есть готовый пример с вашими данными.

  3. Шаг 3

    Введите данные в браузер или программу, которую вы настраиваете.

  4. Шаг 4

    Подтвердите выход запросом к https://ipinfo.io/json через прокси.

  5. Шаг 5

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

Цены и ограничения

Бюджетная линия стоит $1,50 за ГБ, $1,35 за ГБ в пакете 100 ГБ и $1,20 за ГБ при 300 ГБ. Бесплатного пробного периода нет, а минимальная покупка составляет 1 ГБ. Набор доступных локаций меняется ежедневно.

Частые вопросы

Почему http_proxy работает только в нижнем регистре?

В документации curl объясняется, что HTTP_PROXY в верхнем регистре может быть создан веб-сервером для CGI-скриптов из заголовка запроса, поэтому для HTTP curl принимает только имя в нижнем регистре. Остальные переменные прокси принимают оба варианта.

Нужны ли -p или --proxytunnel для HTTPS-сайтов?

Нет. Для URL https:// через HTTP-прокси curl уже использует туннель CONNECT. В руководстве --proxytunnel описана как опция, заставляющая curl туннелировать трафик запросом CONNECT; это важно для не-HTTP протоколов, например FTP, а в случае HTTPS туннель уже используется.

Как указать пароль с @ или двоеточием?

Закодируйте его в адресе прокси: @ становится %40, а двоеточие %3a, как сказано в руководстве curl. Или передайте пароль через -U.

Как отправить один запрос без прокси?

Используйте --noproxy с именем хоста или --proxy "", чтобы сбросить прокси, заданный в окружении.

Ссылки и источники

8
  1. Страница руководства curl

    Официальная документация · Проверено:

    Прочитано 28 октября 2026: -x/--proxy и его схемы (http, socks4, socks4a, socks5, socks5h), порт по умолчанию 1080, URL-декодирование логина и пароля, -U/--proxy-user и его предупреждение, --noproxy, --proxytunnel, переменные окружения прокси, примечание о http_proxy в нижнем регистре и ~/.curlrc.

  2. Everything curl: HTTP-прокси

    Официальная документация · Проверено:

    Прочитано 28 октября 2026: по умолчанию предполагается HTTP-прокси, метод CONNECT для целей HTTPS и показ подключения к прокси через -v.

  3. Everything curl: SOCKS-прокси

    Официальная документация · Проверено:

    Прочитано 28 октября 2026: SOCKS4, 4a, 5 и 5h и то, какая сторона разрешает имя хоста.

  4. Everything curl: переменные окружения прокси

    Официальная документация · Проверено:

    Прочитано 28 октября 2026: переменные [scheme]_proxy, ALL_PROXY, NO_PROXY и почему http_proxy принимается только в нижнем регистре.

  5. Everything curl: файл конфигурации

    Официальная документация · Проверено:

    Прочитано 28 октября 2026: одна опция в строке, длинные опции с дефисами или без них, комментарии с решёткой.

  6. Everything curl: аутентификация на прокси

    Официальная документация · Проверено:

    Прочитано 28 октября 2026: -U user:password, Basic по умолчанию, --proxy-digest, --proxy-negotiate, --proxy-ntlm, --proxy-anyauth и заголовки ответа 407.

  7. Факты о продуктах и прайс Proxy302

    Наблюдение за продуктом · Проверено:

    Файл фактов о продуктах сайта (значения сверены с консолью, бэкендом и прайсом 18-19 октября 2026): продукты, цены в долларах США (1 PTC = 1 USD), сроки аренды, протоколы и порты, число стран, лимиты количества, отсутствие бесплатного теста.

  8. Почасовая проверка связности Proxy302

    Наблюдение за продуктом · Проверено:

    Публичный JSON зонда proxy302.com/live/connectivity/chatgpt.json, прочитан 28 октября 2026, 14:56 UTC: по одному запросу на страну через динамический резидентный выход; город, ASN, сеть и время ответа.

Готовы попробовать?

Создайте аккаунт, пополните баланс и выберите ротируемый резидентный, статический ISP или дата-центр IP — настроить его в браузере можно за несколько минут.