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?
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.
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
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
dans Windows, l'option suivante a fonctionné pour moi pour me connecter à localhost.
curl --proxy "" --http://127.0.0.1:8983
Curl s'attend à ce que le port soit spécifié avec proxy cette solution a fonctionné pour moi
export http_proxy = "http://myproxy:80"
--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.