विंडोज पर प्रमाणीकरण प्रॉक्सी के पीछे एनपीएम कैसे स्थापित करें?


30

मुझे विंडोज़ पर नोड और एनपीएम के नवीनतम संस्करण को चलाने की आवश्यकता है। मैंने Node 0.5.8 स्थापित किया और GitHub से NPM के स्रोतों को डाउनलोड किया। एनपीएम को स्थापित करने के लिए मैंने जो कदम उठाए, वे इसकी GitHub साइट पर सूचीबद्ध थे, लेकिन मुझे निम्नलिखित कमांड चलाने में समस्या है:

node cli.js install npm -gf

लेकिन यह निम्न त्रुटि संदेश के साथ विफल रहता है:

Error: connect UNKNOWN
at errnoException (net_uv.js:566:11)
at Object.afterConnect [as oncomplete] (net_uv.js:557:18)

System Windows_NT 5.1.2600
command "...\\Node\\bin\\node.exe" "...\\npm\\cli.js" "install" "npm" "-gf"
cwd ...\npm
node -v v0.5.8
npm -v 1.0.94
code UNKNOWN

मुझे लगता है कि यह एक समस्या है क्योंकि मुझे इंटरनेट से जुड़ने के लिए अपने प्रॉक्सी पर प्रमाणीकरण की आवश्यकता है। लेकिन मुझे इंस्टॉलर को लॉगिन के लिए अपनी क्रेडेंशियल्स का उपयोग करने का तरीका बताने का कोई तरीका नहीं मिला। क्या कमांड-लाइन आर्ग्युमेंट्स के माध्यम से npm इंस्टॉलेशन के लिए मेरे प्रॉक्सी आईपी और लॉगिन जानकारी प्रदान करने की संभावना है?

यदि आवश्यक हो तो मैं पास्टबिन का उपयोग करके पूर्ण लॉग प्रदान कर सकता हूं (लेकिन अधिक प्रासंगिक जानकारी नहीं है)।


6
एक छोटी सी चाल, यदि उपयोगकर्ता नाम में डोमेन \ उपयोगकर्ता संकेतन है जिसमें HTTP एस्केप कोड (% 5C) के साथ बैकस्लैश है

@layos बहुत बहुत धन्यवाद। यदि यह लाल होता, तो मैं आपको सोना देता।
कोरिन्ना

जवाबों:


39

set http_proxyमेरे लिए वास्तव में अच्छी तरह से काम किया, लेकिन मुझे हर बार जब मैंने कमांड प्रॉम्प्ट खोला तो मुझे इसे दर्ज करना पड़ा। इसलिए मुझे कई उत्तरों को संयोजित करना पड़ा और अब मेरा स्थायी है।

मेरा क्रम इस प्रकार है:

  • के लिए जाओ C:\Users\YourUserName
  • नाम से एक फ़ाइल बनाएँ .npmrc
  • उस फ़ाइल के अंदर निम्नलिखित टाइप करें (यदि आप AD डोमेन पर हैं):

proxy = http://domain\\username:password@ip:port

  • या यह प्रयोग करें कि आप AD डोमेन पर नहीं हैं:

proxy = http://username:password@ip:port

  • फ़ाइल सहेजें
  • कमांड प्रॉम्प्ट खोलें और उपयोग करने का प्रयास करें npm

अन्य लोगों को निम्नलिखित अतिरिक्त कमांड के साथ अतिरिक्त सफलता मिली है:

strict-ssl = false

* आपको ऊपर "आईपी" के स्थान पर एक आईपी पते या यूआरएल का उपयोग प्रॉक्सी में करने में सक्षम होना चाहिए।

आपके प्रॉक्सी स्ट्रिंग को थोड़ा ट्वीक करने की आवश्यकता हो सकती है, लेकिन इसने इसे ऐसा बना दिया है कि मुझे इसे हर बार जोड़ना नहीं है।

चियर्स


