Запросы при помощи curl через proxy


CURL proxy — ключ утилиты curl, позволяющий отправлять HTTP запрос не напрямую, в через прокси сервер. Сервер на принимающей стороне будет видеть не исходный IP адрес, а IP адрес прокси сервера.



CURL proxy


Прокси в целом используется для того чтобы скрыть собственный адрес и обойти всевозможные блокировки — корпоративные firewall и блокировки на уровне провайдера.



Консольная утилита curl имеет ключи позволяющие выполнять HTTP запросы через прокси. Их можно использовать при написании скриптов и при выполнении запросов из консоли. Такие же возможности будут предлагать реализации работы с библиотекой curl для языков программирования.

В bash основной ключ для работы --proxy

Есть и дополнительные информацию по ним можно найти в man curl.



На скриншоте приведена справка по основному ключу

curl proxy


Proxy сервер может быть собственным и публичным. Помимо работы с ним через curl его адрес можно задать в браузере. Вся работа в этом случае через браузер будет вестись через прокси.

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



CURL с ключом --proxy нужен если требуется отправить один запрос подменив источник.

Проксирующие сервера могут быть публичными и не требовать авторизации или же запрашивать валидные логин и пароль



Для первого случая запрос из консоли при помощи curl будет выглядеть так:

curl --proxy 123.123.123.123:20183 ya.ru


123.123.123.123 здесь — адрес прокси сервера, 20183 — порт, обращение идет к хосту ya.ru (хост взят для примера)



Если прокси требует авторизации (например, он корпоративный), то с ключом -U указывается логин, через двоеточие после него пароль.

curl --proxy 123.123.123.123:8123 -U username:password ya.ru



В логах доступа сервера, к которому выполняется обращение, в качестве ip адреса клиента будет ip адрес прокси сервера.



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

Это может вызывать значительные задержки в обработке запросов.



Задержки происходят и если настроить прокси в браузере. Особенно явно это видно с Tor. Для него маршрут всегда строится с использованием минимум трех удаленных друга от друга узлов.


Читайте про то как настроить собственный Proxy сервер на основе пакета Squid

Сказать спасибо