NTMM代理背后的NPM

时间:2013-09-02 08:49:15

标签: node.js npm ntlm http-proxy

是否可以在使用npm install身份验证的HTTP代理后面运行NTLM?如果是,我该如何设置服务器的地址和端口,用户名和密码?

8 个答案:

答案 0 :(得分:124)

我用这种方式解决了它(操作系统:Windows XP SP3):

1。下载CNTLM安装程序并运行它。

2. 在cntlm.ini中查找并填写这些字段。 请勿填写Password字段,将未加密的密码存储在文本文件中绝不是一个好主意。

Username    YOUR_USERNAME
Domain      YOUR_DOMAIN
Proxy       YOUR_PROXY_IP:PORT
Listen      53128

3. 打开控制台,然后输入这些命令以生成密码哈希值。

> cd c:\the_install_directory_of_cntlm
> cntlm -H
Password: ...type proxy password here...
PassLM          D6888AC8AE0EEE294D954420463215AE
PassNT          0E1FAED265D32EBBFB15F410D27994B2
PassNTLMv2      91E810C86B3FD1BD14342F945ED42CD6

4. 将以上三行复制到Domain字段行下的cntlm.ini中。 再次,请勿填写Password字段。保存cntlm.ini。

5. 打开服务管理器(从命令行:services.msc),然后启动名为“CNTLM Authentication Proxy”的服务。

6. 在控制台中,键入以下行:

> npm config set proxy http://localhost:53128
> npm config set https-proxy http://localhost:53128
> npm config set registry http://registry.npmjs.org

7。现在npm viewnpm install等应该有效。例如:

> npm view qunit
...nice answer, no errors :)

答案 1 :(得分:11)

CNTLM的答案对我有用,但是由于连接错误导致npm无法使用。我已经通过在CNTML中添加此标题来修复它们。

Header      Connection: close

答案 2 :(得分:9)

另一种选择是使用 Px for Windows代表您使用NTLM,如Cntlm和NTLMAps,而无需提供您的凭据。它通过SSPI使用登录用户的凭据。

答案 3 :(得分:8)

当您需要使用npm时,您可以尝试运行Fiddler,而不是运行CNTLM。我发现这在相当封闭的环境(例如投资银行)中有效。它也是一个很容易为(如果需要)创建业务案例的工具,因为它对于检查/创建/更改HTTP流量非常有用。

由于使用了智能通行认证,我之前必须走这条路线 - 即我们实际上并没有密码。在那些地方建立CNTLM是不可能的。

答案 4 :(得分:5)

您可以将设置作为参数传递:

npm --proxy=http://username:password@proxyserver:port --proxy-https=http://username:password@proxyserver:port --registry=http://registry.npmjs.org/ install whateveryouwanttoinstall

答案 5 :(得分:5)

CNTLM并不适合我。我尝试了所有可能的组合。 NPM正在提供身份验证错误。提琴手来救援,节省了我的时间。它易于安装和配置。将Fiddler规则设置为自动Authenticated.In .npmrc设置这些

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script>
  $('.wrapper').prepend($('.Content:nth-of-type(2)'))
</script>

它对我有用:)

另一个提琴手选项:

使Fiddler充当NTLM和其他协议的HTTP代理的第二种方法是保留auto authenticate options / rules默认值并从菜单栏转到此设置:

工具&gt; Telerik Fiddler选项&gt; “连接”选项卡

单击允许远程计算机连接复选框。您将看到一个对话框,说明启用此选项的后果。重新启动Fiddler并更新 .npmrc 文件,如上所示。每当你需要npm访问注册表站点时,只需运行Fiddler。此设置不会影响Fiddler为其他捕获运行的方式。

答案 6 :(得分:4)

  1. 使用记事本
  2. 在C:\ users \ username \文件夹中打开.npmrc文件
  3. 添加以下行..
  4. 将域名,用户名,密码,服务器名称替换为正确的值
  5. 立即尝试安装或获取包
  6. 如果从Vs2017尝试,请关闭并重新打开VS IDE,然后才能运行

    proxy=http://DOMAIN%5CUSERNAME:PWD@proxy.servername.com:6050   
    https-proxy=http://DOMAIN%5CUSERNAME:PWD@proxy.servername.com:6050  
    http-proxy=http://DOMAIN%5CUSERNAME:PWD@proxy.servername.com:6050   
    strict-ssl=false
    

答案 7 :(得分:0)

CNTLM按照KOL的建议为我工作。谢谢KOL。只是想补充一点,在个别代理中存在一些奇怪之处,因为在使用简单cntlm -H时密码可能是不可接受的。

使用cntlm -I -M http://test.com并在删除旧配置后复制以下配置,您应该完成。

输出就像

---------------------------------------------------
Auth            NTLM
PassNT          8EE9B595A89F7D8774C2146FB302CBCF
PassLM          78901DA9889727EDE28EF9F2769485B9
----------------------------------------------------