मैं कर्ल को प्रॉक्सी को कैसे अनदेखा कर सकता हूं?


106

मैं कर्ल को प्रॉक्सी को कैसे अनदेखा कर सकता हूं? $ NO_PROXY सेट करना मेरे लिए काम नहीं करता है।


1
यदि आप कुछ और जानकारी प्रदान करते हैं तो यह आपको लोगों को जवाब देने में मदद करेगा। आप किस मंच पर हैं? कर्ल को प्रॉक्सी सेटिंग कहां से मिल रही है? क्या प्रोटोकॉल (HTTP, एफ़टीपी)? किस तरह का प्रॉक्सी (HTTP, SOCKS)? क्या यह पारदर्शी छद्म है? क्या आप उन कमांड्स का सटीक सेट दिखा सकते हैं जो आपकी समस्या को प्रदर्शित करते हैं, उनके आउटपुट के साथ?
ब्रायन कैंपबेल

जवाबों:


54

मुझे लगता है कि कर्ल पर्यावरण चर से छद्म पता पढ़ रहा है http_proxyऔर चर को अपना मूल्य रखना चाहिए। फिर बैश जैसे शेल में, export http_proxy='';कमांड से पहले (या शेल स्क्रिप्ट में) अस्थायी रूप से अपना मूल्य बदल देगा।

( ENVIRONMENTशीर्ष के नीचे, इसके सभी चरों के लिए कर्ल का मैनुअल देखें ।)


19
या बसunset http_proxy
joelittlejohn

एक नोट: अन्य * _proxy env वैरिएबल हैं जैसे ftp_proxy। मुझे लगता है, यहाँ एक पूरी सूची wiki.archlinux.org/index.php/proxy_settings है
दिमित्रिअसन

यदि आप केस-दर-मामला आधार पर http_proxy को ओवरराइड नहीं करना चाहते हैं, तो आप डोमेन को $ no_proxy के साथ अनदेखा करने के लिए कॉन्फ़िगर कर सकते हैं, और फिर अपने कर्ल को उपनाम: उर्फ ​​कर्ल = 'कर्ल - नोप्रोक्सी $ no_proxy'
Sir4ur0n

1
अगर आप उस पर्यावरण चर में वाइल्डकार्ड रखते हैं, तो नीचे दिए गए कारणों ( stackoverflow.com/a/17710829/2189128 ) पर @jdebon काम नहीं करता है ।
जेफ

@ जेफ यह मेरा मामला नहीं है, लेकिन अच्छा स्थान है, इससे अन्य व्यक्तियों को कुछ समस्या हो सकती है। धन्यवाद!
Sir4ur0n

243

यदि आपका curlकम से कम संस्करण है 7.19.4, तो आप --noproxyध्वज का उपयोग कर सकते हैं ।

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

से मैनुअल


5
कर्ल: विकल्प - नोप्रोक्सी: अज्ञात है
रोजर एनजी

2
@RogerNg, यदि मैंने प्रश्न का उत्तर देने के बाद से मैनुअल या उपयोग को बदल दिया है, तो उत्तर को अपडेट करने या अपना स्वयं का लिखने के लिए स्वतंत्र महसूस करें। फिर भी, लेखन के समय, यह उत्तर पूछे गए प्रश्न के लिए सटीक था। यदि आपका इंस्टॉलेशन विनिर्देशों के अनुसार व्यवहार नहीं कर रहा है, तो यह पूरी तरह से एक और मुद्दा है।
स्कॉट ऑफेन

3
कर्ल --noproxy stackoverflow.com stackoverflow.com यह सही सराहना है।
arulraj.net

2
मुझे लगता है कि --noproxyपुराने कर्ल संस्करणों के लिए विकल्प उपलब्ध नहीं है (जैसे कि जो Centos / RHEL 5.x पर उपयोग किए जाते हैं)
दिमित्रिअसन

2
प्रलेखन के आधार पर, कभी भी इसके साथ काम करने का एकमात्र तरीका यह --noproxy 127.0.0.1था कि अगर stackoverflow.com लोकलहोस्ट पर चल रहा हो।
डेनिसॉयर

70

मैं उसी समस्या में भाग गया क्योंकि मैंने http_proxy और https_proxy पर्यावरण चर निर्धारित किए। लेकिन कभी-कभी, मैं एक अलग नेटवर्क से जुड़ता हूं और अस्थायी रूप से प्रॉक्सी को बायपास करने की आवश्यकता होती है। ऐसा करने का सबसे आसान तरीका (पर्यावरण चर को बदले बिना) है:

curl --noproxy '*' stackoverflow.com

मैनुअल से: "केवल वाइल्डकार्ड एक एकल * चरित्र है, जो सभी होस्ट से मेल खाता है, और प्रभावी रूप से प्रॉक्सी को निष्क्रिय करता है।"

* चरित्र उद्धृत किया गया है ताकि यह शेल द्वारा गलत तरीके से विस्तारित न हो।


12
ध्यान दें कि उपयोगकर्ताओं के लिए: यदि मैं * को उद्धृत नहीं करता हूं तो बैश स्थानीय फ़ाइलों का विस्तार करता हैcurl --noproxy "*" stackoverflow.com
एडम

बहुत उपयोगी और ध्यान देने योग्य बात यह है कि यह (SOCKS) प्रॉक्सी को मेरी .curlrc फ़ाइल
MatzFan

