In diesem Beitrag behandeln wir:
- Was ist cURL?
- cURL installieren.
- Was Sie benötigen, um mit der Verwendung von Proxys zu beginnen
- Wie spezifiziert man einen HTTP/HTTPS-Proxy in cURL?
- Wie richtet man SOCKS-Proxys in cURL ein?
- Tipps und Tricks, die Sie kennen sollten
- Welche Proxys eignen sich am besten für cURL?
Was ist cURL?
cURL, kurz für „Client URL“, ist ein Tool zum Senden und Empfangen von Daten über das Internet mithilfe von URLs. Als Softwareprojekt bietet es sowohl eine Bibliothek (libcurl
) als auch ein Befehlszeilentool (cURL
). Hier konzentrieren wir uns auf cURL
, das Befehlszeilentool zum Übertragen von Daten über die URL-Syntax.
Das Projekt unterstützt eine Vielzahl von Protokollen, darunter HTTP, HTTPS, FTP, FTPS, SFTP, POP3, POP3S, IMAP, IMAPS, LDAP, LDAPS, SCP und mehr. Dies macht cURL
zum beliebtesten und am häufigsten verwendeten Befehlszeilen-HTTP-Client der Welt.
cURL ist äußerst vielseitig und stellt eine gängige Lösung für verschiedene Aufgaben dar, z. B. das Stellen von HTTP-Anfragen, das Herunterladen von Dateien, das Hochladen von Daten und die Interaktion mit APIs. Es bietet mehrere Funktionen, von der Anpassung von Anfragen bis hin zur Proxyunterstützung.
cURL
installieren
Lernen wir nun, wie Sie cURL
auf Ihrem Computer installieren.
macOS
Sie müssen cURL
auf macOS nicht installieren. Das Tool ist bereits im Betriebssystem enthalten und Sie können es nativ in der Terminal-Anwendung verwenden.
Windows
Ab Windows 10 enthält Windows eine Kopie von cURL
. Gleichzeitig ist der Befehl curl
ein Alias für den PowerShell-Invoke-WebRequest
-Befehl. Das bedeutet, dass curl
-Befehle im Windows-Terminal im Hintergrund Invoke-Request
aufrufen. Um dies zu vermeiden und tatsächlich curl
von cURL zu verwenden, ersetzen Sie „curl“ durch „curl.exe“. Auf diese Weise führt PowerShell curl aus und nicht Invoke-Request
.
Sie können beispielsweise die aktuelle Version von cURL
überprüfen, die auf Ihrem Windows-Computer im Terminal installiert ist, mit:
curl.exe --version
Die Ausgabe sollte in etwa so aussehen:
curl 8.0.1 (Windows) libcurl/8.0.1 Schannel WinIDN
Release-Date: 2023-03-20
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI threadsafe Unicode UnixSockets
Wenn Sie ein Windows-Benutzer sind, ersetzen Sie alle „curl“-Instanzen in den Befehlen des Artikels durch die Zeichenfolge „curl.exe“. Richten Sie andernfalls das Windows-Subsystem für Linux (WSL) ein und folgen Sie den nachstehenden Anweisungen.
Linux
Unter Linux ändert sich das Verfahren zur Installation von cURL
je nachdem, welche Distribution Sie verwenden. Die gängigen Linux-Distributionen wie Ubuntu und Fedora werden standardmäßig mit diesem Programm geliefert. Sie können also cURL
direkt im Terminal verwenden.
In anderen Distributionen ist cURL
möglicherweise nicht enthalten. In diesem Fall können Sie es mit dem Distributionspaketmanager hinzufügen. Auf einem Debian-basierten Betriebssystem können Sie cURL mit dem folgenden Befehl installieren:
sudo apt-get install curl
Was Sie benötigen, um einen Proxy in cURL
zu verwenden
Ein Proxy fungiert als Vermittler zwischen dem Client und dem Zielserver. Er fängt Anfragen vom Client ab, leitet sie an den Server weiter, empfängt die Antwort des Servers und sendet sie an den Client zurück. Diese Zwischenschaltung erhöht die Anonymität und hilft, Netzbeschränkungen zu vermeiden. So erkennt der Zielserver, dass die Anfragen von der IP und dem Standort des gewählten Proxy-Servers ausgehen und nicht von Ihnen.
Um mit der Verwendung von cURL mit Proxydiensten zu beginnen, benötigen Sie zunächst Zugriff auf einen Proxy. Die Syntax einer Proxy-URL sieht folgendermaßen aus:
[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]
Sie besteht aus folgenden Elementen:
: Das Protokoll, das zur Verbindung mit dem Proxy-Server verwendet wird. Wenn kein Protokoll angegeben ist, verwendet cURL standardmäßig http://.
: Die erforderliche IP-Adresse oder URL des Hostnamens des Proxy-Servers.
: Der Port, auf den der Proxyserver hört. Wenn kein Port angegeben ist, verwendet cURL standardmäßig 1080.
: Der optionale Benutzername, der für die Authentifizierung des Proxy-Servers erforderlich ist.
: Das optionale Passwort, das Sie für die Authentifizierung des Proxy-Servers angeben müssen.
Was die Proxy-Protokolle betrifft, so sind die beliebtesten HTTP und HTTPS, gefolgt von SOCKS.
Es ist an der Zeit, einen gültigen HTTP-Proxy abzurufen!
Auf der Free Proxy List (siehe unten) können Sie einen kostenlosen Proxy erhalten:
IP Address: 71.19.249.97; Port: 8443
Das bedeutet, dass die Proxy-URL wie folgt lautet:
http://71.19.249.97:8443
Die Entscheidung für eine solche Lösung ist für Lernzwecke in Ordnung, aber in einem realen Szenario können Sie sich nicht darauf verlassen. Kostenlose Proxy-Dienste sind unzuverlässig, fehleranfällig, langsam, datenhungrig und kurzlebig. Verwenden Sie diese nicht!
Wie lautet die Lösung? Premium-Proxys von Bright Data, dem besten Anbieter auf dem Markt Abonnieren und testen Sie unsere zuverlässigen Proxys kostenlos.
Denken Sie daran, dass Premium-Lösungen durch Authentifizierung geschützt sind. Angenommen, das Protokoll ist HTTP
, der Host ist 71.103.203.109
, der Port ist 9321
und die beiden Anmeldedaten sind admin-32458
und rTuJ3tEwf
. In diesem Fall würde die cURL-Proxy-URL lauten:
http://admin-32458:@rTuJ3tEwf71.103.203.109:9321
Wie man einen HTTP/HTTPS-Proxy in cURL
spezifiert
Bevor Sie beginnen, starten Sie den folgenden Befehl in Ihrem Terminal:
curl "https://httpbin.org/ip"
Wie Sie sehen können, lautet die grundlegende cURL
-Syntax:
curl [optional_commands] <URL>
Eine bewährte Methode für cURL
empfiehlt, URLs mit doppelten Anführungszeichen zu umgeben, um Probleme mit Sonderzeichen zu vermeiden.
Führen Sie sie aus und Sie sollten etwa folgendes Ergebnis erhalten:
{
"origin": "194.33.243.7"
}
Das HttpBin-Projekt ermöglicht es Ihnen, Informationen über Ihre HTTP-Anfragen zu erhalten. Im Einzelnen gibt der Endpunkt /ip
die Ursprungs-IP der Anfrage zurück, d. h. die IP-Adresse des Computers, der die Anfrage ausgeführt hat. Mit anderen Worten, er gibt deine IP zurück.
Nachdem Sie einen Proxy in cURL
eingerichtet haben, sollten Sie die IP-Adresse des Proxyservers sehen und nicht Ihre.
Es gibt mehrere Möglichkeiten, einen Proxy in cURL
festzulegen. Lassen Sie uns nun zu den gängigsten Ansätzen zur Angabe eines HTTP/HTTPS-Proxys in cURL
übergehen.
Ein Befehlszeilenargument verwenden
cURL bietet zwei Befehlszeilenargumente zum Festlegen einer Proxy-URL:
-x
--proxy
Die beiden können synonym verwendet werden, da sie genau dasselbe tun. Letzteres ist nur ein Alias für Ersteres.
Die Syntax zur Verwendung von cURL
mit Proxydiensten lautet also:
curl -x [<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>] <URL>
Oder:
curl --proxy [<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>] <URL>
Hinweis: Bei Befehlszeilenoptionen wird in cURL
zwischen Groß- und Kleinschreibung unterschieden. Beispielsweise haben -x
und -X
zwei verschiedene Bedeutungen.
Starten Sie jetzt:
curl -x "http://71.19.249.97:8443" "https://httpbin.org/ip"
Oder das Äquivalent:\
curl --proxy "http://71.19.249.97:8443" "https://httpbin.org/ip"
Sie sollten dann Folgendes erhalten:
{
"origin": "71.19.249.97"
}
Der Ursprung entspricht der IP des Proxyservers. Das bedeutet, dass die Zielsite die Anfrage wie gewünscht als vom Proxy kommend ansieht. Großartig!
Vergessen Sie nicht, dass kostenlose Proxys nur von kurzer Dauer sind. Es ist also unwahrscheinlich, dass der oben genannte Server noch aktiv ist, wenn Sie diesen Artikel lesen. Falls ein Fehler auftritt, ersetzen Sie diesen durch einen neuen Proxy.
Verwendung von Umgebungsvariablen
Eine andere Möglichkeit, einen Proxy in cURL
zu verwenden, besteht darin, die folgenden beiden Umgebungsvariablen zu setzen:
http_proxy
: Die URL des Proxyservers, der für den Zugriff auf URLs mit dem HTTP-Protokoll verwendet wird.https_proxy
: Die URL des Proxyservers, der für den Zugriff auf URLs mit dem HTTP-Protokoll verwendet wird.
Unter macOS und Linux können Sie diese beiden Umgebungen mit der folgenden Syntax einrichten:
export http_proxy="[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"
export https_proxy="[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"
Die beiden Befehle lauten also:
export http_proxy="http://71.19.249.97:8443"
export https_proxy="http://71.19.249.97:8443"
Unter Windows müssen Sie diese PowerShell-Syntax verwenden:
$env:http_proxy = "[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"
$env:https_proxy = "[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"
Dann, in unserem Beispiel:
$env:http_proxy = "http://71.19.249.97:8443"
$env:https_proxy = "http://71.19.249.97:8443"
Von nun an wird jeder cURL
-Befehl über die angegebenen Proxies laufen, ohne dass die Option -x verwendet werden muss:
Auch hier wird Folgendes zurückgegeben:
curl https://httpbin.org/ip
{
"origin": "71.19.249.97"
}
Um die cURL
-Proxys zu deaktivieren, deaktivieren Sie die Umgebungsvariablen mit:
unset http_proxy
unset https_proxy
Oder unter Windows:
$env:http_proxy = ""
$env:https_proxy = ""
cURL
wird zu seinem Standardverhalten zurückkehren und https://httpbin.org/ip
wird nun Ihre IP zurückgeben.
Eine Konfigurationsdatei verwenden
Sie können global einen Proxy für cURL
angeben, indem Sie eine .curlrc
-Konfigurationsdatei erstellen.
Öffnen Sie unter Linux und macOS das Terminal und navigieren Sie zu Ihrem Home-Verzeichnis:
cd ~
Greifen Sie dann mit nano auf die .curlrc zu:
nano .curlrc
Falls die Datei bereits existiert, wird sie geöffnet. Andernfalls wird sie zuerst erstellt und dann geöffnet.
Fügen Sie der Datei .curlrc
die folgende Zeile hinzu:
proxy="http://71.19.249.97:8443"
Die Syntax dieser Anweisung lautet:
proxy="[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]"
Speichern Sie die Datei, schließen Sie das Terminal und starten Sie sie erneut.
Unter Windows müssen Sie eine _curlrc
-Datei im Verzeichnis %APPDATA%
mit demselben Inhalt erstellen. Fügen Sie %APPDATA%
in die Adressleiste des Datei-Explorers ein und drücken Sie die EINGABETASTE, um auf das Verzeichnis zuzugreifen.
Das sollte Sie zu C:\Users\\
bringen.
Nun verwendet cURL
automatisch den in der Konfigurationsdatei angegebenen Proxy:
curl "http://httpbin.org/ip"
Sie erhalten:
{
"origin": "71.19.249.97"
}
Fantastisch! Sie haben gerade gelernt, cURL
mit Proxyservern auf drei verschiedene Arten zu verwenden!
Wie man SOCKS-Proxies in cURL einrichtet
Wenn Sie einen SoCKS-Proxy verwenden möchten, bleibt die Befehlsstruktur dieselbe:
curl -x [<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>] <URL>
Der Hauptunterschied besteht darin, dass Socken4
, Socken4a
, Socken5
oder Socken5h
sein wird, statt http
und https
.
Ein vollständiges Beispiel für einen cURL
-SOCKS-Proxy in Aktion ist:
curl -x "socks5://94.14.109.54:2478" "http://httpbin.org/ip"
Wie zu erwarten, wird das Ergebnis lauten:
{
"origin": "94.14.109.54"
}
Ein alternativer Ansatz beinhaltet die Befehlszeilenoptionen --socks4
, --socks4a
, --socks5
anstelle von -x. In diesem Fall müssen Sie die Proxy-URL ohne Benutzername und Passwort nach der Option und dann die Anmeldeinformationen nach --proxy-user
angeben:
curl --socks4|--socks4a|--socks5 <HOST>[:<PORT>] <URL> --proxy-user <USERNAME>:<PASSWORD>
Zum Beispiel:
curl --socks4 "93.16.238.41:8721" "http://httpbin.org/ip" --proxy-user admin334:kv4NsDgc3
Dadurch wird über den 93.16.238. 41:8721
socks4
-Proxy eine Verbindung zu HTTPBin hergestellt, wobei admin334
als Benutzername und kv4nsDGC3
als Passwort für die Authentifizierung verwendet werden.
Tipps und Tricks, die Sie kennen sollten
In diesem Abschnitt erfahren Sie einige interessante Tricks und wertvolle Tipps für den professionellen Umgang mit einem cURL
-Proxy.
Schnelles Ein- und Ausschalten von Proxys
Die Idee hier ist, Aliase für das programmatische Setzen und Deaktivieren von Proxys über Umgebungsvariablen mit benutzerdefinierten Befehlen zu definieren.
Unter macOS und Linux können Sie das tun, indem Sie eine .bashrc
-Datei erstellen. Dies ist eine Skriptdatei, die jedes Mal ausgeführt wird, wenn sich der Benutzer anmeldet.
Gehen Sie zu Ihrem Home-Ordner:
cd ~
Erstellen oder öffnen Sie dann eine .bashrc-Datei:
nano .bashrc
Fügen Sie den Inhalt im folgenden Format zur Datei hinzu:
alias proxyon="export http_proxy='[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]';export https_proxy='[<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>]'"
alias proxyoff="unset http_proxy;unset https_proxy"
In unserem Beispiel wäre es also:
alias proxyon="export http_proxy='http://71.19.249.97:8443';export https_proxy='http://71.19.249.97:8443'"
alias proxyoff="unset http_proxy;unset https_proxy"
Speichern Sie die Datei und starten Sie Ihren Computer neu.
Jetzt können Sie einen cURL
-Proxy aktivieren und deaktivieren mit:
proxyon
curl "http://httpbin.org/ip"
# other HTTP requests...
proxyoff
Beachten Sie die benutzerdefinierten Befehle proxyon
und proxyoff
. Diese führen die durch die Aliase in der Datei .bashrc
angegebenen Operationen aus.
Unter Windows können Sie mit den PowerShell-Aliasen etwas Ähnliches erreichen.
Proxys für eine einzelne Anfrage ignorieren
Wenn Sie verhindern möchten, dass cURL
einen konfigurierten Proxy für eine bestimmte Anfrage verwendet, können Sie das Argument --noproxy „*
” wie folgt verwenden:
curl --noproxy "*" <URL>
Dies weist cURL
an, keine Proxys für alle URLs zu verwenden.
Richten Sie einen Proxy ein und führen Sie aus:
curl --noproxy "*" "https://httpbin.org/ip"
Der daraus entstehende Ursprung enthält Ihre IP und nicht die des Proxy-Servers.
SSL-Zertifikatsfehler vermeiden
Bei der Verwendung von Proxies in cURL
können Ihre Anfragen aufgrund eines SSL-Zertifikatsfehlers fehlschlagen. Um dies zu vermeiden, verwenden Sie die Option -k
wie in der folgenden Syntax:
curl -x [<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>] -k <URL>
-k
hilft Ihnen, Zertifikatsfehler zu vermeiden, indem unsichere Serververbindungen über SSL zugelassen werden.
Zum Beispiel können Sie HTTPBin unter Umgehung von SSL-Problemen wie folgt aufrufen:
curl -x "http://71.19.249.97:8443" -k "https://httpbin.org/ip"
Weitere Informationen zur Anfrage erhalten
Wenn eine Anfrage in cURL
fehlschlägt, ist es nicht leicht zu verstehen, was passiert ist. Um den Fehler zu diagnostizieren und alle von cURL
ausgeführten Operationen zu sehen, legen Sie die Option -v fest:
curl -x [<PROTOCOL>://][<USERNAME>:<PASSWORD>]@<HOST>[:<PORT>] -v <URL>
Dadurch werden die Details zu den hergestellten Verbindungen und den vom Tool verwendeten Headern ausgegeben:
$curl -x "http://71.19.249.97:8443" -v "https://httpbin.org/ip"
* Trying 71.19.249.97:8443...
* Connected to 71.19.249.97 (71.19.249.97) port 8443 (#0)
* allocate connect buffer
* Establish HTTP proxy tunnel to httpbin.org:443
> CONNECT httpbin.org:443 HTTP/1.1
> Host: httpbin.org:443
> User-Agent: curl/8.0.1
> Proxy-Connection: Keep-Alive
>
< HTTP/1.0 200 OK
<
* CONNECT phase completed
* CONNECT tunnel established, response 200
* schannel: disabled automatic use of client certificate
* ALPN: offers http/1.1
* ALPN: server accepted http/1.1
* using HTTP/1.1
> GET /ip HTTP/1.1
> Host: httpbin.org
> User-Agent: curl/8.0.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Sat, 26 Aug 2023 10:39:13 GMT
< Content-Type: application/json
< Content-Length: 31
< Connection: keep-alive
< Server: gunicorn/19.9.0
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
<
{
"origin": "71.19.249.97"
}
* Connection #0 to host 71.19.249.97 left intact
Welche Proxys eignen sich am besten für cURL
?
Die Antwort auf diese Frage hängt von Ihrem Anwendungsfall und der Art der cURL
-Anfragen ab, die Sie stellen müssen. Um die richtige Lösung für Ihre Bedürfnisse zu finden, sollten Sie einen Blick auf die verschiedenen Arten von Proxys werfen:
- Rechenzentrum-Proxys: Sie sind schnell, können aber von Websites aufgrund ihrer identifizierbaren IP-Bereiche leicht entdeckt und blockiert werden.
- Residential-Proxys: Sie garantieren ein hohes Maß an Anonymität, da sie IP-Adressen anbieten, die von echten Geräten an bestimmten Orten stammen. Residential-Proxys eignen sich hervorragend für den Zugriff auf Websites, die mit geografischen Beschränkungen oder Anti-Bot-Maßnahmen belegt sind, sowie für die Durchführung von Web-Scraping mit cURL.
- ISP-Proxys: Sie sind schnell, sicher und äußerst zuverlässig, da sie IPs von Geräten bereitstellen, die bei ISPs registriert sind. ISP-Proxys stellen eine perfekte Lösung für SEO-Überwachung, Web-Browsing und Marktforschung dar.
- Mobile Proxys: Sie bieten IPs von echten mobilen Geräten für ein hohes Maß an Anonymität. Sie sind nützlich für den Zugriff auf mobilspezifische Anwendungen, Websites oder Inhalte.
Dies war nur eine kurze Zusammenfassung, aber Sie können mehr in unserem Leitfaden über Proxy-IP-Typen erfahren.
Fazit
In diesem cURL-Proxy-Leitfaden haben Sie gelernt, was cURL
ist, was es zu bieten hat und wie Sie einen HTTP/HTTPS/SOCKS-Proxy einrichten. Es hat sich herausgestellt, dass man sich bei Proxy-Diensten von kostenlosen Anbietern nicht auf cURL verlassen kann. Daher ist die wichtigste technische Entscheidung, welcher Proxyanbieter verwendet werden soll. Sparen Sie Zeit und Energie und entscheiden Sie sich für den besten Anbieter auf dem Markt, Bright Data.
Bright Data betreibt die weltweit besten Proxy-Server und betreut Fortune-500-Unternehmen sowie mehr als 20.000 Kunden.
- Rechenzentrum-Proxys – über 770.000 Rechenzentrum-IPs.
- Residetial-Proxys – über 72 Millionen Residential-IPs in mehr als 195 Ländern.
- ISP-Proxys – über 700.000 ISP-IPs.
- Mobile Proxys – über 7 Millionen mobile IPs.
Zusammengefasst handelt es sich um eines der größten und zuverlässigsten auf Scraping ausgerichteten Proxynetzwerke auf dem Markt. Treten Sie dem größten Proxy-Netzwerk bei und erhalten Sie eine kostenlose Testversion.
Keine Kreditkarte erforderlich