Question

Comment faire en sorte que curl ignore le proxy? La définition de $ NO_PROXY ne semble pas fonctionner pour moi.

Était-ce utile?

La solution

Je suppose que curl lit l'adresse proxy à partir de la variable d'environnement http_proxy et que la 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 .)

Autres conseils

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

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

Extrait du manuel .

J'ai rencontré le même problème car j'ai défini les variables d'environnement http_proxy et https_proxy. Mais parfois, je me connecte à un autre réseau et dois contourner temporairement le proxy. Le moyen le plus simple de procéder (sans modifier les variables d’environnement) est:

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 manière à ne pas être développé par erreur par le shell.

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

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

env | sort | less

(devrait ressembler à http_proxy = http: //wpad.local.machine.location: numéro de port )

Ensuite, j'ai essayé de définir

export http_proxy=";" 

qui a donné ce message d'erreur:

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

Essayé

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

et cela 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

J'ai http_proxy et https_proxy définis. Je ne veux pas supprimer 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"
}

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

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

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

De plus, il y a bien longtemps un bogue à propos de Curl http://sourceforge.net/ p / curl / bugs / 185 / , vous utilisez peut-être une ancienne version de curl qui inclut ce bogue.

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

proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1

Ceci fait que tous les domaines du dev et les requêtes de la machine locale ignorent le proxy.

Même réponse mais: n'oubliez pas de vous assurer qu'aucun proxy n'est défini dans un fichier ~ / .curlrc (...).

Dans mon cas (macos, curl 7.54.0 ), j'ai défini ci-dessous un proxy 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 , puis je désactive l'environnement de proxy. variables une par une, jusqu’à HTTPS_PROXY et https_proxy .

unset HTTPS_PROXY
unset https_proxy

il commence à fonctionner et peut se connecter aux URL internes

Je vous conseillerais donc de supprimer toutes les variables proxy si votre environnement contient une solution temporaire.

unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY

Mon curl n'ignorait pas le proxy sur Ubuntu 12.04 jusqu'à ce que je définisse le paramètre "no_proxy". variable d'environnement (minuscule). L'option --noproxy n'était pas disponible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top