'How do I make curl ignore the proxy?
How do I make curl ignore the proxy? Setting $NO_PROXY doesn't seem to work for me.
Solution 1:[1]
If your curl is at least version 7.19.4, you could just use the --noproxy flag.
curl --noproxy '*' http://www.stackoverflow.com
From the manual.
Solution 2:[2]
I ran into the same problem because I set the http_proxy and https_proxy environment variables. But occasionally, I connect to a different network and need to bypass the proxy temporarily. The easiest way to do this (without changing the environment variables) is:
curl --noproxy '*' stackoverflow.com
From the manual: "The only wildcard is a single * character, which matches all hosts, and effectively disables the proxy."
The * character is quoted so that it is not erroneously expanded by the shell.
Solution 3:[3]
This works just fine, set the proxy string to ""
curl -x "" http://www.stackoverflow.com
Solution 4:[4]
Add your proxy preferences into .curlrc or _curlrc (windows)
proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1
This make all dev domains and local machine request ignore the proxy.
See man page proxy and noproxy on same page.
Solution 5:[5]
Long shot but try setting the proxy to "" (empty string) that should override any proxy settings according to the man page.
Solution 6:[6]
You should use $no_proxy env variable (lower-case). Please consult https://wiki.archlinux.org/index.php/proxy_settings for examples.
Also, there was a bug at curl long time ago http://sourceforge.net/p/curl/bugs/185/ , maybe you are using an ancient curl version that includes this bug.
Solution 7:[7]
First, I listed the current proxy setting with
env | sort | less
(should be something like http_proxy=http://wpad.local.machine.location:port number)
Then I tried setting
export http_proxy=";"
which gave this error message:
curl: (5) Couldn't resolve proxy ';'
Tried
export http_proxy="" && curl http://servername:portnumber/destinationpath/ -d 55
and it worked!
PS! Remember to set http-proxy back to its original settings with
export http_proxy=http://wpad.local.machine.location:port number
Solution 8:[8]
I have http_proxy and https_proxy are defined. I don't want to unset and set again those environments but --noproxy '*' works perfectly for me.
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"
}
Solution 9:[9]
In case of windows: use curl --proxy "" ...
Solution 10:[10]
Lame answer but: Remember to make sure no proxy is set in a ~/.curlrc file (...).
Solution 11:[11]
In my case (macos, curl 7.54.0), I have below proxy set with ~/.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
With unknown reason, this version of curl can't work with environment variables NO_PRXY and no_proxy properly, then I unset the proxy environment variables one by one, until to both HTTPS_PROXY and https_proxy.
unset HTTPS_PROXY
unset https_proxy
it starts working and can connect to internal urls
So I would recommend to unset all proxy variables if you have in your environment as temporary solution.
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
Solution 12:[12]
My curl was not ignoring the proxy on Ubuntu 12.04 until I set the "no_proxy" (lowercase) environment variable. The --noproxy option was not available.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
