407 bak bedrifts-VPN-proxyen: npm, Maven og VS Code
Ein 407 tyder at proxyen vil ha påloggingsinformasjon, ikkje at registeret er nede. Set opp npm, Maven, VS Code og containerar, og unnta interne vertar.
At intranettsida opnar i nettlesaren bevisar berre at proxyen verkar for nettlesaren, ikkje for npm eller Maven. Kvar klient les si eiga konfigurering, og eit nettverk som berre er tilgjengeleg via VPN legg til eit andre spørsmål: om klienten i det heile når proxyen. Byrja med statuskoden og følg deretter konfigurasjonskjeda til verktøyet som feila. Difor verkar éin klient medan naboen feilar.
Kva ein 407 faktisk bevisar
Ein 407 Proxy Authentication Required kjem frå proxyen, ikkje frå registeret eller repositoriet. Klienten nådde proxyen, og proxyen avviste førespurnaden, vanlegvis fordi påloggingsinformasjonen mangla, var feil forma eller ikkje vart godteken for det målet.
Eit tidsavbrot fortel noko anna: feil proxyadresse, inga rute til proxyen før tunnelen er oppe, eller ei omgangsoppføring som manglar for ein intern vert. Les feilteksten før du endrar påloggingsinformasjonen.
Stadfest vert, port, autentiseringsmetode og om brukarnamnet treng eit doméneprefiks. Sjekk deretter om verktøyet les verdien frå ei fil, ein miljøvariabel eller begge. Eit doméne kvalifisert brukarnamn er ei vanleg årsak til 407, og det same er eit passord lagra med feil koding.
npm les si eiga konfigurasjonskjede
npm godtek nøklane proxy og https-proxy i ei .npmrc for brukaren eller prosjektet. Oppgi skjemaet, fordi verdiane er URL-ar, og URL-kod reserverte teikn i passordet slik at ein at-teikn ikkje deler verdien.
proxy=http://proxy.example.com:8080
https-proxy=http://proxy.example.com:8080
strict-ssl=true
Med npm config list ser du kva fil som gav kvar effektiv verdi. Ein shell-eksport som npm_config_proxy kan overstyre fila, og ei prosjekt-.npmrc med eit personleg passord bør aldri committast. Skriv ut kjeldebanen saman med verdien.
Lat strict-ssl vere påslått. Ein proxy som inspiserer TLS kan krevje verksemda sitt CA i tillitslageret; å slå av verifiseringa for å kome forbi feilen skjuler det eigentlege tillitsproblemet.
Maven skil proxyar frå speglar
Maven les proxyar og speglar frå innstillingsfila til brukaren, ikkje frå pom-fila til prosjektet. Legg nettverksspesifikke proxyar og speglar for det interne repositoriet i ~/.m2/settings.xml, og lat offentlege repositoriumserklæringar bli i prosjektet.
Proxyblokka treng ein id, eit aktiv-flagg, protokollen, vert og port, samt ei nonProxyHosts-oppføring for det interne repositoriet. Hald felta i innstillingsfila til brukaren, ikkje i pom, slik at ei nettverksendring ikkje skriv om bygget til heile teamet.
Legg det interne repositoriet til i nonProxyHosts slik at Maven koplar direkte. Utan oppføringa blir proxyen eit unødvendig stopp, og feilen ser ut som eit repositoriebrot. Ei spegloppføring peikar på det interne repositoriet og erstattar ikkje proxyinnstillinga.
Utviklarar som flyttar mellom nettverk, kan halde éi innstillingsfil per nettverk og velje rett kopi når shellen startar. Å redigere éi fil manuelt ved kvar overgang gjer ein fungerande berbar PC til ei støttesak.
VS Code og dev-containerar har ulike namnerom
VS Code les http.proxy frå brukar- eller arbeidsområdeinnstillingar, inkludert skjema og port. Det dekkjer editor sitt eige utvidings- og marknadskall, men konfigurerer ikkje ein terminal eller ein container som startar frå editoren. Kontroller omfanget av innstillinga og verdien. Ei arbeidsområdeinnstilling kan overstyre brukarinnstillinga for eitt prosjekt.
Ein dev-container har sitt eige nettverksnamnerom. Han arvar ikkje proxyvariablane eller VPN-ruta til verten, difor kan eit marknadskall i containeren feile medan det same kallet verkar på verten.
Gje containeren desse variablane, eller gje han eigen resolver og rute. Når namn blir løyste inni, men proxyen aldri svarar, manglar vanlegvis ruta, ikkje adressa.
Omgangslistar og forrang i miljøet
Legg VPN-gatewayen, interne register og private DNS-suffiks til omgangslista. Om klienten prøver å nå gatewayen gjennom proxyen før tunnelen finst, feilar tilkoplinga slik at det ser ut som eit proxybrot. Test det med tunnelen nede.
Miljøvariablar og filer kan vere usamde. Køyr konfigurasjonsdumpen til verktøyet, ikkje den til shellen, og samanlikn verdiane. Ein duplikatvariabel med små bokstavar, ein gamal verdi i ein overordna shell eller ei prosjektfil kan slå innstillinga du nettopp endra.
I CI sender du proxyen som ein hemmeleg variabel og testar éin pakkeinstallasjon i same image. Ein 407 i ein container tyder ofte at variabelen rett og slett manglar der, medan shellen til verten har han.
Noter proxyvert, port, omgangssuffiks og fila eller variabelen som gjev dei, for kvart verktøy. Når éin klient returnerer 407 og ein annan verkar, gjer notatet samanlikninga av fire ulike konfigurasjonar til ein kort sjekk.