Domanda

Come posso fare in modo che l'arricciatura ignori il proxy? L'impostazione di $ NO_PROXY non sembra funzionare per me.

È stato utile?

Soluzione

Suppongo che curl stia leggendo l'indirizzo proxy dalla variabile di ambiente http_proxy e che la variabile dovrebbe mantenere il suo valore. Quindi in una shell come bash, export http_proxy = ''; prima che un comando (o in uno script di shell) cambierebbe temporaneamente il suo valore.

(Vedi il manuale di curl per tutte le variabili che osserva, sotto l'intestazione ENVIRONMENT .)

Altri suggerimenti

Se il tuo curl è almeno la versione 7.19.4 , puoi semplicemente usare il flag --noproxy .

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

Dal manuale .

Ho riscontrato lo stesso problema perché ho impostato le variabili di ambiente http_proxy e https_proxy. Ma di tanto in tanto, mi collego a una rete diversa e devo bypassare temporaneamente il proxy. Il modo più semplice per farlo (senza cambiare le variabili di ambiente) è:

curl --noproxy '*' stackoverflow.com

Dal manuale: " L'unico carattere jolly è un singolo carattere *, che corrisponde a tutti gli host e disabilita efficacemente il proxy. "

Il carattere * viene citato in modo che non venga erroneamente espanso dalla shell.

Scatto lungo ma prova a impostare il proxy su " " (stringa vuota) che dovrebbe sovrascrivere qualsiasi impostazione proxy in base alla pagina man.

Innanzitutto, ho elencato le impostazioni proxy correnti con

env | sort | less

(dovrebbe essere qualcosa come http_proxy = http: //wpad.local.machine.location: numero porta )

Quindi ho provato a impostare

export http_proxy=";" 

che ha dato questo messaggio di errore:

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

Provato

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

e ha funzionato!

PS! Ricorda di riportare http-proxy alle sue impostazioni originali con

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

Ho http_proxy e https_proxy sono definiti. Non voglio disinserire e reimpostare quegli ambienti ma --noproxy '*' funziona perfettamente per me.

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"
}

Funziona bene, imposta la stringa proxy su " "

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

Dovresti usare la variabile env $ no_proxy (minuscola). Consultare https://wiki.archlinux.org/index.php/proxy_settings per esempi .

Inoltre, molto tempo fa si è verificato un bug nell'arricciatura http://sourceforge.net/ p / curl / bugs / 185 / , forse stai usando un'antica versione a ricciolo che include questo bug.

Aggiungi le tue preferenze proxy in .curlrc

proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1

In questo modo tutti i domini di sviluppo e le richieste di macchine locali ignorano il proxy.

Risposta scadente ma: ricordarsi di assicurarsi che non sia impostato alcun proxy in un file ~ / .curlrc (...).

Nel mio caso (macos, curl 7.54.0 ), ho impostato sotto il proxy con ~/.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

Con motivo sconosciuto, questa versione di curl non può funzionare correttamente con le variabili di ambiente NO_PRXY e no_proxy , quindi disattivo l'ambiente proxy variabili una per una, fino a HTTPS_PROXY e https_proxy .

unset HTTPS_PROXY
unset https_proxy

inizia a funzionare e può connettersi agli URL interni

Quindi consiglierei di annullare l'impostazione di tutte le variabili proxy se si dispone nel proprio ambiente come soluzione temporanea.

unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY

Il mio ricciolo non ignorava il proxy su Ubuntu 12.04 fino a quando non ho impostato il "no_proxy" (minuscola) variabile d'ambiente. L'opzione --noproxy non era disponibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top