it-roy-ru.com

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

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

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

389
user873286

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

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

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

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

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

От 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.
573
Karl Barker

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

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

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

110
Amar

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

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

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

71
Filipe Correia

в качестве дополнения к 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
48
Alejandro Moreno

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

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

192.168.X.X:XX поставить свой прокси-сервер ip и порт.

В режиме -v он даст больше подробностей, включая заголовки и ответ.

32
13krn

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

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

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

29
smitkpatel

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

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

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

25
bmetge

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

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

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

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

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

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

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

7
Pedro R. Sánchez A.

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

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

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

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

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

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

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

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

0
IbarMario