node.js npm ntlm http-proxy

node.js - NPM detrás del proxy NTLM



http-proxy (8)

  1. Abra su archivo .npmrc en la carpeta C: / users / username / folder con el bloc de notas
  2. Agregue las líneas a continuación ..
  3. Reemplace domain, username, pwd, servername con sus valores correctos
  4. Intenta instalar u obtener paquetes ahora
  5. Si intenta desde Vs2017, cierre y vuelva a abrir VS IDE, entonces solo funciona

    proxy=http://DOMAIN%5CUSERNAME:[email protected]:6050 https-proxy=http://DOMAIN%5CUSERNAME:[email protected]:6050 http-proxy=http://DOMAIN%5CUSERNAME:[email protected]:6050 strict-ssl=false

¿Es posible ejecutar npm install detrás de un proxy HTTP, que usa autenticación NTLM ? En caso afirmativo, ¿cómo puedo configurar la dirección y el puerto del servidor, el nombre de usuario y la contraseña?


CNTLM funcionó para mí como lo sugirió KOL. Gracias KOL por eso. Solo quería agregar que hay algunas rarezas en los proxys individuales debido a que la contraseña puede no ser aceptable cuando se usa cntlm -H simple.

Use cntlm -I -M http://test.com y copie la configuración siguiente después de borrar las configuraciones anteriores y debería haber terminado.

La salida es como

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


CNTLM no funcionó para mí. Intenté todas las combinaciones posibles. NPM estaba dando error de Autenticación. Fiddler vino a rescatarme y me salvó el tiempo. Es fácil de instalar y configurar. Establezca la regla de Fiddler para que se autentique automáticamente. En .npmrc configure 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

Funcionó para mí :)

Otra opción de Fiddler:

Una segunda forma de hacer que Fiddler actúe como un proxy HTTP para NTLM y otros protocolos es dejar las opciones de autenticación automática / reglas predeterminadas en su lugar e ir a esta configuración desde la barra de menú:

Herramientas> Opciones de Telerik Fiddler> pestaña Conexiones

Haga clic en la casilla Permitir que las computadoras remotas se conecten . Verá un diálogo que explica las consecuencias de habilitar esta opción. Reinicie Fiddler y actualice el archivo .npmrc como se muestra arriba. Siempre que necesite npm para acceder al sitio de registro simplemente ejecute Fiddler. Esta configuración no afectará la forma en que Fiddler se ejecuta para otras capturas.


En lugar de ejecutar CNTLM, podría intentar ejecutar Fiddler cuando necesite usar npm. Descubrí que esto funciona en entornos bastante cerrados (por ejemplo, bancos de inversión). También es una herramienta que es bastante fácil de usar (si es necesario) ya que es invaluable para verificar / crear / alterar el tráfico HTTP.

Tuve que hacer esta ruta antes debido al uso de la autenticación de SmartPass, es decir, no teníamos contraseñas en realidad. En esos lugares, la configuración de CNTLM habría sido imposible.


La respuesta de CNTLM estaba funcionando para mí, pero con errores de conexión, npm inutilizable. Los solucioné agregando este encabezado en CNTML.

Header Connection: close


Lo resolví de esta manera (SO: Windows XP SP3):

1. Descargue el instalador CNTLM y ejecútelo.

2. Busque y complete estos campos en cntlm.ini. No complete el campo Password , nunca es una buena idea almacenar contraseñas no encriptadas en archivos de texto.

Username YOUR_USERNAME Domain YOUR_DOMAIN Proxy YOUR_PROXY_IP:PORT Listen 53128

3. Abra la consola y escriba estos comandos para generar hashes de contraseña.

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

4. Copie las tres líneas anteriores en cntlm.ini, debajo de la línea del campo Domain . Una vez más, no complete el campo Password . Guarde cntlm.ini.

5. Abra el Administrador de servicios (desde la línea de comandos: services.msc) e inicie el servicio denominado "Proxy de autenticación CNTLM".

6. En la consola, escriba estas líneas:

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

7. Ahora la npm view , la npm install , etc. deberían funcionar. Ejemplo:

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


Otra alternativa es usar Px para Windows que habla NTLM en su nombre como Cntlm y NTLMAps sin tener que proporcionar sus credenciales. Utiliza las credenciales del usuario registrado a través de SSPI.


Puede pasar las configuraciones como parámetros:

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