3
यदि आपका पासवर्ड "@ npm" सम्‍मिलित करता है, तो आपकी प्रॉक्सी सेटिंग सही ढंग से पार्स नहीं होगी। एक संभावित वर्कआउट एक फर्जी यूजरनेम: npm कॉन्फिगर में पासवर्ड डालने के लिए है, और सही यूजरनेम के लिए रिक्वेस्ट के प्रॉक्सी-ऑथराइजेशन हेडर को संशोधित करने के लिए एक स्थानीय प्रॉक्सी (जैसे फिडलर) का उपयोग करना है: पासवर्ड। उपयोगकर्ता नाम को ध्यान में रखें: प्रॉक्सी-प्राधिकरण में संग्रहीत पासवर्ड बेस 64 एनकोडेड है।
BStruthers

9
मेरे साथ काम करने के लिए मिल गया:proxy = http://ip:port/ https-proxy = http://ip:port/ registry = http://registry.npmjs.org/ strict-ssl = false
ल्यूक

1
मुझे उपयोगकर्ता नाम के साथ काम करने के लिए नहीं मिला: पासवर्ड
philx_x

1
अरे, मैंने domain\\user:password@urltoproxy:portफिर भी उपयोग करने की कोशिश की , जब मैं npm installविकल्प को चलाता domain/user:password@urltoproxy:portहूं तो मैं कैसे काम करता हूं?
याकूब श्नाइडर

मेरे पास .JpmSrc पर, @JacobSchneider के रूप में एक ही समस्या है: -ssl=false registry=http://registry.npmjs.org/ proxy=http://domain\\username:password#@proxy.url:8080 तब जब मुझे इसके साथ कॉन्फिग से सेटिंग मिलती है npm config get proxy: http://domain/username:password#@proxy.url:8080 ध्यान दें कि बची हुई बैकस्लैश '\\' एक फॉरवर्ड स्लैश में बदल जाती है '/'
pppalini

10

हो सकता है कि एक पर्यावरण चर सेट करना आपके लिए काम करेगा:

set HTTP_PROXY=http://user:pass@server.url:port

(मेरे मामले में, यह "कनेक्ट UNKNOWN" को हल करता है, लेकिन मुझे पूरी तरह से अलग "सॉकेट हैंग अप" त्रुटि मिलती है। मैंने HTTPS_PROXY पर्यावरण चर को स्थापित करने की भी कोशिश की, लेकिन एक ही परिणाम मिला।)


मैंने पर्यावरण चर को सेट करने की कोशिश की और पासिंग --proxy उपयोगकर्ता: pass@server.url: कमांड पर पोर्ट करने की कोशिश की , लेकिन अब मुझे ECONNREFUSED मिल गया है .. क्या मुझे प्रॉक्सी लॉगिन के लिए अपना AD डोमेन निर्दिष्ट करने की आवश्यकता है?
टोबियास

@ टोबियास की कोशिशset HTTP_PROXY=http://domain\user:pass@server.url:port
एडम ग्रांट

8

मेरे पास यह समान मुद्दा था और यहां मैंने यह काम करने के लिए क्या किया:

  • के लिए जाओ: C:\Users\YourUserName
  • नाम से एक फ़ाइल बनाएँ .npmrc
  • और यह प्रविष्टि पढ़ी जाएगी:

    registry = http://registry.npmjs.org
    
  • node cli.js install npm -gfफिर से कोशिश करें।


