Mam ten adres proxy: 125.119.175.48:8909
Jak mogę wykonać żądanie HTTP przy użyciu cURL curl http://www.example.com
, ale podając adres proxy mojej sieci?
Mam ten adres proxy: 125.119.175.48:8909
Jak mogę wykonać żądanie HTTP przy użyciu cURL curl http://www.example.com
, ale podając adres proxy mojej sieci?
Odpowiedzi:
Ogólny sposób:
export http_proxy=http://your.proxy.server:port/
Następnie możesz połączyć się przez proxy z (wielu) aplikacji.
I, zgodnie z komentarzem poniżej, dla https:
export https_proxy=https://your.proxy.server:port/
Od 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.
-x user:password@proxyhost:port
Powyższe rozwiązania mogą nie działać z niektórymi wersjami curl, które sam wypróbowałem (curl 7.22.0). Ale dla mnie zadziałało:
curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url
Mam nadzieję, że to rozwiązuje problem lepiej!
[1] 4812
Uwaga: jeśli używasz proxy SOCKS, zamiast proxy HTTP / HTTPS, musisz użyć --socks5
przełącznika:
curl --socks5 125.119.175.48:8909 http://example.com/
Możesz także użyć --socks5-hostname
zamiast --socks5
do rozwiązania DNS po stronie proxy.
--socks5-hostname
.
curl https://api.ipify.org --proxy socks5://189.100.246.182:37339
wydaje mi się, że działa dobrze. Czy --proxy
opcja jest w jakiś sposób gorsza niż w --socks5
przypadku korzystania z serwerów proxy socks5?
--proxy
jest prawdopodobnie tym, czego chcesz teraz, ale nie zawsze było obsługiwane. Należy również pamiętać, że socks5://
i socks5h://
wykonać rozpoznawanie nazwy hosta (DNS) odpowiednio przed i po połączeniu z serwerem proxy.
jako dodatek do airween, innym dobrym pomysłem jest dodanie tego do twojego .bashrc, abyś mógł przełączyć się z środowiska bez proxy na proxy:
alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"
GDZIE TWOJA PROPORCJA: TWOJE SPRAWOZDANIE to dokładnie to, twój adres IP i port proxy :-).
Potem po prostu robię
proxyon
Twój system zacznie używać proxy, i odwrotnie:
proxyoff
użyj następujących
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 pełny poda więcej szczegółów, w tym nagłówki i odpowiedź.
możesz użyć :
curl http://www.example.com --proxy http://125.119.175.48:8909
jak wyjaśnił Karl
Aby curl
skonfigurować proxy w pliku ~/.curlrc
( _curlrc
w systemie Windows), dodając proxy
wartość, składnia jest następująca:
proxy = http://username:password@proxy-host:port
Podsumowując wszystkie świetne wspomniane odpowiedzi:
curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>
Z proxy z uwierzytelnianiem korzystam:
curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>
ponieważ nie wiem, dlaczego curl nie używa zmiennych środowiskowych / catch http [s] _proxy .
C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080
Nie musisz eksportować http[s]_proxy
zmiennej powłoki, jeśli tylko ustawiasz proxy dla jednorazowej komendy. na przykład
http_proxy=http://your.proxy.server:port curl http://www.example.com
Powiedziałbym, że wolałbym, curl -x
gdybym wiedział, że zawsze będę korzystać z serwera proxy.
W zależności od miejsca pracy może być konieczne określenie opcji -k
lub --insecure
opcji zwijania, aby uniknąć potencjalnych problemów z certyfikatami urzędu certyfikacji.
curl -x <myCompanyProxy>:<port> -k -O -L <link to file to download>
sudo curl -x http://10.1.1.50:8080/ -fsSL https://download.docker.com/linux/ubuntu/gpg
To działało idealnie dla mnie, pojawia się błąd, ponieważ curl musi ustawić proxy
Pamiętaj, aby zastąpić serwer proxy swoim serwerem, mój, „przykładem” był http://10.1.1.50:8080/ .
W przypadku, gdy serwer proxy używa automatycznego serwera proxy z plikiem PAC. Rzeczywiste proxy możemy znaleźć w javascript z adresu URL PAC.
A jeśli serwer proxy wymaga uwierzytelnienia, możemy najpierw użyć zwykłej przeglądarki internetowej, aby uzyskać dostęp do strony internetowej, która promuje dialog uwierzytelniania. Po uwierzytelnieniu możemy użyć wireshark do przechwycenia wysyłanych pakietów HTTP do serwera proxy, z pakietu http możemy uzyskać token uwierzytelnienia z nagłówka http: Autoryzacja proxy
Następnie możemy ustawić zmienną środowiskową http_proxy, a także dołączyć token autoryzacji do nagłówka http: Autoryzacja proxy
eksport http_proxy = http: // serwer proxy: port
curl -H "Autoryzacja serwera proxy: xxxx" http: // targetURL