![Curl: So senden Sie benutzerdefinierte Header bei Verwendung eines Proxys](https://rvso.com/image/1457457/Curl%3A%20So%20senden%20Sie%20benutzerdefinierte%20Header%20bei%20Verwendung%20eines%20Proxys.png)
Ich möchte beim Verwenden von Proxys benutzerdefinierte Header an den Host senden. Sehen Sie sich die folgenden Beispiele an. Die Situation anhand von Beispielen zu erklären, war einfacher.
Dies funktioniert wie erwartet einwandfrei:
curl https://www.cloudflare.com/
Wenn ich die Verwendung von DNS vermeide, indem ich curl die IP-Adresse des Hosts übergebe:
curl http://198.41.214.163/
Die Website zeigt mir diese Fehlerseite an -->
"Direkter IP-Zugriff nicht erlaubt.Sie haben eine IP-Adresse angefordert, die Teil des CloudFlare-Netzwerks ist.Es muss ein gültiger Host-Header angegeben werden um zur gewünschten Website zu gelangen."
Wenn wir den richtigen Host-Header-Namen angeben, funktioniert es wieder normal, ohne DNS zu verwenden:
curl --header "Host: cloudflare.com" http://198.41.214.163/
Aber wenn ich das Gleiche mache, während ich einen Proxy-Tunnel verwende, sendet curl die Header nicht an den Host, also bekomme ich "Direkter IP-Zugriff nicht erlaubt" Fehler vom Host:
curl --proxy "http://PROXY_IP:PORT" --header "Host: cloudflare.com" http://198.41.214.163/
Wie kann ich dieses Problem lösen?
Antwort1
Dieses Problem sollte mit cURL 7.37.0 behoben sein, da in diesem Abschnitt der --proxy-header
Parameter zur Angabe von Headern eingeführt wurde, die für den Proxyserver bestimmt sind. Mit -H
/ angegebene Header --header
werden jetzt als „nur Endserver“ angesehen.