Funkční intranetová stránka v prohlížeči dokazuje jen, že proxy funguje pro prohlížeč, ne pro npm nebo Maven. Každý klient čte vlastní konfiguraci a síť dostupná jen přes VPN přidává druhou otázku: dostane se klient vůbec k proxy. Začněte kódem stavu a sledujte řetěz nastavení nástroje, který selhal. Proto jeden klient funguje a sousední ne.

Co 407 skutečně dokazuje

407 Proxy Authentication Required přichází od proxy, ne od registru či repozitáře. Klient se k proxy dostal a proxy požadavek odmítla, obvykle kvůli chybějícím, špatně tvarovaným nebo pro daný cíl nepřijatým údajům.

Timeout vypráví jiný příběh: špatná adresa proxy, žádná cesta k proxy před postavením tunelu nebo chybějící obejití pro interní host. Přečtěte text chyby, než změníte údaje.

Ověřte hostitele, port, způsob ověření a zda jméno potřebuje předponu domény. Pak zjistěte, zda nástroj čte hodnotu ze souboru, z proměnné prostředí nebo z obojího. Jméno s doménou je častá příčina 407, stejně jako heslo s chybným kódováním.

npm čte vlastní konfigurační řetěz

npm přijímá klíče proxy a https-proxy v .npmrc uživatele nebo projektu. Uveďte schéma, protože jde o URL, a rezervované znaky v hesle kódujte, aby znak at hodnotu nerozdělil.

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

S npm config list zjistíte, který soubor dodal každou hodnotu. Export shellu jako npm_config_proxy může soubor přebít a projektový .npmrc s osobním heslem se nesmí commitovat. Vypište cestu i hodnotu.

Nechte strict-ssl zapnuté. Proxy prohlížející TLS může vyžadovat firemní CA v úložišti důvěry; vypnutí ověření kvůli obejití chyby skryje skutečný problém důvěry.

Maven odděluje proxy od zrcadel

Maven čte proxy a zrcadla z uživatelského souboru nastavení, ne z pom projektu. Síťové proxy a zrcadla interního repozitáře dejte do ~/.m2/settings.xml, veřejná prohlášení nechte v projektu.

Blok proxy potřebuje id, příznak aktivity, protokol, hostitele, port a položku nonProxyHosts pro interní repozitář. Držte je v uživatelském souboru, ne v pom, aby změna sítě nepřepisovala build týmu. Zrcadlo je samostatné a míří na interní repozitář.

Přidejte interní repozitář do nonProxyHosts, aby se Maven připojil přímo. Bez toho je proxy zbytečná zastávka a selhání vypadá jako výpadek repozitáře. Zrcadlo nenahrazuje nastavení proxy.

Kdo střídá sítě, může mít soubor nastavení na síť a při startu shellu vybrat správnou kopii. Ruční úprava jednoho souboru při každém přechodu mění fungující notebook v tiket podpory.

VS Code a dev kontejnery mají různé jmenné prostory

VS Code čte http.proxy z uživatelského či pracovního nastavení včetně schématu a portu. Pokrývá požadavky editoru na rozšíření a marketplace, ale nenastaví terminál ani kontejner z editoru. Zkontrolujte rozsah i hodnotu; pracovní nastavení může přebít uživatelské.

Dev kontejner má vlastní síťový jmenný prostor. Nedědí proxy proměnné ani VPN trasu hostitele, proto volání marketplace v kontejneru může selhat, zatímco na hostiteli funguje.

Dejte kontejneru ty proměnné, nebo vlastní resolver a trasu. Když se jména přeloží, ale proxy neodpovídá, chybí obvykle cesta, ne adresa.

Seznamy obejití a priorita prostředí

Přidejte VPN bránu, interní registry a privátní DNS přípony do seznamu obejití. Pokud se klient snaží dostat k bráně přes proxy před vznikem tunelu, spojení selže jako výpadek proxy. Otestujte to s vypnutým tunelem.

Proměnné prostředí a soubory se mohou rozcházet. Spusťte výpis nastavení nástroje, ne shellu, a porovnejte hodnoty. Duplicitní proměnná malými písmeny, zastaralá hodnota v nadřazeném shellu nebo soubor projektu mohou přebít právě upravené nastavení.

V CI předejte proxy jako tajnou proměnnou a otestujte instalaci balíčku ve stejném image. 407 v kontejneru často znamená, že proměnná tam chybí, zatímco shell hostitele ji má.

Zapište hostitele, port, přípony obejití a soubor či proměnnou, která je dodává, pro každý nástroj. Když jeden klient vrací 407 a jiný funguje, mění se srovnání čtyř konfigurací v krátkou kontrolu.

Související články