Frage

Wie kann ich machen curl den Proxy ignorieren? $ NO_PROXY Einstellung scheint nicht für mich zu arbeiten.

War es hilfreich?

Lösung

Ich gehe davon aus curl wird die Proxy-Adresse aus der Umgebungsvariablen http_proxy zu lesen und dass die Variable ihren Wert behalten sollen. Dann in einer Shell wie bash, export http_proxy=''; vor einem Befehl (oder in einem Shell-Skript) würde vorübergehend seinen Wert ändern.

(Siehe curl Anleitung für alle Variablen es aussieht, unter der Überschrift ENVIRONMENT.)

Andere Tipps

Wenn Ihr curl mindestens Version 7.19.4 , könnten Sie einfach die --noproxy Flag verwenden .

curl --noproxy "*" http://www.stackoverflow.com

Aus der Handbuch .

Ich lief in das gleiche Problem, weil ich die http_proxy und https_proxy Umgebungsvariablen. Aber gelegentlich, verbinde ich mit einem anderen Netzwerk und muß den Proxy vorübergehend umgehen. Der einfachste Weg, dies zu tun (ohne die Umgebungsvariablen zu ändern) ist:

curl --noproxy '*' stackoverflow.com

Aus dem Handbuch: "Der einzige Wildcard ist ein einzelnes Zeichen *, das alle Hosts übereinstimmt und effektiv deaktiviert den Proxy"

Das Zeichen * wird so zitiert, dass es nicht irrtümlich von der Shell erweitert wird.

Long Shot, sondern versuchen, den Proxy auf „“ (leere Zeichenkette) Einstellung, die keine Proxy-Einstellungen entsprechend der Manpage außer Kraft setzen sollte.

Als erstes aufgelistet ich die aktuellen Proxy-Einstellung mit

env | sort | less

(sollte wie http_proxy=http://wpad.local.machine.location:port number sein)

Dann habe ich versucht Einstellung

export http_proxy=";" 

, die diese Fehlermeldung gab:

curl: (5) Couldn't resolve proxy ';'

Versuche

export http_proxy="" && curl http://servername:portnumber/destinationpath/ -d 55

und es funktioniert!

PS! Denken Sie daran setzen http-Proxy zurück auf die ursprünglichen Einstellungen mit

export http_proxy=http://wpad.local.machine.location:port number

Ich habe http_proxy und https_proxy definiert. Ich will nicht zu Frisch- und setzen wieder jene Umgebungen und --noproxy '*' funktioniert perfekt für mich.

curl --noproxy '*' -XGET 172.17.0.2:9200
{
  "status" : 200,
  "name" : "Medusa",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.5.0",
    "build_hash" : "544816042d40151d3ce4ba4f95399d7860dc2e92",
    "build_timestamp" : "2015-03-23T14:30:58Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

Das funktioniert ganz gut, stellen Sie den Proxy-Zeichenfolge auf ""

curl -x "" http://www.stackoverflow.com

Sie sollten $no_proxy env Variable (Kleinbuchstaben) verwendet werden. Bitte konsultieren Sie https://wiki.archlinux.org/index.php/proxy_settings Beispiele .

Auch gibt es einen Fehler bei curl schon vor langer Zeit http://sourceforge.net/ p / curl / Bugs / 185 / , vielleicht haben Sie eine alte curl Version verwenden, die diesen Fehler enthält.

Hinzufügen

Ihre Proxy-Einstellungen in .curlrc

proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1

Diese make alle dev Domains und lokale Rechner Anfrage ignorieren den Proxy.

Lame Antwort aber: Denken Sie daran, kein Proxy, um sicherzustellen, in einer ~/.curlrc Datei festgelegt ist (...)

.

In meinem Fall (macos, curl 7.54.0), ich habe unter Proxy-Set mit ~/.bash_profile

$ env |grep -i proxy |cut -d = -f1|sort
FTP_PROXY
HTTPS_PROXY
HTTP_PROXY
NO_PROXY
PROXY
ftp_proxy
http_proxy
https_proxy
no_proxy

Mit unbekanntem Grund, diese Version von curl kann nicht mit Umgebungsvariablen arbeiten NO_PRXY und no_proxy richtig, dann unset ich die Proxy-Umgebungsvariablen eine nach der anderen, bis sowohl HTTPS_PROXY und https_proxy.

unset HTTPS_PROXY
unset https_proxy

es beginnt zu arbeiten und kann auf interne URLs verbinden

So würde ich empfehlen, alle Proxy-Variablen unscharf zu schalten, wenn Sie in Ihrer Umgebung als temporäre Lösung.

unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY

Meine curl ignorieren nicht den Proxy auf Ubuntu 12.04, bis ich das „no_proxy“ (klein geschrieben) Umgebungsvariable gesetzt. Die --noproxy Option nicht zur Verfügung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top