使用代理NPM失败,状态为403(npm behind a proxy fails with sta

2019-06-26 16:35发布

我试图运行在一个代理NPM。 我都试过直接输入代理或者Authoxy:

npm config set proxy http://localhost:8999
npm config set https-proxy http://localhost:8999

无论我使用的代理服务器,我总是以同样的错误运行时,最终npm search

npm info it worked if it ends with ok
npm verb cli [ 'node', '/usr/local/bin/npm', 'search' ]
npm info using npm@1.1.45
npm info using node@v0.8.4
npm verb config file /Users/xxx/.npmrc
npm verb config file /usr/local/etc/npmrc
npm verb config file /usr/local/lib/node_modules/npm/npmrc
npm WARN Building the local index for the first time, please be patient
npm verb url raw /-/all
npm verb url resolving [ 'https://registry.npmjs.org/', './-/all' ]
npm verb url resolved https://registry.npmjs.org/-/all
npm info retry registry request attempt 1 at 09:48:47
npm http GET https://registry.npmjs.org/-/all
npm info retry will retry, error on last attempt: Error: tunneling socket could not be established, sutatusCode=403
npm info retry registry request attempt 2 at 09:48:57
npm http GET https://registry.npmjs.org/-/all
npm info retry will retry, error on last attempt: Error: tunneling socket could not be established, sutatusCode=403
npm info retry registry request attempt 3 at 09:49:57
npm http GET https://registry.npmjs.org/-/all
npm ERR! Error: tunneling socket could not be established, sutatusCode=403
npm ERR!     at ClientRequest.onConnect (/usr/local/lib/node_modules/npm/node_modules/request/tunnel.js:148:19)
npm ERR!     at ClientRequest.g (events.js:185:14)
npm ERR!     at ClientRequest.EventEmitter.emit (events.js:115:20)
npm ERR!     at Socket.socketOnData (http.js:1383:11)
npm ERR!     at TCP.onread (net.js:410:27)

该命令总是失败, sutatusCode 403 [原文如此] -这意味着未经授权的。 我已经设置了Authoxy不要求用户名/密码。 //用户:通@代理:端口,当我绕过Authoxy,并为我们在HTTP的形式NTLM代理真正代理凭据会发生同样的错误。

我怎样才能让通过代理这项工作?

更新

我创建了一个问题,在NPM项目报告此: https://github.com/isaacs/npm/issues/2866

Answer 1:

好了,几分钟内张贴的问题后,我发现自己的答案在这里: https://github.com/isaacs/npm/issues/2119#issuecomment-5321857

这个问题似乎是,NPM不与HTTPS,伟大的通过代理。 从HTTPS更改注册表URL以HTTP固定对我来说:

npm config set registry http://registry.npmjs.org/

我还是要提供(在我的情况下,通过Authoxy)代理配置,但现在一切都工作正常。

似乎是一个常见的问题,但无据可查。 我希望在这里这个答案将会使人们更容易找到,如果他们碰上了这个问题。



Answer 2:

npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080

归功于http://jjasonclark.com/how-to-setup-node-behind-web-proxy 。



Answer 3:

如果您需要提供用户名和密码在您的代理进行身份验证,这是使用的语法:

npm config set proxy http://usr:pwd@host:port
npm config set https-proxy http://usr:pwd@host:port


Answer 4:

如果任何人最终打破了他们的代理配置设置去你.npmrc,键入中的设置。 该文件位于您的节点的根文件夹级别。

这里是什么我的修正文件的样子:

#proxy = http://proxy.company.com:8080
https-proxy = https://proxy.company.com:8080 
registry = http://registry.npmjs.org/


Answer 5:

对于那些使用詹金斯或其他CI服务器:它很重要你定义你的代理,特别是当他们在当地的发展环境和CI环境不同。 在这种情况下:

  • 没有定义项目的.npmrc文件代理。 或者,如果你这样做,一定要覆盖CI服务器上的设置。
  • 任何其他代理设置可能会导致403 Forbidden与小提示您使用了错误的代理的事实。 检查gradle.properties或这样或修复/必要的覆盖。

TLDR:定义不是在项目,但你的工作机器上的代理。



文章来源: npm behind a proxy fails with status 403