NPM, Windows'ta kimlik doğrulama proxy'sinin arkasına nasıl kurulur?


30

Windows'ta Node ve NPM'nin son sürümünü çalıştırmam gerekiyor. Düğüm 0.5.8'i yükledim ve NPM kaynaklarını GitHub'dan indirdim. NPM'yi kurmak için izlediğim adımlar GitHub sitesinde listeleniyordu ancak aşağıdaki komutu çalıştırırken bir sorunum var:

node cli.js install npm -gf

ancak aşağıdaki hata iletisiyle başarısız oluyor:

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

Bunun bir sorun olduğunu düşünüyorum çünkü internete bağlanmak için vekilimde kimlik doğrulamasına ihtiyacım var. Ancak, yükleyiciye oturum açma için kimlik bilgilerimi kullanmasını söylemenin bir yolunu bulamadım. Proxy IP'mi ve giriş bilgilerimi npm kurulumuna belki komut satırı argümanları aracılığıyla sağlama imkanı var mı?

Gerekirse pastebin kullanarak tam günlüğü sağlayabilirim (ancak daha fazla bilgim yok gibi görünüyor).


6
Küçük bir numara, eğer kullanıcı adı domain \ user notation içeriyorsa, http kaçış kodu (% 5C) ile ters eğik çizginin yerine kullanılır

@layos Çok teşekkürler sooooo. Bu reddit olsaydı, sana altın verirdim.
Korinna

Yanıtlar:


39

set http_proxybenim için gerçekten iyi çalıştı ama komut istemini her açtığımda girmek zorunda kaldım. Bu yüzden birden fazla cevabı birleştirmek zorunda kaldım ve şimdi benimki kalıcı.

Dizilim şu şekilde gitti:

  • Git C:\Users\YourUserName
  • Adlı bir dosya oluşturun .npmrc
  • Bu dosyanın içine aşağıdakini yazın (bir AD etki alanındaysanız):

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

  • Veya bunu kullanın, bir AD etki alanında DEĞİLSİNİZ:

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

  • Dosya 'yı kaydet
  • Bir komut istemi açın ve kullanmayı deneyin. npm

Diğerleri, aşağıdaki ekstra komutla ekstra başarı elde etti:

strict-ssl = false

* Yukarıdaki "IP" yerine proxy'nin IP adresini veya URL'sini kullanabilmelisiniz.

Proxy dizinizin biraz ince ayarlanması gerekebilir, ancak bunu her seferinde eklemek zorunda kalmamamı sağladı.

Şerefe


3
Şifreniz, şifreniz "@" içeriyorsa npm, proxy ayarlarınızı doğru şekilde ayrıştırmaz. Olası bir geçici çözüm, npm config içine sahte bir kullanıcı adı: parola koymak ve isteğin Proxy-Yetkilendirme başlığını doğru kullanıcı adına sahip olmak için yerel bir proxy (kemancı gibi) kullanmaktır. Kullanıcı adını aklınızda bulundurun: Proxy Yetkilendirmesinde depolanan parola base64 kodludur.
BStruthers

9
Çalışmak için mayın var:proxy = http://ip:port/ https-proxy = http://ip:port/ registry = http://registry.npmjs.org/ strict-ssl = false
Luke

1
benim kullanıcı adı ile çalışmak benim
olmadı

1
domain\\user:password@urltoproxy:portAncak, npm installseçeneği değiştirdiğimde çalıştırdığımda seçenekleri değiştirmeye çalıştım . domain/user:password@urltoproxy:portPeki bu konuda nasıl çalışabilirim?
Jacob Schneider

Benim .npmrc üzerinde, @JacobSchneider aynı sorunu yaşıyorum: -ssl=false registry=http://registry.npmjs.org/ proxy=http://domain\\username:password#@proxy.url:8080 o zaman ben ile yapılandırmasındaki ayarı olsun zaman npm config get proxy: http://domain/username:password#@proxy.url:8080 notu o kaçan ters eğik çizgi eğik çizgi '/' '\\' ile değişiklikler
pompalini

10

Belki bir ortam değişkeni ayarlamak sizin için işe yarar:

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

(Benim durumumda, bu "connect UNKNOWN" u çözüyor, fakat tamamen farklı bir "soket bağlantısı" hatası alıyorum. HTTPS_PROXY ortam değişkenini ayarlamayı da denedim, ancak aynı sonucu aldım.)


Ortam değişkenini ayarlamayı denedim ve ayrıca --proxy kullanıcısı: pass@server.url: port komutunu iletmeyi denedim ama şimdi ECONNREFUSED aldım. Proxy girişi için AD etki alanımı belirtmem gerekiyor mu?
Tobias

@Tobias deneyinset HTTP_PROXY=http://domain\user:pass@server.url:port
Adam Grant

8

Bu aynı sorunu yaşadım ve işte bu işi yapmak için yaptığım şey:

  • Git: C:\Users\YourUserName
  • Adlı bir dosya oluşturun .npmrc
  • Ve giriş okuyacak:

    registry = http://registry.npmjs.org
    
  • Komutu node cli.js install npm -gftekrar dene .


