Выполнение HTTP-запросов с помощью cURL (с использованием PROXY)

У меня есть этот адрес прокси: 125.119.175.48:8909

Как я могу выполнить HTTP-запрос с использованием cURL, например curl http://www.example.com, но указав адрес прокси-сервера моей сети?

Ответ 1

Общий способ:

export http_proxy=http://your.proxy.server:port/

Затем вы можете подключиться через прокси из (многих) приложений.

И, согласно комментарию ниже, для https:

export https_proxy=https://your.proxy.server:port/

Ответ 2

От man curl:

-x, --proxy <[protocol://][user:[email protected]]proxyhost[:port]>

     Use the specified HTTP proxy. 
     If the port number is not specified, it is assumed at port 1080.

Ответ 3

Вышеупомянутые решения могут не работать с некоторыми версиями завитка, которые я попробовал для себя (curl 7.22.0). Но то, что сработало для меня, было:

curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url

Надеюсь, что он решает проблему лучше!

Ответ 4

Помните, что если вы используете прокси-сервер SOCKS вместо прокси-сервера HTTP/HTTPS, вам нужно будет использовать вместо него переключатель --socks5:

curl --socks5 125.119.175.48:8909 http://example.com/

Вы также можете использовать --socks5-hostname вместо --socks5 для разрешения DNS на стороне прокси.

Ответ 5

как дополнение к airween, еще одна хорошая идея - добавить это в свой .bashrc, чтобы вы могли переключиться с не прокси-сервера на прокси-сервер:

alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"

WHERE YOURPROXY: YOURPORT - это именно то, что ваш ip и порт прокси: -).

Тогда просто выполняя

proxyon

ваша система начнет использовать прокси-сервер, а наоборот:

proxyoff

Ответ 6

используйте следующие

curl -I -x 192.168.X.X:XX http://google.com

192.168.X.X:XX введите ваш IP-адрес и порт прокси-сервера.

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

Ответ 7

вы можете использовать:

curl http://www.example.com --proxy http://125.119.175.48:8909

как объяснил Карл

Ответ 8

Мне нравится использовать это, чтобы получить IP-адрес, под которым я вижу

curl -x http://proxy_server:proxy_port https://api.ipify.org?format=json && echo

Надеюсь, это поможет кому-то.

Ответ 9

Для curl вы можете настроить прокси в вашем ~/.curlrc (_curlrc в Windows), добавив значение proxy, синтаксис:

proxy = http://username:[email protected]:port

Ответ 10

Просто суммируя все замечательные упомянутые ответы:

curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>

Ответ 11

С прокси с аутентификацией я использую:

curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>

потому что, я не знаю, почему curl не использует /catch http [s] _proxy переменные среды.

Ответ 12

Вам не нужно экспортировать переменную оболочки http[s]_proxy, если вы просто устанавливаете прокси для одной команды. например.

http_proxy=http://your.proxy.server:port curl http://www.example.com

Тем не менее, я бы предпочел curl -x, если бы знал, что я всегда буду использовать прокси.

Ответ 13

В зависимости от вашего рабочего места вам также может потребоваться указать -k или --insecure для curl, чтобы избежать потенциальных проблем с сертификатами CA.

curl -x <myCompanyProxy>:<port> -k -O -L <link to file to download>

Ответ 14

sudo curl -x http://10.1.1.50:8080/ -fsSL https://download.docker.com/linux/ubuntu/gpg

У меня это отлично сработало, ошибка возникает из-за того, что curl нужно установить прокси

Напомним, замените прокси на ваш прокси, мой "пример" был http://10.1.1.50:8080/.

Ответ 15

C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080

Ответ 16

Если прокси-сервер использует автоматический прокси-сервер с файлом PAC. Мы можем найти фактический прокси-сервер из javascript из URL-адреса PAC.

И если прокси-сервер нуждается в аутентификации, мы можем сначала использовать обычный веб-браузер для доступа к веб-сайту, который будет продвигать аутентификацию. После аутентификации мы можем использовать wirehark для захвата отправки пакетов HTTP на прокси-сервер, из пакета http, мы можем получить токен аутентификации из http-заголовка: Прокси-авторизация

Затем мы можем установить переменную среды http_proxy, а также включить токен аутентификации в заголовке http: Прокси-авторизация

export http_proxy = http://proxyserver:port

curl -H "Прокси-авторизация: xxxx" http://targetURL