2011-10-17 13:25:58 +0000 2011-10-17 13:25:58 +0000
30
30

¿Cómo instalar NPM detrás de un proxy de autenticación en Windows?

Necesito ejecutar la última versión de Node y NPM en Windows. He instalado Node 0.5.8 y he descargado las fuentes de NPM desde GitHub. Los pasos que seguí para instalar NPM estaban listados en su sitio GitHub pero tengo un problema al ejecutar el siguiente comando:

node cli.js install npm -gf

pero falla con el siguiente mensaje de error:

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

Creo que esto es un problema porque necesito autenticación en mi proxy para conectarme a Internet. Pero no he encontrado ninguna forma de decirle al instalador que utilice mis credenciales para iniciar la sesión. ¿Existe la posibilidad de proporcionar la IP de mi proxy y la información de inicio de sesión a la instalación de npm tal vez a través de argumentos de línea de comandos?

Puedo proporcionar el registro completo (pero parece no tener más información relevante) usando pastebin si es necesario.

Respuestas (14)

39
39
39
2012-12-03 20:05:07 +0000

set http_proxy me funcionó muy bien, pero tenía que introducirlo cada vez que abría el símbolo del sistema. Así que tuve que combinar varias respuestas y ahora la mía es permanente.

Mi secuencia era la siguiente

  • Vaya a C:\Users\YourUserName
  • Cree un archivo llamado .npmrc
  • Dentro de ese archivo escriba lo siguiente (si está en un dominio AD):

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

  • O use esto si NO está en un dominio AD:

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

  • Guarde el archivo
  • Abra un símbolo del sistema y trate de usar npm

Otros han tenido más éxito con el siguiente comando extra:

strict-ssl = false

\N - Debería poder utilizar una dirección IP o la URL del proxy en lugar de la “IP” anterior.

Tu cadena de proxy puede necesitar ser ajustada un poco, pero esto hizo que no tuviera que añadir esto cada vez.

Salud

10
10
10
2011-10-19 17:19:05 +0000

Tal vez establecer una variable de entorno te funcione:

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

(En mi caso, esto resuelve el error “connect UNKNOWN”, pero obtengo un error “socket hang up” completamente diferente. También probé a poner la variable de entorno HTTPS_PROXY, pero obtuve el mismo resultado).

8
8
8
2011-11-16 16:41:09 +0000

Tuve este mismo problema y esto es lo que hice para que funcionara:

  • Ir a: C:\Users\YourUserName
  • Crea un archivo llamado .npmrc
  • Y su entrada dirá:

  • Intenta el comando node cli.js install npm -gf de nuevo.

4
4
4
2012-03-12 09:56:43 +0000

Después de investigar un poco, podría utilizarlo de esta manera:

  1. Instalar el servidor proxy de autorización NTLM u otro servidor proxy para NTLM, como Cntlm. Personalmente, prefiero el servidor de python, porque puedo juguetear con él, y el rendimiento no es un problema.

  2. Establece la configuración; ten en cuenta que en mi caso, tuve que habilitar tanto el modo LM como el NT, y sospecharía que es el caso normal, hoy en día.

  3. Establezca la variable de entorno http_proxy y https_proxy para que apunte a su proxy local:

  4. npm debería funcionar ahora, por supuesto debe ser ejecutado desde un shell donde las variables de entorno anteriores estén definidas.

3
3
3
2013-09-04 10:46:04 +0000

Escriba esto en la línea de comandos:

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

npm set https-proxy http://user:pass@ip:port NO OLVIDE INCLUIR HTTP:// antes de su nombre de usuario. A mí me ha funcionado.

3
3
3
2013-06-13 19:12:07 +0000

Lo siguiente me ha funcionado.

En Windows 7:

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

Esto debería crear un archivo llamado .npmrc en la carpeta C:/users/<username>.

3
3
3
2016-05-03 20:27:58 +0000

Cada una de las respuestas anteriores necesita que el usuario escriba su contraseña en un archivo de texto, o en una variable de entorno.

Personalmente no me gustaba una solución como estas, por su enfoque inseguro. Así que intenté escribir una aplicación que inyecta el token Kerberos del usuario actual en los intercambios entre el cliente (npm, bower, git) y el proxy. Dicho esto, Active Directory es sólo una implementación propietaria de Kerberos.

Yo uso este software todos los días, en un host Windows 8.1. Puedes encontrar el código (golang) y los binarios de la primera versión en https://github.com/nilleb/authentication-proxy .

2
2
2
2012-05-02 03:41:48 +0000

Este problema se resolvió para mí después de crear el archivo .npmrc como se indica arriba, y luego ejecutar el comando adduser y las siguientes indicaciones de cmd.

npm adduser

Ejecute el siguiente comando para ver si tiene un nombre de usuario autorizado:

npm whoami
1
1
1
2015-07-07 21:58:10 +0000

El administrador de su servidor o el servicio de asistencia técnica le proporcionarán el host y el puerto del proxy.

Después de eso configure

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

Si hay algún carácter especial en la contraseña intente con % urlencode. Por ejemplo: - la libra (hash) debe ser reemplazada por %23.

1
1
1
2015-06-18 09:54:36 +0000

Al menos en Windows, a mí me funciona con la siguiente configuración:

proxy=http://_domain_%5C_username_:_password_@ **_proxy\_ip_** :_port_

es decir, (1) utilizar %5C en lugar de `Al menos en Windows, a mí me funciona con la siguiente configuración:

proxy=http://_domain_%5C_username_:_password_@ **_proxy\_ip_** :_port_

es decir, (1) utilizar %5C en lugar de (como se sugiere en otro lugar) y (2) utilizar la dirección IP en lugar del nombre de la máquina local para el servidor proxy.

1
1
1
2013-09-27 06:46:50 +0000

Las tres cosas me han funcionado en .npmrc

proxy = http://unam:pwd@host:port
https-proxy = http://unam:pwd@host:port
registry = http://registry.npmjs.org
0
0
0
2016-02-22 06:19:01 +0000

La solución que me ha funcionado es la siguiente

npm config set http_proxy http://username:password@host/IP:port

npm config set proxy http://username:password@host/IP:port

sustituir los parámetros por los valores, en mi caso

nombre de usuario : (vacío)

contraseña : (vacío)

host/IP : 192.36.36.110

puerto : 8080

así Mis comandos son

npm config set http_proxy TEMP0:@192.36.36.110:8080

npm config set proxy TEMP0:@192.36.36.110:8080

0
0
0
2018-01-08 22:13:37 +0000

Lo que me funcionó fue lo siguiente:

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

No tuve que introducir ningún nombre de usuario o contraseña, simplemente la url del archivo PAC.

0
0
0
2016-04-29 05:14:16 +0000

CNTLM no me ha funcionado. He probado todas las combinaciones posibles. NPM estaba dando error de autenticación. Fiddler vino al rescate y me salvó el tiempo. Es fácil de instalar y configurar. Poner la regla de Fiddler en Automatically Authenticated.In .npmrc poner estos

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

Me funcionó :)