मैंने आपके द्वारा बताई गई सामग्री के साथ फ़ाइल बनाई थी, लेकिन अभी भी कनेक्ट नहीं हो रहा है UNKNOWN त्रुटि :(
तोबियास

इसके लिए चीयर्स करें। Https: // के आस-पास पाने के लिए "npm config set रजिस्ट्री रजिस्ट्री .npmjs.org " किया और मेरे विंडोज़ सेटअप पर सब ठीक है।
गाविन गिल्मर

1
अगर किसी को ETIMEOUT संदेश के साथ प्रॉक्सी सेटिंग मिलती हैnode config set proxy http://username:password@server:port
जेरेमी एस

मेरे लिए जो काम किया गया वह ~/.npmrcऊपर की तरह फाइल बना रहा था , जो npm को http://रजिस्ट्री के बजाय रजिस्ट्री का उपयोग करने के लिए कहता है https://, और फिर मेरे http_proxyपर्यावरण चर को निर्धारित करता हैhttp://myusername:mypassword@proxy.company.com:1234
Maxy-B

यदि आपका पासवर्ड "@ npm" सम्‍मिलित करता है, तो आपकी प्रॉक्सी सेटिंग सही ढंग से पार्स नहीं होगी। एक संभावित वर्कआउट एक फर्जी यूजरनेम: npm कॉन्फिगर में पासवर्ड डालने के लिए है, और सही यूजरनेम के लिए रिक्वेस्ट के प्रॉक्सी-ऑथराइजेशन हेडर को संशोधित करने के लिए एक स्थानीय प्रॉक्सी (जैसे फिडलर) का उपयोग करना है: पासवर्ड। उपयोगकर्ता नाम को ध्यान में रखें: प्रॉक्सी-प्राधिकरण में संग्रहीत पासवर्ड बेस 64 एनकोडेड है।
BStruthers

4

कुछ शोध के बाद, मैं इसे इस तरह से उपयोग कर सकता हूं:

  1. NTLM प्राधिकरण प्रॉक्सी सर्वर या NTLM के लिए किसी अन्य प्रॉक्सी सर्वर को स्थापित करें, जैसे Cntlm। व्यक्तिगत रूप से, मैं अजगर सर्वर को पसंद करता हूं, क्योंकि मैं इसके साथ टिंकर कर सकता हूं, और प्रदर्शन कोई समस्या नहीं है।

  2. कॉन्फ़िगरेशन सेट करें; ध्यान दें कि मेरे मामले में, मुझे LM और NT दोनों मोड को सक्षम करना था, और मुझे संदेह होगा कि यह सामान्य मामला है, आजकल।

  3. अपने स्थानीय प्रॉक्सी को इंगित करने के लिए http_proxy और https_proxy पर्यावरण चर सेट करें:

    सेट http_proxy = "localhost: 5865"
    सेट https_proxy = "लोकलहोस्ट: 5865"

  4. npm को अब काम करना चाहिए, निश्चित रूप से इसे एक शेल से निष्पादित किया जाना चाहिए जहां उपरोक्त पर्यावरण चर परिभाषित किए गए हैं।


3

निम्नलिखित ने मेरे लिए काम किया।

विंडोज 7 पर:

npm config set proxy xxhttp://username:password@proxyhost:port# 

इससे फोल्डर .npmrcमें एक फाइल बनाई जानी चाहिए C:/users/<username>


3

इसे कमांड लाइन में टाइप करें:

npm set proxy http://user:pass@ip:port

npm set https-proxy http://user:pass@ip:port

अपने उपयोगकर्ता नाम से पहले HTTP में शामिल होने के लिए मत भूलना । इसने मेरे लिए काम किया।


2

ऊपर के रूप में .npmrc फ़ाइल बनाने के बाद मेरे लिए यह समस्या हल हो गई , और फिर एड्यूसर कमांड चलाकर और cmd संकेतों का पालन किया।

npm adduser

यदि आपके पास एक अधिकृत उपयोगकर्ता नाम है, तो यह देखने के लिए निम्नलिखित कॉमैन चलाएँ:

npm whoami

2

उपर्युक्त उत्तरों में से प्रत्येक को उपयोगकर्ता को एक टेक्स्ट फ़ाइल में, या एक एनिट्स मेंट चर में अपना पासवर्ड लिखने की आवश्यकता है।

व्यक्तिगत रूप से मुझे उनके असुरक्षित दृष्टिकोण के लिए, इस तरह का समाधान पसंद नहीं आया। इसलिए मैंने एक एप्लिकेशन लिखने की कोशिश की, जो क्लाइंट (npm, bower, git) और प्रॉक्सी के बीच एक्सचेंजों में वर्तमान उपयोगकर्ता के Kerberos टोकन को इंजेक्ट करता है। उस ने कहा, सक्रिय निर्देशिका सिर्फ Kerberos का मालिकाना कार्यान्वयन है।

मैं इस सॉफ़्टवेयर का उपयोग प्रतिदिन, विंडोज 8.1 होस्ट पर करता हूं। आप कोड (गोलंग) और पहली रिलीज़ बायनेरी https://github.com/nilleb/authentication -proxy पर पा सकते हैं ।


1

सभी तीन चीजें मेरे लिए .npmrc में काम करती हैं

proxy = http://unam:pwd@host:port
https-proxy = http://unam:pwd@host:port
registry = http://registry.npmjs.org

1

कम से कम विंडोज में, यह मेरे लिए निम्न सेटिंग के साथ काम करता है:

प्रॉक्सी = http: // डोमेन % 5C उपयोगकर्ता नाम : पासवर्ड @ प्रॉक्सी_प : पोर्ट

यानी, (1) के %5Cबजाय \(जैसा कि कहीं और सुझाव दिया गया है) का उपयोग करें और (2) प्रॉक्सी सर्वर के लिए स्थानीय मशीन के नाम के बजाय आईपी पते का उपयोग करें।


यह सही है - डोमेन + उपयोगकर्ता नाम और पासवर्ड को अलग से URL एनकोडेड करने की आवश्यकता है। जैसे यदि आपके पासवर्ड में # है, तो इसे% 23 के साथ बदलें
saille

1

आप अपने सर्वर व्यवस्थापक या समर्थन से प्रॉक्सी होस्ट और पोर्ट प्राप्त करेंगे।

इसके बाद सेट करें

npm config set http_proxy http://username:password@proxyofmycomp.com:itsport
npm config set proxy http://username:password@proxyofmycomp.com:itsport

यदि पासवर्ड में कोई विशेष वर्ण% urlencode के साथ है। जैसे: - पाउंड (हैश) शूल को २३% से बदला जाना चाहिए।


2
3 साल पहले यह सवाल पूछे जाने पर कि आपका उत्तर किन संस्करणों पर लागू होता है?
जेसन एलर

मुझे विश्वास है कि इससे कोई फर्क नहीं पड़ता। मैंने बहुत कोशिश करने के बाद इस समस्या का हल खोजा और कभी नहीं जाना कि मेरा पासवर्ड मुद्दा बना रहा था। इसे सही बनाने के लिए कोई दस साल से पहले भी कोई सवाल नहीं पूछा गया था
:)