Bahsettiğiniz içerikle dosyayı oluşturdum ama hala connect UNKNOWN hatası alıyorum :(
Tobias

Bunun için şerefe. Bir "npm yapılandırma kümesi kayıt mı registry.npmjs.org " almak için https: // ve tüm pencereleri kurulumuna iyi olduğunu.
Gavin Gilmour

1
Biri ETIMEOUT mesajını alırsa proxy ayarını ekleyelimnode config set proxy http://username:password@server:port
Jeremy S.

Benim için işe ~/.npmrcyarayan, yukarıdaki gibi bir dosya oluşturmaktı; bu, npm'nin http://yerine kayıt defterini kullanmasını söyler https://ve ardından http_proxyortam değişkenimi 17http://myusername:mypassword@proxy.company.com:1234
38'te

Şifreniz, şifreniz "@" içeriyorsa npm, proxy ayarlarınızı doğru şekilde ayrıştırmaz. Olası bir geçici çözüm, npm config içine sahte bir kullanıcı adı: parola koymak ve isteğin Proxy-Yetkilendirme başlığını doğru kullanıcı adına sahip olmak için yerel bir proxy (kemancı gibi) kullanmaktır. Kullanıcı adını aklınızda bulundurun: Proxy Yetkilendirmesinde depolanan parola base64 kodludur.
BStruthers

4

Bazı araştırmalardan sonra, bu şekilde kullanabilirim:

  1. NTLM Yetkilendirme Proxy Sunucusu'nu veya NTLM için Cntlm gibi başka bir proxy sunucusunu yükleyin. Şahsen, python sunucusunu tercih ederim, çünkü ona göz atabilirim ve performans sorun değil.

  2. Yapılandırmayı ayarla; Benim durumumda, hem LM hem de NT modunu etkinleştirmek zorunda kaldığımı ve bugünlerde normal durum olduğundan şüphelendiğimi unutmayın.

  3. Yerel vekilinize işaret etmek için http_proxy ve https_proxy ortam değişkenini ayarlayın:

    http_proxy = "localhost: 5865" olarak
    ayarlayın, https_proxy = "localhost: 5865" olarak ayarlayın.

  4. npm şimdi çalışmalı, elbette yukarıdaki ortam değişkenlerinin tanımlandığı bir kabuktan çalıştırılmalıdır.


3

Aşağıdaki benim için çalıştı.

Windows 7'de:

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

Bu .npmrc, C:/users/<username>klasörde adlandırılmış bir dosya oluşturmalıdır .


3

Bunu komut satırına yazın:

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

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

Kullanıcı adınızdan önce HTTP: // İÇERMEYİ UNUTMAYIN . Benim için çalıştı.


2

Bu sorun benim için yukarıdaki .npmrc dosyasını oluşturduktan ve sonra adduser komutunu çalıştırdıktan ve cmd komutlarını izlememden sonra çözüldü .

npm adduser

Yetkili bir kullanıcı adınız olup olmadığını görmek için aşağıdaki komutu çalıştırın:

npm whoami

2

Yukarıdaki cevapların her biri kullanıcının şifresini bir metin dosyasına ya da bir ortam değişkenine yazmasını gerektirir.

Şahsen güvensiz yaklaşımları için böyle bir çözümü sevmedim. Bu yüzden mevcut kullanıcının Kerberos tokenini müşteri (npm, bower, git) ile proxy arasındaki değiş tokuşlara enjekte eden bir uygulama yazmaya çalıştım. Bununla birlikte, Active Directory Kerberos'un tescilli bir uygulamasıdır.

Bu yazılımı her gün Windows 8.1 ana bilgisayarında kullanıyorum. Kodu (golang) ve ilk sürüm ikili dosyalarını https://github.com/nilleb/authentication-proxy adresinde bulabilirsiniz .


1

Her üç şey de benim için çalıştı.

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

1

En azından Windows'ta, aşağıdaki ayar ile benim için çalışıyor:

proxy = http: // etki alanı % 5C kullanıcı adı : parola @ proxy_ip : bağlantı noktası

yani (1) %5Cyerine \(başka yerde önerildiği gibi) kullanın ve (2) proxy sunucusu için yerel makine adı yerine IP adresini kullanın.


Bu doğrudur - etki alanı + kullanıcı adı ve şifrenin ayrı ayrı URL kodlanması gerekir. Örneğin, şifrenizde # varsa, şifreyi% 23
saille

1

Proxy ana bilgisayarını ve bağlantı noktasını sunucu yöneticinizden veya destek biriminizden alırsınız.

Bundan sonra

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

Şifrede herhangi bir özel karakter varsa,% urlencode ile deneyin. Örneğin: - pound (karma) shuold,% 23 ile değiştirildi.


2
Sorunuzun 3 yıldan uzun bir süre önce sorulduğu sorusuna cevabınız hangi versiyonlarda geçerlidir?
Jason Aller,

Önemli değil, inanıyorum. Çok denedikten sonra bu sorunun çözümünü buldum ve şifremin sorun çıkardığını bilmiyordum. Mükemmel bir cevap vermek için, on yıldan önce bile soru sorulmadı
:)

0

Benim için çalıştı çözüm şudur:

npm yapılandırma http_proxy http: // kullaniciadi : şifre @ ana bilgisayar / IP : port

npm yapılandırma set proxy http: // kullanıcı adı : şifre @ ana bilgisayar / IP : bağlantı noktası

benim durumumda parametreleri parametrelerle değiştirin

kullanıcı adı : (boş)

şifre : (boş)

ana bilgisayar / IP : 192.36.36.110

liman : 8080

öyleyse komutlarım

npm yapılandırma http_proxy http: //: @ 192.36.36.110: 8080 olarak ayarlandı

npm yapılandırma ayarlanan proxy http: //: @ 192.36.36.110: 8080


0

CNTLM benim için işe yaramadı. Tüm olası kombinasyonları denedim. NPM, Kimlik Doğrulama hatası veriyordu. Fiddler kurtarmaya geldi ve zamanımı kurtardı. Kurulumu ve yapılandırması kolaydır. Fiddler Kuralını Otomatik Olarak Doğrulanmış Olarak Ayarlayın.

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

Benim için çalıştı :)


0

Benim için çalışan şey şuydu:

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

Herhangi bir kullanıcı adı veya şifre girmem gerekmedi, sadece PAC dosyası URL'sini girdim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.