web-dev-qa-db-fra.com

Comment faire pour que curl ignore le proxy?

Comment faire en sorte que curl ignore le proxy? Définir $ NO_PROXY ne semble pas fonctionner pour moi.

75
ksuralta

Je suppose que curl lit l'adresse proxy à partir de la variable d'environnement http_proxy et que cette variable doit conserver sa valeur. Ensuite, dans un Shell tel que bash, export http_proxy=''; avant une commande (ou dans un script Shell) changerait temporairement sa valeur.

(Voir le manuel de curl pour toutes les variables examinées, sous l'en-tête ENVIRONMENT.)

39
Anonymous

Si votre curl est au moins la version 7.19.4 , vous pouvez simplement utiliser le drapeau --noproxy.

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

De la manuel .

156
Scott Offen

J'ai rencontré le même problème parce que je définissais les variables d'environnement http_proxy et https_proxy. Mais parfois, je me connecte à un autre réseau et dois contourner temporairement le proxy. La manière la plus simple de procéder (sans changer les variables d'environnement) est la suivante:

curl --noproxy '*' stackoverflow.com

Extrait du manuel: "Le seul caractère générique est un seul caractère *, qui correspond à tous les hôtes et désactive effectivement le proxy."

Le caractère * est cité de sorte qu'il ne soit pas développé par erreur par le shell.

56
wisbucky

Long shot mais essayez de définir le proxy sur "" (chaîne vide) qui doit remplacer tous les paramètres de proxy en fonction de la page de manuel.

6
Louis

Tout d’abord, j’ai énuméré le paramètre de proxy actuel avec 

env | sort | less

(devrait être quelque chose comme http_proxy=http://wpad.local.machine.location:port number)

Puis j'ai essayé de mettre

export http_proxy=";" 

qui a donné ce message d'erreur:

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

A tenté 

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

et ça a fonctionné! 

PS! N'oubliez pas de rétablir les paramètres d'origine du proxy http avec

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

J'ai http_proxy et https_proxy sont définis. Je ne veux pas effacer et redéfinir ces environnements mais --noproxy '*' fonctionne parfaitement pour moi.

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

Vous devez utiliser la variable $no_proxy env (minuscule). Veuillez consulter https://wiki.archlinux.org/index.php/proxy_settings pour des exemples.

En outre, il y a longtemps un bogue chez curl http://sourceforge.net/p/curl/bugs/185/ , vous utilisez peut-être une ancienne version de curl qui inclut ce bogue.

4
Dmitriusan

Ajoutez vos préférences de proxy dans .curlrc

proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1

Cela fait que tous les domaines de développement et les requêtes de la machine locale ignorent le proxy.

4
Clemens Tolboom

Cela fonctionne très bien, définissez la chaîne de proxy sur ""

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

Dans mon cas (macos, curl 7.54.0), j'ai ci-dessous un proxy configuré avec ~/.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

Pour des raisons inconnues, cette version de curl ne peut pas fonctionner correctement avec les variables d’environnement NO_PRXY et no_proxy. Je désactive ensuite les variables d’environnement proxy une par une, jusqu’à ce que vous ayez HTTPS_PROXY et https_proxy.

unset HTTPS_PROXY
unset https_proxy

il commence à fonctionner et peut se connecter aux URL internes

Je recommanderais donc de supprimer toutes les variables proxy si votre environnement est une solution temporaire.

unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
0
BMW

Répondez mal mais: n'oubliez pas de vous assurer qu'aucun proxy n'est défini dans un fichier ~/.curlrc (...).

0
jtlz2