407 aiz uzņēmuma VPN starpniekservera: npm, Maven un VS Code
407 nozīmē, ka starpniekserveris grib akreditācijas datus, nevis to, ka reģistrs ir nokritis. Iestatiet npm, Maven, VS Code un konteinerus, bet iekšējos resursdatorus izslēdziet.
Iekšējā lapa pārlūkā pierāda tikai to, ka starpniekserveris darbojas pārlūkam, nevis npm vai Maven. Katrs klients lasa savu konfigurāciju, un tīkls, kas pieejams tikai caur VPN, pievieno otru jautājumu: vai klients vispār sasniedz starpniekserveri. Sāciet ar statusa kodu un pēc tam sekojiet neizdevušā rīka konfigurācijas ķēdei. Tāpēc viens klients strādā, bet blakus esošais ne.
Ko 407 patiešām pierāda
407 Proxy Authentication Required nāk no starpniekservera, nevis no reģistra vai krātuves. Klients sasniedza starpniekserveri, un tas noraidīja pieprasījumu, parasti tāpēc, ka akreditācijas dati trūka, bija nepareizā formātā vai netika pieņemti šim mērķim.
Gaidīšanas taimauts stāsta ko citu: nepareiza starpniekservera adrese, nav maršruta līdz tam pirms tuneļa vai trūkst apiešanas ieraksta iekšējam resursdatoram. Izlasiet kļūdas tekstu pirms akreditācijas datu maiņas.
Pārbaudiet resursdatoru, portu, autentifikācijas shēmu un vai lietotājvārdam nepieciešams domēna prefikss. Pēc tam skatiet, vai rīks lasa vērtību no faila, vides mainīgā vai abiem. Vārds ar domēnu ir biežs 407 cēlonis, tāpat kā parole, kas saglabāta ar nepareizu kodējumu.
npm lasa savu konfigurācijas ķēdi
npm pieņem atslēgas proxy un https-proxy lietotāja vai projekta .npmrc failā. Norādiet shēmu, jo vērtības ir URL, un kodējiet paroles rezervētās rakstzīmes, lai at zīme nesadalītu vērtību.
proxy=http://proxy.example.com:8080
https-proxy=http://proxy.example.com:8080
strict-ssl=true
Ar npm config list redzat, kurš fails deva katru efektīvo vērtību. Shell eksports, piemēram, npm_config_proxy, var pārrakstīt failu, un projekta .npmrc ar personisku paroli nekad nav jācommitē. Izdrukājiet avota ceļu kopā ar vērtību.
Atstājiet strict-ssl ieslēgtu. Starpniekserveris, kas pārbauda TLS, var pieprasīt uzņēmuma CA uzticības krātuvē; verifikācijas izslēgšana kļūdas apiešanai slēpj īsto uzticības problēmu.
Maven atdala starpniekserverus no spoguļiem
Maven lasa starpniekserverus un spoguļus no lietotāja iestatījumu faila, nevis no projekta pom. Tīkla starpniekserverus un iekšējās krātuves spoguļus lieciet ~/.m2/settings.xml, bet publiskās krātuves deklarācijas atstājiet projektā.
Starpniekservera blokam vajag id, aktivitātes karodziņu, protokolu, resursdatoru un portu, kā arī nonProxyHosts ierakstu iekšējai krātuvei. Turiet šos laukus lietotāja failā, nevis pom, lai tīkla maiņa nepārrakstītu visas komandas build.
Pievienojiet iekšējo krātuvi nonProxyHosts, lai Maven pieslēgtos tieši. Bez šī ieraksta starpniekserveris kļūst par lieku pieturu, un kļūme izskatās kā krātuves pārtraukums. Spoguļa ieraksts norāda uz iekšējo krātuvi un neaizstāj starpniekservera iestatījumu.
Izstrādātāji, kas pārvietojas starp tīkliem, var turēt vienu iestatījumu failu katram tīklam un palaižot shell izvēlēties pareizo kopiju. Viena faila labošana ar rokām pie katras pārejas pārvērš strādājošu klēpjdatoru atbalsta pieteikumā.
VS Code un dev konteineriem ir atšķirīgas nosaukumvietas
VS Code lasa http.proxy no lietotāja vai darbvietas iestatījumiem, ieskaitot shēmu un portu. Tas aptver redaktora pieprasījumus paplašinājumiem un marketplace, bet nekonfigurē termināli vai no redaktora palaistu konteineru. Pārbaudiet iestatījuma apjomu un vērtību. Darbvietas iestatījums var pārrakstīt lietotāja iestatījumu vienam projektam.
Dev konteineram ir sava tīkla nosaukumvieta. Tas nepārmanto resursdatora starpniekservera mainīgos vai VPN maršrutu, tāpēc marketplace izsaukums konteinerā var neizdoties, kamēr tas pats izsaukums resursdatorā strādā.
Dodiet konteineram šos mainīgos vai savu resolveri un maršrutu. Kad nosaukumi iekšienē tiek atrisināti, bet starpniekserveris nekad neatbild, parasti trūkst maršruta, nevis adreses.
Apiešanas saraksti un vides prioritāte
Pievienojiet VPN vārteju, iekšējos reģistrus un privātos DNS sufiksus apiešanas sarakstam. Ja klients mēģina sasniegt vārteju caur starpniekserveri pirms tuneļa, savienojums neizdodas tā, ka izskatās kā starpniekservera kritums. Pārbaudiet to ar izslēgtu tuneli.
Vides mainīgie un faili var būt pretrunā. Palaidiet rīka konfigurācijas dump, nevis shell, un salīdziniet vērtības. Dublēts mainīgais ar mazajiem burtiem, veca vērtība vecākā shell vai projekta fails var pārspēt tikko mainīto iestatījumu.
CI nododiet starpniekserveri kā slepenu mainīgo un pārbaudiet vienas pakotnes instalēšanu tajā pašā image. 407 konteinerā bieži nozīmē, ka mainīgā tur vienkārši nav, kamēr resursdatora shell to satur.
Pierakstiet starpniekservera resursdatoru, portu, apiešanas sufiksus un failu vai mainīgo, kas tos dod, katram rīkam. Kad viens klients atgriež 407, bet otrs strādā, šis pieraksts četru dažādu konfigurāciju salīdzinājumu pārvērš īsā pārbaudē.