68

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

4

8 回答 8

134

我以这种方式解决了它(操作系统: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.将以上三行复制到 cntlm.ini 中,在Domain字段的行下。再一次,不要填写该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 https://registry.npmjs.org

7.现在npm viewnpm install应该可以工作了。例子:

> npm view qunit
...nice answer, no errors :)
于 2013-09-02T09:49:07.103 回答
11

CNTLM 答案对我有用,但连接错误使 npm 无法使用。我已通过在 CNXML 中添加此标头来修复它们。

Header      Connection: close
于 2015-05-07T09:14:07.880 回答
10

另一种选择是使用Windows 的 Px,它可以像 Cntlm 和 NTLMAps 一样代表您与 NTLM 对话,而无需提供您的凭据。它通过 SSPI 使用登录用户的凭据。

于 2016-08-19T20:05:26.613 回答
9

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

由于使用了 smartpass 身份验证,我之前不得不走这条路——即我们实际上没有密码。在那些地方建立 CNTLM 是不可能的。

于 2014-08-29T15:10:04.970 回答
6

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

npm --proxy=http://username:password@proxyserver:port --proxy-https=http://username:password@proxyserver:port --registry=http://registry.npmjs.org/ install whateveryouwanttoinstall
于 2014-01-31T10:05:21.137 回答
5
  1. 使用记事本打开.npmrcC:\users\username\ 文件夹中的文件
  2. 添加以下行..
  3. 用正确的值替换域、用户名、密码、服务器名
  4. 立即尝试安装或获取软件包
  5. 如果从 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
    
于 2018-04-16T10:02:02.193 回答
5

CNTLM 对我不起作用。我尝试了所有可能的组合。NPM 给出身份验证错误。Fiddler 前来救援,节省了我的时间。它易于安装和配置。将 Fiddler Rule 设置为 Automatically Authenticated.In .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

它对我有用:)

另一个提琴手选项:

使 Fiddler 充当 NTLM 和其他协议的 HTTP 代理的第二种方法是保留自动身份验证选项/规则默认值并从菜单栏中转到此设置:

工具 > Telerik Fiddler 选项 > 连接选项卡

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

于 2016-04-29T05:01:41.933 回答
0

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

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

输出就像

---------------------------------------------------
Auth            NTLM
PassNT          8EE9B595A89F7D8774C2146FB302CBCF
PassLM          78901DA9889727EDE28EF9F2769485B9
----------------------------------------------------
于 2016-06-02T05:09:43.760 回答