1
यह वह उत्तर है जिसने कर्ल संस्करण 7.22.0
xpereta

23

यह ठीक काम करता है, प्रॉक्सी स्ट्रिंग को "" सेट करें

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

11

अपनी प्रॉक्सी वरीयताओं को .curlrc में जोड़ें

proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1

इससे सभी देव डोमेन और स्थानीय मशीन अनुरोध प्रॉक्सी को अनदेखा कर देते हैं।


1
//, यह केवल एक है जो DNS मूल्य के साथ एक उदाहरण दिखाता है जिसकी शुरुआत डीएनएस मूल्य से होती है .
नाथन बासानी

Env चर no_proxy (अंडरस्कोर के साथ) के साथ भ्रमित होने की नहीं
शमौन Perepelitsa

7

लंबे शॉट लेकिन "" (खाली स्ट्रिंग) के लिए प्रॉक्सी सेट करने का प्रयास करें जो मैन पेज के अनुसार किसी भी प्रॉक्सी सेटिंग्स को ओवरराइड करना चाहिए।


2
यह "लॉन्ग शॉट" नहीं है - यह इसे करने का उचित तरीका है। मेरे कर्ल के मैन पेज (7.15.5) के अनुसार, जो '--noproxy' विकल्प नहीं दिखाता है), -x / - प्रॉक्सी <प्रॉक्सीहॉट [: port]> ... यह विकल्प मौजूदा वातावरण चर को ओवरराइड करता है जो प्रॉक्सी को सेट करता है उपयोग। यदि प्रॉक्सी को सेट करने के लिए एक पर्यावरण चर है, तो आप इसे ओवरराइड करने के लिए प्रॉक्सी सेट कर सकते हैं।
रॉब क्रैनफिल

5
'09 में, सब कुछ एक लंबा शॉट था।
लुइस

5
+1, -x "" करता है। - वाइल्डकार्ड के साथ एनप्रॉक्सी मेरे बैश के साथ काम नहीं करता है, भले ही मैं "*" बोली
यूजीन

@ यूजीन: यह बाश 4.3.11 में काम कर रहा है, और इसे उद्धृत किया जाना चाहिए।
कराटेगोग

7

आपको $no_proxyenv variable (लोअर-केस) का उपयोग करना चाहिए । उदाहरणों के लिए कृपया https://wiki.archlinux.org/index.php/proxy_settings से परामर्श लें ।

इसके अलावा, लंबे समय पहले कर्ल पर एक बग था http://sourceforge.net/p/curl/bugs/185/ , शायद आप एक प्राचीन कर्ल संस्करण का उपयोग कर रहे हैं जिसमें यह बग शामिल है।


6

सबसे पहले, मैंने वर्तमान प्रॉक्सी सेटिंग को सूचीबद्ध किया

env | sort | less

(कुछ ऐसा होना चाहिए http_proxy=http://wpad.local.machine.location:port number)

फिर मैंने सेटिंग की कोशिश की

export http_proxy=";" 

जिसने यह त्रुटि संदेश दिया:

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

कोशिश की

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

और यह काम किया!

पुनश्च! HTTP- प्रॉक्सी को अपनी मूल सेटिंग्स पर वापस सेट करना याद रखें

export http_proxy=http://wpad.local.machine.location:port number

6

मेरे पास है http_proxyऔर https_proxyपरिभाषित है। मैं परेशान नहीं करना चाहता और उन वातावरण को फिर से सेट करना चाहता हूं लेकिन --noproxy '*' मेरे लिए पूरी तरह से काम करता है।

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"
}

1

लंगड़ा जवाब लेकिन: यह सुनिश्चित करने के लिए याद रखें कि कोई ~/.curlrcफ़ाइल (...) में कोई प्रॉक्सी सेट नहीं है ।


1
धन्यवाद। मैं सिर खुजला रहा था कि कर्ल स्थानीय एनवी वर्जन का सम्मान क्यों नहीं कर रहा है। और फिर मैंने .curlrc को देखा और कुछ अतिरिक्त कॉन्फिगर थे। वहाँ no_proxy जोड़ा और यह काम किया!
n3o

1

मेरे मामले में (मैकोस curl 7.54.0), मेरे पास प्रॉक्सी सेट नीचे है~/.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

अज्ञात कारण से, यह संस्करण curlपर्यावरण चर के साथ NO_PRXYऔर no_proxyठीक से काम नहीं कर सकता है, फिर मैं प्रॉक्सी वातावरण चर को एक-एक करके, दोनों तक HTTPS_PROXYऔर https_proxy

unset HTTPS_PROXY
unset https_proxy

यह काम करना शुरू कर देता है और आंतरिक यूआरएल से जुड़ सकता है

इसलिए मैं सभी प्रॉक्सी चर को परेशान करने की सलाह दूंगा यदि आपके पास अस्थायी समाधान के रूप में आपके वातावरण में है।

unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY

-1

मेरे कर्ल उबंटू 12.04 पर प्रॉक्सी को नजरअंदाज नहीं कर रहे थे जब तक कि मैंने "no_proxy" (लोअरकेस) पर्यावरण चर सेट नहीं किया। --Noproxy विकल्प उपलब्ध नहीं था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.