Solución
Supongo que curl está leyendo la dirección proxy de la variable de entorno http_proxy
y que la variable debe mantener su valor. Luego, en un shell como bash, export http_proxy = '';
antes de que un comando (o en un script de shell) cambie temporalmente su valor.
(Consulte el manual de curl para todas las variables que observa, bajo el encabezado ENVIRONMENT
)
Otros consejos
Me encontré con el mismo problema porque configuré las variables de entorno http_proxy y https_proxy. Pero ocasionalmente, me conecto a una red diferente y necesito pasar por alto el proxy temporalmente. La forma más sencilla de hacerlo (sin cambiar las variables de entorno) es:
curl --noproxy '*' stackoverflow.com
En el manual: " El único carácter comodín es un solo * carácter, que coincide con todos los hosts y desactiva el proxy de forma efectiva. "
El carácter * se cita para que el shell no lo expanda erróneamente.
Plano general, pero intenta configurar el proxy en " " (cadena vacía) que debería reemplazar cualquier configuración de proxy de acuerdo con la página del manual.
Primero, enumeré la configuración de proxy actual con
env | sort | less
(debería ser algo como http_proxy = http: //wpad.local.machine.location: número de puerto
)
Luego traté de configurar
export http_proxy=";"
que dio este mensaje de error:
curl: (5) Couldn't resolve proxy ';'
Intentado
export http_proxy="" && curl http://servername:portnumber/destinationpath/ -d 55
y funcionó!
PS! Recuerde que debe volver a establecer la configuración original de http-proxy con
export http_proxy=http://wpad.local.machine.location:port number
Tengo http_proxy
y https_proxy
están definidos. No quiero volver a configurar y configurar esos entornos pero --noproxy '*'
funciona perfectamente para mí.
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"
}
Esto funciona bien, establece la cadena de proxy en " "
curl -x "" http://www.stackoverflow.com
Debería usar la variable env $ no_proxy
(en minúsculas). Consulte https://wiki.archlinux.org/index.php/proxy_settings para obtener ejemplos. .
También, hubo un error en el rizo hace mucho tiempo http://sourceforge.net/ p / curl / bugs / 185 / , quizás estés usando una versión antigua de rizo que incluye este error.
Agregue sus preferencias de proxy en .curlrc
proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1
Esto hace que todos los dominios de desarrollo y la solicitud de la máquina local ignoren el proxy.
Lame response pero: recuerde asegurarse de que no haya ningún proxy configurado en un archivo ~ / .curlrc
(...).
En mi caso (macos, curl 7.54.0
), tengo debajo el conjunto de 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
Por razones desconocidas, esta versión de curl
no funciona con las variables de entorno NO_PRXY
y no_proxy
correctamente, luego desactivo el entorno proxy las variables una por una, hasta tanto a HTTPS_PROXY
y https_proxy
.
unset HTTPS_PROXY
unset https_proxy
comienza a funcionar y puede conectarse a las URL internas
Por lo tanto, recomendaría desactivar todas las variables proxy si tiene una solución temporal en su entorno.
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
Mi rizo no ignoraba el proxy en Ubuntu 12.04 hasta que configuré el " no_proxy " Variable de entorno (en minúsculas). La opción --noproxy no estaba disponible.