programing tip

프록시 뒤의 npm이 상태 403으로 실패합니다.

itbloger 2020. 12. 14. 07:56
반응형

프록시 뒤의 npm이 상태 403으로 실패합니다.


프록시 뒤에서 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[sic!] 403으로 실패합니다 . 이는 권한이 없음을 의미합니다. 사용자 이름 / 비밀번호가 필요하지 않도록 Authoxy를 설정했습니다. Authoxy를 우회하고 http : // user : pass @ proxy : port 형식으로 NTLM 프록시에 대한 실제 프록시 자격 증명을 제공 할 때도 동일한 오류가 발생합니다.

프록시를 통해이 작업을 수행하려면 어떻게해야합니까?

최신 정보

나는 이것을보고하기 위해 NPM 프로젝트에 이슈를 만들었습니다 : https://github.com/isaacs/npm/issues/2866


좋습니다. 질문을 게시 한 후 몇 분 내에 https://github.com/npm/npm/issues/2119#issuecomment-5321857에서 직접 답을 찾았습니다.

문제는 npm이 프록시를 통한 HTTPS에서 그다지 좋지 않다는 것입니다. HTTPS에서 HTTP로 레지스트리 URL을 변경하면 문제가 해결되었습니다.

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

여전히 프록시 구성을 제공해야하지만 (제 경우에는 Authoxy를 통해) 모든 것이 정상적으로 작동합니다.

일반적인 문제인 것 같지만 잘 문서화되지 않았습니다. 이 답변이 사람들 이이 문제에 직면했는지 쉽게 찾을 수 있기를 바랍니다.


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 로 이동합니다 .


프록시에서 인증하기 위해 사용자 이름과 비밀번호를 제공해야하는 경우 사용할 구문은 다음과 같습니다.

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

If anyone else ends up breaking their proxy config settings go to your .npmrc, to type in the settings. This file is located at your node root folder level.

Here's whats my corrected file looks like:

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

For those using Jenkins or other CI server: it matters where you define your proxies, especially when they're different in your local development environment and the CI environment. In this case:

  • don't define proxies in project's .npmrc file. Or if you do, be sure to override the settings on CI server.
  • any other proxy settings might cause 403 Forbidden with little hint to the fact that you're using the wrong proxy. Check your gradle.properties or such and fix/override as necessary.

TLDR: define proxies not in the project but on the machine you're working on.

참고URL : https://stackoverflow.com/questions/11773509/npm-behind-a-proxy-fails-with-status-403

반응형