Curl: ignorer proxy pour localhost

je suis en vertu d'une procuration, et si j'essaie curl http://localhost/mysite ou curl http://127.0.0.1/mysite curl essayer de le résoudre avec le proxy. J'ai donc essayé avec --noproxy option, mais ne fonctionne pas. Fonctionne correctement pour les serveurs externes avec le proxy comme curl http://mysite.com.

ma configuration:

  • Cygwin (bash) sous Windows 8 avec extension curl.
  • Proxy: proxy.domain.xx:1080 sans authentification
  • http_proxy=http://proxy.domain.xx:1080
  • serveur Local: xamp version 1.8.0
  • Apache ports: 80,443
  • navigateur: Chrome avec proxy, mais configuré pour accéder à localhost et *.dev

De la boucle --help

--noproxy : liste séparée par des Virgules d'hôtes qui ne pas utiliser de proxy

Ce que j'ai essayé:

  • j'ai désactivé le pare-feu et de rien
  • $ curl -v http://localhost/mysite - > débogage:

    Réponse

    Connected to proxy.domain.xx (200.55.xxx.xx) port 1080 (#0)
    GET http://localhost/mysite HTTP/1.1
    User-Agent: curl/7.21.1 (i686-pc-mingw32) libcurl/7.21.1 OpenSSL/0.9.8r zlib/1.2.3
    Host: localhost
    Accept: */*
    Proxy-Connection: Keep-Alive
    The system returned: <PRE><I>(111) Connection refused</I></PRE>
    
  • curl -v --noproxy localhost, http://localhost/muestra

    Réponse

    About to connect() to localhost port 80 (#0)
    * Trying 127.0.0.1... 
    * Connected to localhost (127.0.0.1) port 80 (#0)
    > GET /mysite HTTP/1.1
    > User-Agent: curl/7.21.1 (i686-pc-mingw32) libcurl/7.21.1 OpenSSL/0.9.8r zlib/1.2.3
    > Host: localhost
    > Accept: */*
    >
    < HTTP/1.1 301 Moved Permanently
    < Server: Apache/2.4.2 (Win32) OpenSSL/1.0.1c PHP/5.4.4
    < Location: http://localhost/mysite
    < Content-Length: 331
    < Content-Type: text/html; charset=iso-8859-1
    

une idée de comment réparer ça?

26
demandé sur Tom Sarduy 2012-11-26 09:55:12

6 réponses

après

curl -v --noproxy localhost, http://localhost/muestra

curl a répondu avec

About to connect() to localhost port 80 (#0)
* Trying 127.0.0.1... 
* Connected to localhost (127.0.0.1) port 80 (#0)

donc il a clairement indiqué qu'il se connectait à localhost.

37
répondu Udo Klein 2013-02-26 20:44:40

utiliser

curl-v --noproxy'*' http://abc.com

pour désactiver complètement le proxy.

ou si vous voulez désactiver le proxy pour seulement abc.com destination

curl-v -- noproxy "abc.com"http://abc.com

où abc.com est l'url que vous voulez aller

6
répondu jigar137 2013-06-06 13:47:40

comme d'autres l'ont dit, le --noproxy options est ce que vous cherchez. https://curl.haxx.se/docs/manpage.html#--noproxy

apparemment, la deuxième requête que vous avez essayé était de recevoir une réponse HTTP 301, donc vous voulez probablement aussi utiliser le -L option pour suivre les redirections: https://curl.haxx.se/docs/manpage.html#-L

vous pouvez utiliser l'alias curl pour toujours ignorer les mandataires de localhost demande.

alias curl='curl --noproxy localhost,127.0.0.1'

ajoutez-le à votre .bashrc fichier pour plus de commodité:

echo "alias curl='curl --noproxy localhost,127.0.0.1'" >> ~/.bashrc

4
répondu borlafu 2016-05-17 07:17:14

dans Windows, l'option suivante a fonctionné pour moi pour me connecter à localhost.

curl --proxy "" --http://127.0.0.1:8983

4
répondu emeralddove 2016-06-08 13:04:58

Curl s'attend à ce que le port soit spécifié avec proxy cette solution a fonctionné pour moi

export http_proxy = "http://myproxy:80"

1
répondu Aftab Naveed 2014-10-09 01:28:35

--noproxy option devrait fonctionner (et fait, comme les réponses précédentes l'ont expliqué) mais je pense que vous devriez attaquer le cœur du problème.

votre mandataire n'ignore pas votre adresse locale, pas seulement curl. Idk si cela fonctionne sur chaque environnement (je suis assez nouveau à linux) mais si vous utilisez gnome cela devrait fonctionner. Tapez 'env / grep proxy' dans un terminal, cela devrait vous donner tous les proxies configurés. Le plus important est "no_proxy'. Pour ajouter une entrée ouverte"~/.bash_profile " avec votre favori éditeur de texte et ajoutez la ligne "no_proxy=$no_proxy," à la fin. Rechargez la configuration avec ' source~/.bash_profile". Si vous voulez que cela affecte chaque utilisateur, changez le fichier '/etc/profile' à la place.

0
répondu PsychoFish 2016-04-15 08:23:54