407 za podjetniškim VPN proxyjem: npm, Maven in VS Code
407 pomeni, da proxy zahteva poverilnice, ne da je register padel. Nastavite npm, Maven, VS Code in vsebnike ter izvzemite notranje gostitelje.
Da se intranetna stran odpre v brskalniku, dokazuje le, da proxy deluje za brskalnik, ne za npm ali Maven. Vsak odjemalec bere svojo konfiguracijo, omrežje, dosegljivo le prek VPN, pa doda drugo vprašanje: ali odjemalec sploh doseže proxy. Začnite s kodo stanja in nato sledite konfiguracijski verigi orodja, ki je spodletelo. Zato en odjemalec deluje, sosednji pa ne.
Kaj 407 v resnici dokazuje
407 Proxy Authentication Required prihaja od proxyja, ne od registra ali shrambe. Odjemalec je dosegel proxy in proxy je zahtevo zavrnil, običajno zato, ker so bile poverilnice odsotne, napačno oblikovane ali niso bile sprejete za ta cilj.
Časovna omejitev pripoveduje drugo zgodbo: napačen naslov proxyja, ni poti do proxyja pred vzpostavitvijo tunela ali manjka vnos za obhod za notranji gostitelj. Preberite besedilo napake, preden spremenite poverilnice.
Preverite gostitelja, vrata, shemo preverjanja pristnosti in ali uporabniško ime potrebuje predpono domene. Nato preverite, ali orodje bere vrednost iz datoteke, spremenljivke okolja ali obojega. Ime z domeno je pogost vzrok za 407, prav tako geslo, shranjeno z napačnim kodiranjem.
npm bere svojo konfiguracijsko verigo
npm sprejme ključa proxy in https-proxy v .npmrc uporabnika ali projekta. Navedite shemo, ker so vrednosti URL, in kodirajte rezervirane znake v geslu, da znak at ne razdeli vrednosti.
proxy=http://proxy.example.com:8080
https-proxy=http://proxy.example.com:8080
strict-ssl=true
Z npm config list vidite, katera datoteka je dala vsako dejansko vrednost. Izvoz lupine, kot je npm_config_proxy, lahko preglasi datoteko, projektni .npmrc z osebnim geslom pa se ne sme nikoli commitati. Izpišite pot vira skupaj z vrednostjo.
Pustite strict-ssl vklopljeno. Proxy, ki pregleduje TLS, lahko zahteva podjetniški CA v shrambi zaupanja; izklop preverjanja zaradi obhoda napake skrije resnično težavo zaupanja.
Maven ločuje proxyje od zrcal
Maven bere proxyje in zrcala iz uporabniške datoteke nastavitev, ne iz pom projekta. Omrežne proxyje in zrcala notranje shrambe vstavite v ~/.m2/settings.xml, javne deklaracije shramb pa pustite v projektu.
Blok proxyja potrebuje id, zastavico aktivnosti, protokol, gostitelja in vrata ter vnos nonProxyHosts za notranjo shrambo. Ta polja hranite v uporabniški datoteki, ne v pom, da sprememba omrežja ne prepiše builda celotne ekipe.
Dodajte notranjo shrambo v nonProxyHosts, da se Maven poveže neposredno. Brez tega vnosa proxy postane nepotrebno postajališče in napaka izgleda kot izpad shrambe. Vnos zrcala kaže na notranjo shrambo in ne nadomesti nastavitve proxyja.
Razvijalci, ki prehajajo med omrežji, lahko hranijo eno datoteko nastavitev na omrežje in ob zagonu lupine izberejo pravo kopijo. Ročno urejanje ene datoteke ob vsakem prehodu naredi delujoč prenosnik zahtevek za podporo.
VS Code in dev vsebniki imajo različne imenske prostore
VS Code bere http.proxy iz uporabniških ali delovnih nastavitev, vključno s shemo in vrati. To pokriva zahteve urejevalnika do razširitev in tržnice, ne nastavi pa terminala ali vsebnika, zagnanega iz urejevalnika. Preverite obseg nastavitve in vrednost. Delovna nastavitev lahko preglasi uporabniško za en projekt.
Dev vsebnik ima svoj omrežni imenski prostor. Ne podeduje proxy spremenljivk ali VPN poti gostitelja, zato klic tržnice v vsebniku lahko spodleti, medtem ko isti klic na gostitelju deluje.
Dajte vsebniku te spremenljivke ali lasten resolver in pot. Ko se imena znotraj razrešijo, proxy pa nikoli ne odgovori, običajno manjka pot, ne naslov.
Seznami obhoda in prednost okolja
Dodajte prehod VPN, notranje registre in zasebne pripone DNS na seznam obhoda. Če se odjemalec poskuša prebiti do prehoda prek proxyja, preden tunel obstaja, povezava spodleti tako, da izgleda kot izpad proxyja. Preizkusite to s spuščenim tunelom.
Spremenljivke okolja in datoteke se lahko razhajajo. Zaženite izpis nastavitev orodja, ne lupine, in primerjajte vrednosti. Podvojena spremenljivka z malimi črkami, stara vrednost v nadrejeni lupini ali projektna datoteka lahko preglasijo pravkar spremenjeno nastavitev.
V CI posredujte proxy kot skrivno spremenljivko in preizkusite namestitev enega paketa v isti sliki. 407 v vsebniku pogosto pomeni, da spremenljivke tam preprosto ni, medtem ko jo lupina gostitelja ima.
Zabeležite gostitelja in vrata proxyja, pripone obhoda ter datoteko ali spremenljivko, ki jih daje, za vsako orodje. Ko en odjemalec vrne 407, drugi pa deluje, ta zapis spremeni primerjavo štirih konfiguracij v kratek pregled.