407 иза корпоративног VPN проксија: npm, Maven и VS Code
407 значи да прокси тражи акредитиве, а не да је регистар пао. Подесите npm, Maven, VS Code и контејнере и изузмите интерне хостове.
То што се интерна страница отвара у прегледачу доказује само да прокси ради за прегледач, не за npm или Maven. Сваки клијент чита сопствену конфигурацију, а мрежа доступна само преко VPN-а додаје друго питање: да ли клијент уопште стиже до проксија. Почните од статусног кода па пратите ланац подешавања алата који није успео. Зато један клијент ради, а суседни не.
Шта 407 заиста доказује
407 Proxy Authentication Required долази од проксија, не од регистра или складишта. Клијент је стигао до проксија, а прокси је одбио захтев, обично зато што су акредитиви недостајали, били лоше обликовани или нису прихваћени за то одредиште.
Истек времена говори нешто друго: погрешна адреса проксија, нема руте до проксија пре успостављања тунела или недостаје унос заобилажења за интерни хост. Прочитајте текст грешке пре него што промените акредитиве.
Проверите хост, порт, шему провере идентитета и треба ли корисничком имену префикс домена. Затим проверите да ли алат чита вредност из датотеке, променљиве окружења или оба. Име са доменом је чест узрок 407, као и лозинка сачувана са погрешним кодирањем.
npm чита сопствени ланац подешавања
npm прихвата кључеве proxy и https-proxy у .npmrc корисника или пројекта. Наведите шему јер су вредности URL-ови, а резервисане знакове у лозинки кодирајте као URL да знак at не разбије вредност.
proxy=http://proxy.example.com:8080
https-proxy=http://proxy.example.com:8080
strict-ssl=true
Уз npm config list видите која је датотека дала сваку ефективну вредност. Извоз љуске попут npm_config_proxy може надјачати датотеку, а пројектни .npmrc са личном лозинком никада не сме да се комитује. Испишите путању извора заједно са вредношћу.
Оставите strict-ssl укључен. Прокси који прегледа TLS може захтевати корпоративни CA у складишту поверења; искључивање провере ради заобилажења грешке скрива стварни проблем поверења.
Maven раздваја проксије од огледала
Maven чита проксије и огледала из корисничке датотеке подешавања, не из пројектног pom-а. Мрежне проксије и огледала интерног складишта ставите у ~/.m2/settings.xml, а јавне декларације останите у пројекту.
Блок проксија тражи id, ознаку активности, протокол, хост и порт, те унос nonProxyHosts за интерно складиште. Држите та поља у корисничкој датотеци, не у pom-у, да промена мреже не преписује build целог тима.
Додајте интерно складиште у nonProxyHosts да се Maven повеже директно. Без тог уноса прокси постаје непотребно стајалиште, а квар изгледа као прекид складишта. Унос огледала показује на интерно складиште и не замењује подешавање проксија.
Програмери који прелазе између мрежа могу држати по једну датотеку подешавања за сваку мрежу и изабрати праву копију при покретању љуске. Ручно уређивање једне датотеке при сваком преласку претвара исправан лаптоп у захтев за подршку.
VS Code и dev контејнери имају различите просторе имена
VS Code чита http.proxy из корисничких или радних подешавања, укључујући шему и порт. То покрива захтеве уређивача према проширењима и тржишту, али не подешава терминал ни контејнер покренут из уређивача. Проверите обим подешавања и вредност. Радно подешавање може надјачати корисничко за један пројекат.
Dev контејнер има сопствени мрежни простор имена. Не наслеђује променљиве проксија домаћина ни његову VPN руту, зато позив тржишту унутар контејнера може пасти док исти позив на домаћину ради.
Дајте контејнеру те променљиве или сопствени резолвер и руту. Када се имена унутра разрешавају, али прокси никада не одговара, део који недостаје обично је путања, не адреса.
Листе заобилажења и приоритет окружења
Додајте VPN гејтвеј, интерне регистре и приватне DNS суфиксе на листу заобилажења. Ако клијент покуша да дође до гејтвеја преко проксија пре него што тунел постоји, веза пада тако да изгледа као испад проксија. Тестирајте то са спуштеним тунелом.
Променљиве окружења и датотеке могу се разилазити. Покрените сопствени испис подешавања алата, не љуске, и упоредите вредности. Дублирана променљива малим словима, застарела вредност у надређеној љусци или пројектна датотека могу надјачати подешавање које сте управо изменили.
У CI-ју проследите прокси као тајну променљиву и тестирајте инсталацију једног пакета у истој слици. 407 унутар контејнера често значи да променљива тамо једноставно недостаје, док је љуска домаћина има.
Забележите хост проксија, порт, суфиксе заобилажења и датотеку или променљиву која их даје за сваки алат. Када један клијент враћа 407, а други ради, тај запис претвара поређење четири различите конфигурације у кратку проверу.