Vidinis puslapis naršyklėje įrodo tik tai, kad proxy veikia naršyklei, o ne npm ar Maven. Kiekvienas klientas skaito savo konfigūraciją, o tinklas, pasiekiamas tik per VPN, prideda antrą klausimą: ar klientas apskritai pasiekia proxy. Pradėkite nuo būsenos kodo, tada sekite nepavykusio įrankio konfigūracijos grandinę. Todėl vienas klientas veikia, o gretimas ne.

Ką 407 iš tikrųjų įrodo

407 Proxy Authentication Required ateina iš proxy, o ne iš registro ar saugyklos. Klientas pasiekė proxy, o proxy atmetė užklausą, dažniausiai todėl, kad trūko prisijungimo duomenų, jie buvo neteisingos formos arba nepriimti tai paskirčiai.

Laiko limitas pasakoja ką kita: neteisingas proxy adresas, nėra maršruto iki proxy prieš pakeliant tunelį arba trūksta apėjimo įrašo vidiniam hostui. Perskaitykite klaidos tekstą prieš keisdami duomenis.

Patikrinkite hostą, portą, autentifikavimo schemą ir ar vartotojo vardui reikia domeno priešdėlio. Tada pažiūrėkite, ar įrankis skaito reikšmę iš failo, aplinkos kintamojo ar abiejų. Vardas su domenu yra dažna 407 priežastis, kaip ir slaptažodis, išsaugotas su neteisingu kodavimu.

npm skaito savo konfigūracijos grandinę

npm priima raktus proxy ir https-proxy vartotojo ar projekto .npmrc faile. Nurodykite schemą, nes reikšmės yra URL, ir užkoduokite slaptažodžio rezervuotus simbolius, kad at ženklas nepadalytų reikšmės.

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

Su npm config list matote, kuris failas davė kiekvieną veiksmingą reikšmę. Shell eksportas kaip npm_config_proxy gali panaikinti failą, o projekto .npmrc su asmeniniu slaptažodžiu niekada neturėtų būti commitinamas. Išspausdinkite šaltinio kelią kartu su reikšme.

Palikite strict-ssl įjungtą. TLS tikrinantis proxy gali reikalauti įmonės CA pasitikėjimo saugykloje; patikros išjungimas norint apeiti klaidą paslepia tikrąją pasitikėjimo problemą.

Maven atskiria proxy nuo veidrodžių

Maven skaito proxy ir veidrodžius iš vartotojo nustatymų failo, o ne iš projekto pom. Tinklo proxy ir vidinės saugyklos veidrodžius dėkite į ~/.m2/settings.xml, o viešas saugyklų deklaracijas palikite projekte.

Proxy blokui reikia id, aktyvumo vėliavėlės, protokolo, hosto ir porto bei nonProxyHosts įrašo vidinei saugyklai. Laikykite šiuos laukus vartotojo faile, ne pom, kad tinklo pokytis neperrašytų visos komandos buildo.

Pridėkite vidinę saugyklą prie nonProxyHosts, kad Maven jungtųsi tiesiogiai. Be šio įrašo proxy tampa nereikalinga stotele, o gedimas atrodo kaip saugyklos sutrikimas. Veidrodžio įrašas nurodo vidinę saugyklą ir nepakeičia proxy nustatymo.

Kūrėjai, keliaujantys tarp tinklų, gali turėti po vieną nustatymų failą tinklui ir paleidę shell pasirinkti tinkamą kopiją. Rankinis vieno failo taisymas kiekvieno perėjimo metu paverčia veikiantį nešiojamąjį kompiuterį pagalbos užklausa.

VS Code ir dev konteineriai turi skirtingas vardų erdves

VS Code skaito http.proxy iš vartotojo ar darbo srities nustatymų, įskaitant schemą ir portą. Tai apima redaktoriaus užklausas plėtiniams ir marketplace, bet nesukonfigūruoja terminalo ar konteinerio, paleisto iš redaktoriaus. Patikrinkite nustatymo apimtį ir reikšmę. Darbo srities nustatymas gali panaikinti vartotojo nustatymą vienam projektui.

Dev konteineris turi savo tinklo vardų erdvę. Jis nepaveldi hosto proxy kintamųjų ar VPN maršruto, todėl marketplace kvietimas konteineryje gali nepavykti, nors tas pats kvietimas hoste veikia.

Duokite konteineriui tuos kintamuosius arba savo resolverį ir maršrutą. Kai vardai išsprendžiami viduje, bet proxy niekada neatsako, trūksta dažniausiai maršruto, o ne adreso.

Apėjimo sąrašai ir aplinkos prioritetas

Pridėkite VPN šliuzą, vidinius registrus ir privačius DNS galūnius į apėjimo sąrašą. Jei klientas bando pasiekti šliuzą per proxy prieš atsirandant tuneliui, ryšys nutrūksta taip, kad atrodo kaip proxy gedimas. Išbandykite tai su išjungtu tuneliu.

Aplinkos kintamieji ir failai gali nesutarti. Paleiskite įrankio konfigūracijos dump, o ne shell, ir palyginkite reikšmes. Pasikartojantis mažųjų raidžių kintamasis, sena reikšmė tėvinėje shell ar projekto failas gali nusverti ką tik pakeistą nustatymą.

CI perduokite proxy kaip slaptą kintamąjį ir išbandykite vieno paketo diegimą tame pačiame image. 407 konteineryje dažnai reiškia, kad kintamojo ten tiesiog nėra, o hosto shell jį turi.

Užsirašykite proxy hostą, portą, apėjimo galūnius ir failą ar kintamąjį, kuris juos duoda, kiekvienam įrankiui. Kai vienas klientas grąžina 407, o kitas veikia, šis įrašas keturių skirtingų konfigūracijų palyginimą paverčia trumpu patikrinimu.

Susiję straipsniai