Att intranätsidan öppnas i webbläsaren bevisar bara att proxyn fungerar för webbläsaren, inte för npm eller Maven. Varje klient läser sin egen konfiguration, och ett nätverk som bara nås via VPN lägger till en andra fråga: om klienten överhuvudtaget når proxyn. Börja med statuskoden och följ sedan konfigurationskedjan för verktyget som misslyckades. Därför fungerar en klient medan grannen inte gör det.

Vad en 407 faktiskt bevisar

En 407 Proxy Authentication Required kommer från proxyn, inte från registret eller repositoriet. Klienten nådde proxyn och proxyn avvisade begäran, oftast för att inloggningsuppgifter saknades, var felaktigt formaterade eller inte accepterades för det målet.

En tidsgräns berättar något annat: fel proxyadress, ingen väg till proxyn innan tunneln är uppe, eller en undantagspost som saknas för en intern värd. Läs feltexten innan du ändrar inloggningsuppgifterna.

Bekräfta värd, port, autentiseringsmetod och om användarnamnet behöver ett domänprefix. Kontrollera sedan om verktyget läser värdet från en fil, en miljövariabel eller båda. Ett domänkvalificerat användarnamn är en vanlig orsak till 407, liksom ett lösenord sparat med fel kodning.

npm läser sin egen konfigurationskedja

npm accepterar nycklarna proxy och https-proxy i en .npmrc för användaren eller projektet. Ange schemat, eftersom värdena är URL:er, och koda reserverade tecken i lösenordet så att ett at-tecken inte delar värdet.

proxy=http://proxy.example.com:8080
https-proxy=http://proxy.example.com:8080
strict-ssl=true

Med npm config list ser du vilken fil som gav varje effektivt värde. En shell-export som npm_config_proxy kan åsidosätta filen, och en projekt-.npmrc med ett personligt lösenord bör aldrig committas. Skriv ut källsökvägen tillsammans med värdet.

Låt strict-ssl vara påslaget. En proxy som inspekterar TLS kan kräva företagets CA i förtroendelagret; att stänga av verifieringen för att komma runt felet döljer det egentliga förtroendeproblemet.

Maven skiljer proxyservrar från speglar

Maven läser proxyservrar och speglar från användarens inställningsfil, inte från projektets pom. Lägg nätverksspecifika proxyservrar och speglar för det interna repositoriet i ~/.m2/settings.xml, och låt offentliga repositoriedeklarationer stanna i projektet.

Proxyblocket behöver ett id, en aktivitetsflagga, protokollet, värden och porten, samt en nonProxyHosts-post för det interna repositoriet. Håll fälten i användarens inställningsfil, inte i pom, så att en nätverksändring inte skriver om hela teamets build.

Lägg till det interna repositoriet i nonProxyHosts så att Maven ansluter direkt. Utan posten blir proxyn ett onödigt stopp och felet ser ut som ett repositorieavbrott. En spegelpost pekar på det interna repositoriet och ersätter inte proxyinställningen.

Utvecklare som växlar mellan nätverk kan hålla en inställningsfil per nätverk och välja rätt kopia när skalet startar. Att redigera en enda fil för hand vid varje byte gör en fungerande bärbar dator till ett supportärende.

VS Code och dev-containrar har olika namnområden

VS Code läser http.proxy från användar- eller arbetsytans inställningar, inklusive schema och port. Det täcker editorns egna anrop till tillägg och marknadsplatsen, men konfigurerar inte en terminal eller en container som startas från editorn. Kontrollera inställningens omfattning och värdet. En arbetsyteinställning kan åsidosätta användarinställningen för ett projekt.

En dev-container har sitt eget nätverksnamnområde. Den ärver inte värdens proxyvariabler eller VPN-rutt, och därför kan ett anrop till marknadsplatsen misslyckas i containern medan samma anrop fungerar på värden.

Ge containern dessa variabler, eller ge den en egen resolver och rutt. När namn löses upp inuti men proxyn aldrig svarar saknas oftast rutten, inte adressen.

Undantagslistor och miljöns prioritet

Lägg till VPN-gatewayen, interna register och privata DNS-suffix i undantagslistan. Om klienten försöker nå gatewayen via proxyn innan tunneln finns misslyckas anslutningen så att det ser ut som ett proxyavbrott. Testa det med tunneln nere.

Miljövariabler och filer kan vara oense. Kör verktygets egen konfigurationsdump, inte skalets, och jämför värdena. En dubblerad variabel med små bokstäver, ett gammalt värde i ett överordnat skal eller en projektfil kan slå den inställning du just ändrade.

I CI skickar du proxyn som en hemlig variabel och testar installation av ett paket i samma image. En 407 i en container betyder ofta att variabeln helt enkelt saknas där, medan värdens skal har den.

Anteckna proxyvärd, port, undantagssuffix och filen eller variabeln som ger dem för varje verktyg. När en klient returnerar 407 och en annan fungerar gör anteckningen jämförelsen av fyra olika konfigurationer till en kort kontroll.

Relaterade artiklar