Настройка использования прокси сервера в cURL
- Recluse
- 29.08.2022
- 4 773
- 2
- 02.12.2023
- 2
- 2
- 0
В данной статье мы разберем, какие действия необходимо выполнить с утилитой cURL, чтобы заставить её работать через прокси-сервер.
Использование аргументов командной строки
Для того, чтобы указать вручную прокси-сервер, следует использовать параметры -x
или –proxy
:
curl -x "http://[АДРЕС]:[ПОРТ]" "http://yandex.ru"
curl -proxy "http://[АДРЕС]:[ПОРТ]" "http://yandex.ru"
То есть, для прокси-сервера по адресу 192.168.2.200 и порту 3128, строка запуска cURL будет выглядеть так:
curl -x "http://192.168.2.200:3128" "http://yandex.ru"
curl -proxy "http://192.168.2.200:3128" "http://yandex.ru"
Если же, на данном сервере требуется авторизация (пусть это будет пользователь user и пароль 1234), то строка запуска приобретет следующий вид:
curl -x "http://192.168.2.200:3128" "http://yandex.ru" -U user:1234
curl -proxy "http://92.168.2.200:3128" "http://yandex.ru" -U user:1234
Использование переменных среды
Альтернативным способом настройки использования прокси-сервера, является возможность задать используемый прокси-сервер в переменных среды операционной системы. Делается это двумя командами:
export http_proxy="http://[ЛОГИН]:[ПАРОЛЬ]@[АДРЕС]:[ПОРТ]"
export https_proxy="http://[ЛОГИН]:[ПАРОЛЬ]@[АДРЕС]:[ПОРТ]"
В данном случае, пареметр http_proxy отвечает за прокси-сервер, который будет использоваться для соединения по http протоколу, а параметр https_proxy - за прокси-сервер, который будет использоваться для защищенных соединений по https. При этом, не обязательно, чтобы https_proxy работал по https.
Таким образом, для использования прокси-сервера с адресом 192.168.2.200 и портом 3128, следует выполнить следующие команды:
export http_proxy="http://192.168.2.200:3128"
export https_proxy="http://192.168.2.200:3128"
Если нужно использовать какой-то определенный логин и пароль, то просто добавляем их в данные переменные (в качестве примера - пользователь user и пароль 1234):
export http_proxy="http://user:1234@192.168.2.200:3128"
export https_proxy="http://user:1234@192.168.2.200:3128"
Использование файла конфигурации
В зависимости от операционной системы, меняется местоположение и имя данного файла:
- В Linux и MacOS данный файл находится в домашней директории пользователя, и имеет имя
.curlrc
- В Windows данный файл находится в директории
%appdata%
, и называется_curlrc
В данный файл следует добавить одну единственную строку, которая отвечает за настройку использования cURL прокси-сервера:
proxy="http://[ЛОГИН]:[ПАРОЛЬ]@[АДРЕС]:[ПОРТ]"
То есть, для прокси-сервера с адресом 192.168.2.200 и портом 3128, следует писать следующее:
proxy="http://192.168.2.200:3128"
А если нужна авторизация, то добавить данные авторизации в эту же строку (для примера, это будет пользователь user и пароль 1234):
proxy="http://user:1234@192.168.2.200:3128"
Использование socks прокси
В примерах выше, мы использовали только http или https прокси, но помимо них есть еще socks прокси, работу с которыми cURL так же поддерживает. Для того, чтобы задать использование socks прокси, следует просто заменить адрес прокси сервера с http на нужную версию socks - socks4, socks4a, socks5 или socks5h. В итоге, получится примерно следующее (в случае использования запуска программы из командной строки или терминала):
curl -x "socks5://[ЛОГИН]:[ПАРОЛЬ]@[АДРЕС]:[ПОРТ]" "http://yandex.ru"
Так же, при запуске из командной строки или терминала, можно использовать отдельный аргумент --socks5 (или иной версии socks), вместо параметра -x. Выглядеть это будет следующим образом:
curl --socks5 "[АДРЕС]:[ПОРТ]" "http://yandex.ru" --proxy-user [ЛОГИН]:[ПАРОЛЬ]
Обход прокси
На последок, хотелось бы отметить о полезной возможности указать в параметрах запуска программы игнорирование настроек прокси. Делается это с помощью параметра --noproxy "*":
curl --noproxy "*" "http://yandex.ru"
В результате выполнения данной команды, cURL попытается установить соединение напрямую, игнорируя заданные в настройках параметры прокси-сервера.
Добавить комментарий