Ich habe diese Proxy-Adresse: 125.119.175.48:8909
Wie kann ich eine HTTP-Anfrage mit cURL wie ausführen curl http://www.example.com
, aber die Proxy-Adresse meines Netzwerks angeben ?
Ich habe diese Proxy-Adresse: 125.119.175.48:8909
Wie kann ich eine HTTP-Anfrage mit cURL wie ausführen curl http://www.example.com
, aber die Proxy-Adresse meines Netzwerks angeben ?
Antworten:
Allgemeiner Weg:
export http_proxy=http://your.proxy.server:port/
Dann können Sie über einen Proxy von (vielen) Anwendungen aus eine Verbindung herstellen.
Und laut Kommentar unten für https:
export https_proxy=https://your.proxy.server:port/
Von 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
Die oben genannten Lösungen funktionieren möglicherweise nicht mit einigen Curl-Versionen, die ich selbst ausprobiert habe (Curl 7.22.0). Aber was für mich funktioniert hat war:
curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url
Hoffe, es löst das Problem besser!
[1] 4812
Beachten Sie, dass Sie bei Verwendung eines SOCKS-Proxys anstelle eines HTTP / HTTPS-Proxys --socks5
stattdessen den Switch verwenden müssen:
curl --socks5 125.119.175.48:8909 http://example.com/
Sie können DNS auch --socks5-hostname
anstelle von --socks5
auf der Proxy-Seite auflösen.
--socks5-hostname
.
curl https://api.ipify.org --proxy socks5://189.100.246.182:37339
scheint für mich gut zu funktionieren. Ist die --proxy
Option der --socks5
Verwendung von socks5-Proxys in irgendeiner Weise unterlegen ?
--proxy
ist wahrscheinlich das, was Sie jetzt wollen, aber es wurde nicht immer unterstützt. Beachten Sie auch, dass socks5://
und socks5h://
führen Sie die DNS-Auflösung (Hostname) vor und nach dem Herstellen einer Verbindung zum Proxy durch.
Als Ergänzung zu Airween ist es eine weitere gute Idee, dies in Ihre .bashrc-Datei aufzunehmen, damit Sie von einer Umgebung ohne Proxy zu einer Umgebung mit Proxy wechseln können:
alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"
WO IHR PROXY: IHR PORT ist genau das, Ihr IP- und Port-Proxy :-).
Dann einfach machen
proxyon
Ihr System beginnt mit der Verwendung des Proxys und genau umgekehrt mit:
proxyoff
Verwenden Sie Folgendes
curl -I -x 192.168.X.X:XX http://google.com
192.168.X.X:XX
Legen Sie die IP-Adresse und den Port Ihres Proxyservers fest.
-v
Im ausführlichen Modus werden weitere Details einschließlich Überschriften und Antworten angezeigt.
Sie können verwenden:
curl http://www.example.com --proxy http://125.119.175.48:8909
wie von Karl erklärt
Da curl
Sie den Proxy in Ihrer ~/.curlrc
( _curlrc
unter Windows) Datei konfigurieren können, indem Sie einen proxy
Wert hinzufügen , lautet die Syntax:
proxy = http://username:password@proxy-host:port
Fassen Sie einfach alle großen erwähnten Antworten zusammen:
curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>
Mit einem Proxy mit Authentifizierung verwende ich:
curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>
weil ich nicht weiß, warum curl keine http [s] _proxy- Umgebungsvariablen verwendet / fängt .
C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080
Sie müssen die http[s]_proxy
Shell-Variable nicht exportieren , wenn Sie nur den Proxy für einen einmaligen Befehl festlegen. z.B
http_proxy=http://your.proxy.server:port curl http://www.example.com
Das heißt, ich würde es vorziehen, curl -x
wenn ich wüsste, dass ich immer einen Proxy verwenden würde.
Abhängig von Ihrem Arbeitsplatz müssen Sie möglicherweise auch -k
die --insecure
Option oder die Option für das Einrollen angeben , um potenzielle Probleme mit CA-Zertifikaten zu vermeiden.
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
Das hat bei mir perfekt funktioniert, der Fehler kommt, weil Curl den Proxy einstellen muss
Denken Sie daran, den Proxy durch Ihren Proxy zu ersetzen. Mein Beispiel war http://10.1.1.50:8080/ .
Falls der Proxy einen automatischen Proxy mit PAC-Datei verwendet. Den tatsächlichen Proxy finden Sie im Javascript unter der PAC-URL.
Und wenn der Proxy eine Authentifizierung benötigt, können wir zuerst einen normalen Webbrowser verwenden, um auf die Website zuzugreifen, die den Authentifizierungsdialog fördert. Nach der Authentifizierung können wir Wireshark verwenden, um die an den Proxyserver gesendeten http-Pakete zu erfassen. Aus dem http-Paket können wir das Authentifizierungstoken aus dem http-Header abrufen : Proxy-Authorization
Dann können wir die Umgebungsvariable http_proxy festlegen und auch das Authentifizierungstoken in den http-Header aufnehmen: Proxy-Authorization
export http_proxy = http: // proxyserver: port
curl -H "Proxy-Autorisierung: xxxx" http: // targetURL