Uspješna intranet stranica u pregledniku dokazuje samo da proxy radi za preglednik, ne za npm ili Maven. Svaki klijent čita vlastitu konfiguraciju, a mreža dostupna samo preko VPN-a postavlja drugo pitanje: dolazi li klijent uopće do proxyja. Krenite od statusnog koda pa slijedite konfiguracijski lanac alata koji nije uspio. Zato jedan klijent radi, a susjedni ne.

Što 407 doista dokazuje

407 Proxy Authentication Required dolazi od proxyja, ne od registra ili repozitorija. Klijent je došao do proxyja, a proxy je odbio zahtjev, obično zato što su vjerodajnice nedostajale, bile pogrešno oblikovane ili nisu prihvaćene za to odredište.

Istek vremena govori nešto drugo: pogrešna adresa proxyja, nema rute do proxyja prije uspostave tunela ili nedostaje unos zaobilaženja za interni host. Pročitajte tekst pogreške prije nego promijenite vjerodajnice.

Provjerite host, port, shemu provjere identiteta i treba li korisničkom imenu prefiks domene. Zatim provjerite čita li alat vrijednost iz datoteke, okolne varijable ili oboje. Ime s domenom čest je uzrok 407, kao i lozinka spremljena s pogrešnim kodiranjem.

npm čita vlastiti konfiguracijski lanac

npm prihvaća ključeve proxy i https-proxy u .npmrc korisnika ili projekta. Navedite shemu jer su vrijednosti URL-ovi, a rezervirane znakove u lozinci kodirajte kao URL da znak at ne razbije vrijednost.

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

Uz npm config list vidite koja je datoteka dala svaku efektivnu vrijednost. Izvoz ljuske poput npm_config_proxy može nadjačati datoteku, a projektni .npmrc s osobnom lozinkom nikada se ne smije commitati. Ispišite putanju izvora zajedno s vrijednošću.

Ostavite strict-ssl uključen. Proxy koji pregledava TLS može zahtijevati korporativni CA u spremištu povjerenja; isključivanje provjere da bi se pogreška zaobišla skriva stvarni problem povjerenja.

Maven razdvaja proxyje od zrcala

Maven čita proxyje i zrcala iz korisničke datoteke postavki, ne iz projektnog pom-a. Mrežne proxyje i zrcala internog repozitorija stavite u ~/.m2/settings.xml, a javne deklaracije repozitorija ostavite u projektu.

Blok proxyja traži id, oznaku aktivnosti, protokol, host i port te unos nonProxyHosts za interni repozitorij. Držite ta polja u korisničkoj datoteci postavki, ne u pom-u, da promjena mreže ne prepisuje build cijelog tima.

Dodajte interni repozitorij u nonProxyHosts da se Maven poveže izravno. Bez tog unosa proxy postaje nepotrebno stajalište, a kvar izgleda kao prekid repozitorija. Unos zrcala pokazuje na interni repozitorij i ne zamjenjuje postavku proxyja.

Razvijatelji koji prelaze između mreža mogu držati po jednu datoteku postavki za svaku mrežu i odabrati pravu kopiju pri pokretanju ljuske. Ručno uređivanje jedne datoteke pri svakom prelasku pretvara ispravan laptop u zahtjev za podršku.

VS Code i dev kontejneri imaju različite prostore imena

VS Code čita http.proxy iz korisničkih ili radnih postavki, uključujući shemu i port. To pokriva zahtjeve uređivača prema proširenjima i tržnici, ali ne postavlja terminal ni kontejner pokrenut iz uređivača. Provjerite opseg postavke i vrijednost. Radna postavka može nadjačati korisničku za jedan projekt.

Dev kontejner ima vlastiti mrežni prostor imena. Ne nasljeđuje proxy varijable hosta ni njegovu VPN rutu, zato poziv tržnici unutar kontejnera može pasti dok isti poziv na hostu radi.

Dajte kontejneru te varijable ili vlastiti resolver i rutu. Kada se imena unutra razrješavaju, ali proxy nikad ne odgovara, dio koji nedostaje obično je putanja, ne adresa.

Popisi zaobilaženja i prioritet okoline

Dodajte VPN pristupnik, interne registre i privatne DNS sufikse na popis zaobilaženja. Ako klijent pokuša doći do pristupnika preko proxyja prije nego tunel postoji, veza pada tako da izgleda kao ispad proxyja. Testirajte to sa spuštenim tunelom.

Okolne varijable i datoteke mogu se razilaziti. Pokrenite vlastiti ispis postavki alata, ne ljuske, i usporedite vrijednosti. Duplicirana varijabla malim slovima, zastarjela vrijednost u nadređenoj ljusci ili projektna datoteka mogu nadjačati postavku koju ste upravo uredili.

U CI-ju proslijedite proxy kao tajnu varijablu i testirajte instalaciju jednog paketa u istoj slici. 407 unutar kontejnera često znači da varijabla tamo jednostavno nedostaje, dok je ljuska hosta ima.

Zabilježite host proxyja, port, sufikse zaobilaženja i datoteku ili varijablu koja ih daje za svaki alat. Kada jedan klijent vraća 407, a drugi radi, taj zapis pretvara usporedbu četiriju konfiguracija u kratku provjeru.

Povezani članci