0

मेरे लिए काम किया समाधान निम्नलिखित है:

npm config सेट http_proxy http: // उपयोगकर्ता नाम : पासवर्ड @ होस्ट / आईपी : पोर्ट

npm config सेट प्रॉक्सी http: // उपयोगकर्ता नाम : पासवर्ड @ होस्ट / आईपी : पोर्ट

मेरे मामले में, मानों के साथ मापदंडों को बदलें

उपयोगकर्ता नाम : (खाली)

पासवर्ड : (खाली)

मेजबान / आईपी : 192.36.36.110

पोर्ट : 8080

इसलिए मेरे आदेश हैं

npm config सेट http_proxy http: //: @ 192.36.36.110: 8080

npm config सेट प्रॉक्सी http: //: @ 192.36.36.110: 8080


0

CNTLM ने मेरे लिए काम नहीं किया। मैंने सभी संभव संयोजनों की कोशिश की। NPM प्रमाणीकरण त्रुटि दे रहा था। फिडलर बचाव के लिए आए और मेरा समय बचाया। इसे स्थापित करना और कॉन्फ़िगर करना आसान है। फ़िडलर नियम को स्वचालित रूप से प्रमाणित करें। इन .npmrc सेट करें

registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false

यह मेरे लिए काम :)


0

मेरे लिए काम इस प्रकार था:

registry=http://registry.npmjs.org
proxy=http://<url.pac>
https-proxy=http://<url.pac>
http-proxy=http://<url.pac>
strict-ssl=false

मुझे किसी भी उपयोगकर्ता नाम या पासवर्ड को दर्ज करने की आवश्यकता नहीं थी, बस पीएसी फ़ाइल यूआरएल।

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