Curl'nin proxy'yi yok saymasını nasıl sağlayabilirim? $ NO_PROXY ayarı benim için işe yaramıyor gibi görünüyor.
Curl'nin proxy'yi yok saymasını nasıl sağlayabilirim? $ NO_PROXY ayarı benim için işe yaramıyor gibi görünüyor.
Yanıtlar:
Curl'nin ortam değişkeninden proxy adresini okuduğunu http_proxy
ve değişkenin değerini koruması gerektiğini varsayıyorum . Sonra bash gibi bir kabukta, export http_proxy='';
bir komuttan önce (veya bir kabuk betiğinde) değerini geçici olarak değiştirir.
(Baktığı tüm değişkenler için ENVIRONMENT
başlığın altındaki curl kılavuzuna bakın .)
unset http_proxy
ftp_proxy
. Sanırım işte tam bir liste wiki.archlinux.org/index.php/proxy_settings .
Eğer senin curl
en azından sürümüdür 7.19.4
, sadece kullanabilirsiniz --noproxy
bayrağı.
curl --noproxy "*" http://www.stackoverflow.com
Gönderen kılavuzu .
--noproxy
seçeneğin daha eski curl sürümleri için mevcut olmadığını varsayıyorum (örneğin, Centos / RHEL
--noproxy 127.0.0.1
, stackoverflow.com'un localhost'ta çalışıyor olmasıydı.
Aynı problemle karşılaştım çünkü http_proxy ve https_proxy ortam değişkenlerini ayarladım. Ancak bazen farklı bir ağa bağlanıyorum ve proxy'yi geçici olarak atlamam gerekiyor. Bunu yapmanın en kolay yolu (ortam değişkenlerini değiştirmeden):
curl --noproxy '*' stackoverflow.com
Kılavuzdan: "Tek joker karakter, tüm ana bilgisayarlarla eşleşen ve proxy'yi etkin bir şekilde devre dışı bırakan tek bir * karakterdir."
* Karakteri, kabuk tarafından yanlışlıkla genişletilmemesi için tırnak içine alınmıştır.
curl --noproxy "*" stackoverflow.com
Bu gayet iyi çalışıyor, proxy dizesini "" olarak ayarlayın
curl -x "" http://www.stackoverflow.com
Proxy tercihlerinizi .curlrc içine ekleyin
proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1
Bu, tüm dev etki alanlarını ve yerel makine isteğini proxy'yi yok sayar.
.
.
Uzun çekim, ancak proxy'yi "" (boş dize) olarak ayarlamayı deneyin; bu, kılavuz sayfasına göre tüm proxy ayarlarını geçersiz kılmalıdır.
Sen kullanmalıdır $no_proxy
env değişkeni (küçük harfle). Örnekler için lütfen https://wiki.archlinux.org/index.php/proxy_settings adresine bakın .
Ayrıca, curl'de uzun zaman önce bir hata vardı http://sourceforge.net/p/curl/bugs/185/ , belki de bu hatayı içeren eski bir curl sürümünü kullanıyorsunuzdur.
İlk olarak, mevcut proxy ayarını listeledim
env | sort | less
(gibi bir şey olmalı http_proxy=http://wpad.local.machine.location:port number
)
Sonra ayarlamayı denedim
export http_proxy=";"
Bu hata mesajını veren:
curl: (5) Couldn't resolve proxy ';'
Denenmiş
export http_proxy="" && curl http://servername:portnumber/destinationpath/ -d 55
ve işe yaradı!
PS! Http-proxy'yi orijinal ayarlarına geri getirmeyi unutmayın.
export http_proxy=http://wpad.local.machine.location:port number
Ben var http_proxy
ve https_proxy
tanımlandım. Bu ortamları bozmak ve yeniden ayarlamak istemiyorum ama --noproxy '*'
benim için mükemmel çalışıyor.
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"
}
Yanlış cevap ama: Bir ~/.curlrc
dosyada proxy ayarlanmadığından emin olun (...).
Benim durumumda (macos, curl 7.54.0
), aşağıdaki proxy setim var~/.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
Bilinmeyen bir nedenden ötürü, bu sürümü curl
ortam değişkenleriyle NO_PRXY
ve no_proxy
düzgün çalışamaz, sonra proxy ortam değişkenlerini tek tek, her ikisine de HTTPS_PROXY
ve https_proxy
.
unset HTTPS_PROXY
unset https_proxy
çalışmaya başlar ve dahili url'lere bağlanabilir
Bu nedenle, ortamınızda geçici çözüm olarak varsa, tüm proxy değişkenlerini kaldırmanızı tavsiye ederim.
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
Curl, "no_proxy" (küçük harf) ortam değişkenini ayarlayana kadar Ubuntu 12.04'teki proxy'yi göz ardı etmiyordu. --Noproxy seçeneği mevcut değildi.