wykonywanie żądań HTTP za pomocą cURL (przy użyciu PROXY)

Mam ten adres proxy: 125.119.175.48:8909

Jak mogę wykonać żądanie HTTP używając cURL like curl http://www.example.com, ale podając adres proxy mojej sieci?

Author: ivanleoncz, 2012-02-25

16 answers

Droga Ogólna:

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

Następnie możesz połączyć się przez proxy z (wielu) aplikacji.

I, zgodnie z poniższym komentarzem, dla https:

export https_proxy=https://your.proxy.server:port/
 436
Author: airween,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-19 14:04:23

From man curl:

-x, --proxy <[protocol://][user:password@]proxyhost[:port]>

     Use the specified HTTP proxy. 
     If the port number is not specified, it is assumed at port 1080.
 685
Author: Karl Barker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-15 21:57:39

Powyższe rozwiązania mogą nie działać z niektórymi wersjami curl, które wypróbowałem dla siebie (curl 7.22.0). Ale mi się udało:

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

Mam nadzieję, że to rozwiąże problem lepiej!

 137
Author: Amar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-11 10:14:05

Uważaj, że jeśli używasz proxy SOCKS, zamiast proxy HTTP/HTTPS, musisz użyć przełącznika --socks5:

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

Możesz również użyć --socks5-hostname zamiast --socks5 do rozwiązania DNS po stronie proxy.

 88
Author: Filipe Correia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-13 17:30:10

Jako dodatek do airween, innym dobrym pomysłem jest dodanie tego do twojego .bashrc, więc będziesz mógł przełączyć się ze środowiska non proxied na proxied:

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

Gdzie YOURPROXY: YOURPORT to dokładnie to, twój ip i port proxy :-).

Następnie, po prostu robi

proxyon

Twój system zacznie używać proxy, a wręcz przeciwnie:

proxyoff
 54
Author: Alejandro Moreno,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-22 08:03:28

Użyj następującego

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

192.168.X.X:XX podaj adres IP i port serwera proxy.

-v tryb gadatliwy da więcej szczegółów, w tym nagłówki i odpowiedź.

 36
Author: 13krn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-26 06:27:28

Lubię używać tego, aby uzyskać IP, pod którym jestem widziany

curl -x http://proxy_server:proxy_port https://api.ipify.org?format=json && echo
Mam nadzieję, że to komuś pomoże.
 26
Author: bmetge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-04 14:11:03

Dla curl możesz skonfigurować proxy w swoim ~/.curlrc (_curlrc w systemie Windows) przez dodanie wartości proxy, składnia jest następująca:

proxy = http://username:password@proxy-host:port
 20
Author: kenorb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-11 12:58:46

Podsumowując wszystkie świetne wymienione odpowiedzi:

curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>
 15
Author: M. Mashaye,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-11 13:51:40
C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080
 13
Author: Debashish Saha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-06 09:54:15

Z proxy z uwierzytelnieniem używam:

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

Ponieważ, Nie wiem dlaczego curl nie używa zmiennych środowiskowych / catch http[s] _proxy.

 9
Author: Pedro R. Sánchez A.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-31 06:39:43

Nie musisz eksportować zmiennej Powłoki http[s]_proxy, jeśli ustawiasz proxy dla jednorazowego polecenia. np.

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

To powiedziawszy, wolałbym curl -x gdybym wiedział, że zawsze będę używał proxy.

 4
Author: overthink,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-27 18:03:24

W zależności od miejsca pracy może być również konieczne podanie opcji -k lub --insecure dla programu curl, aby uniknąć potencjalnych problemów z certyfikatami CA.

curl -x <myCompanyProxy>:<port> -k -O -L <link to file to download>
 2
Author: Matt Legler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-11 20:59:07
sudo curl -x http://10.1.1.50:8080/ -fsSL https://download.docker.com/linux/ubuntu/gpg

To działało dla mnie idealnie, błąd przychodzi, ponieważ curl trzeba ustawić the proxy

Remmember zastąp proxy swoim proxy, mine, "example" was http://10.1.1.50:8080/.

 2
Author: IbarMario,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-11 16:26:32

W przypadku, gdy proxy używa automatycznego proxy z plikiem PAC. Możemy znaleźć rzeczywiste proxy z javascript z PAC URL.

A jeśli proxy wymaga uwierzytelnienia, możemy najpierw użyć zwykłej przeglądarki internetowej, aby uzyskać dostęp do witryny, która będzie promowała okno uwierzytelniania. Po uwierzytelnieniu możemy użyć wireshark do przechwycenia pakietu http wysyłanego do serwera proxy, z pakietu http możemy uzyskać token auth z nagłówka http: Proxy-Authorization

Wtedy my może ustawić zmienną środowiskową http_proxy, a także dołączyć Token auth w nagłówku http: Proxy-Authorization

Export http_proxy=http://proxyserver:port

Curl-H "Proxy-Authorization: xxxx" http://targetURL

 0
Author: Jianwu Chen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-24 00:44:37
curl -vv -k https://example.com -x http://<proxy>:<port>
 0
Author: iamtheexplm06,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-23 08:00:09