Uspješna interna 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: može li klijent uopće doći do proxyja. Počnite s kodom stanja, zatim slijedite lanac postavki alata koji je pao. Zato jedan klijent radi, a susjedni ne.

Što 407 zapravo 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 vjerodajnice nedostaju, imaju pogrešan oblik ili nisu prihvaćene za to odredište.

Istek vremena govori nešto drugo. Klijent možda ima pogrešnu adresu proxyja, nema rutu do proxyja prije uspostave tunela ili mu nedostaje unos zaobilaženja za interni host. Pročitajte tekst greške prije nego promijenite vjerodajnice.

Provjerite host, port, shemu provjere identiteta i treba li korisničkom imenu prefiks domene. Zatim provjerite čita li alat koji pada vrijednost iz datoteke, varijable okoline ili oboje. Ime s domenom čest je uzrok 407. Isto vrijedi za lozinku spremljenu s pogrešnim kodiranjem.

npm čita vlastiti lanac postavki

npm prihvaća ključeve proxy i https-proxy u .npmrc na razini 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

S npm config list vidite koja je datoteka dala svaku efektivnu vrijednost. Izvoz ljuske poput npm_config_proxy može nadjačati datoteku, a .npmrc na razini projekta 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 greška zaobišla skriva stvarni problem povjerenja.

Maven razdvaja proxyje od zrcala

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

Blok proxyja traži id, oznaku aktivnosti, protokol, host i port te unos nonProxyHosts za interni repozitorij. Ta polja držite u korisničkoj datoteci postavki, ne u pom datoteci projekta, da promjena mreže ne prepisuje build cijelom timu. Unos zrcala je odvojen i usmjerava Maven na interni repozitorij.

Dodajte interni repozitorij u nonProxyHosts da bi se Maven s njim povezao izravno. Bez tog unosa proxy postaje nepotrebno stajalište, a kvar izgleda kao prekid rada 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 gateway, interne registre i privatne DNS sufikse na popis zaobilaženja. Ako klijent pokuša doći do VPN gatewaya preko proxyja prije nego tunel postoji, veza pada tako da izgleda kao ispad proxyja. Testirajte to zaobilaženje sa spuštenim tunelom.

Varijable okoline i datoteke mogu se razilaziti. Pokrenite vlastiti dump postavki alata, ne ljuske, i usporedite vrijednosti koje prijavljuje. 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 različitih konfiguracija u kratku provjeru.

Povezani članci