Паспяховая ўнутраная старонка ў браўзеры даказвае, што проксі працуе для браўзера, а не для npm ці Maven. Кожны кліент чытае ўласную канфігурацыю, а сетка, даступная толькі праз VPN, ставіць другое пытанне: ці дасягае кліент проксі наогул. Пачніце з кода стану, затым прайдзіце ланцуг налад інструмента, які збаіў. Таму адзін кліент працуе, а суседні не.

Што насамрэч даказвае 407

Адказ 407 Proxy Authentication Required прыходзіць ад проксі, а не ад рэестра ці рэпазіторыя. Кліент дасягнуў проксі, і проксі адхіліў запыт: звычайна ўліковыя даныя адсутнічаюць, маюць няправільны фармат або не прымаюцца для гэтай мэты.

Таймаўт кажа пра іншае. Магчыма, у кліента няправільны адрас проксі, няма маршруту да проксі да ўзняцця тунеля або няма запісу абыходу для ўнутранага хаста. Прачытайце тэкст памылкі, перш чым мяняць уліковыя даныя.

Праверце хаст проксі, порт, схему аўтэнтыфікацыі і тое, ці патрэбны імені карыстальніка прэфікс дамена. Затым высветліце, ці збойны інструмент чытае значэнне з файла, з пераменнай асяроддзя або з абодвух. Імя з даменам — частая прычына 407. Як і пароль, захаваны ў няправільнай кадаванні.

npm чытае ўласны ланцуг налад

npm прымае ключы proxy і https-proxy у .npmrc на ўзроўні карыстальніка або праекта. Пазначце схему, бо значэнні — гэта 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 праекта, каб змена сеткі не перапісвала зборку ўсёй камандзе. Запіс люстэрка асобны і накіроўвае Maven на ўнутраны рэпазіторый.

Дадайце ўнутраны рэпазіторый у nonProxyHosts, каб Maven звязваўся з ім напрамую. Без гэтага запісу проксі становіцца лішняй прыпынкам, і збой выглядае як адключэнне рэпазіторыя. Запіс люстэрка паказвае на ўнутраны рэпазіторый і не замяняе наладу проксі.

Распрацоўнікі, якія перамяшчаюцца паміж сеткамі, могуць трымаць па файле налад на кожную сетку і выбіраць патрэбную копію пры запуску абалонкі. Ручное рэдагаванне аднаго файла пры кожным пераходзе робіць працоўны ноўтбук заяўкай у падтрымку.

VS Code і dev-кантэйнеры маюць розныя прасторы імён

VS Code чытае http.proxy з налад карыстальніка або працоўнай прасторы, уключаючы схему і порт. Гэта ахоплівае запыты рэдактара да пашырэнняў і крамы, але не наладжвае тэрмінал ці кантэйнер, запушчаны з рэдактара. Праверце як абсяг налады, так і значэнне. Налада працоўнай прасторы можа перакрыць наладу карыстальніка для аднаго праекта.

dev-кантэйнер мае ўласную сеткавую прастору імён. Ён не атрымлівае ў спадчыну пераменныя проксі хаста або яго маршрут VPN, таму выклік крамы ўнутры кантэйнера можа збаіць, хоць той жа выклік на хаспе працуе.

Дайце кантэйнеру гэтыя пераменныя або ўласны рэзалвер і маршрут. Калі імёны ўнутры развязваюцца, але проксі не адказвае, звычайна не хапае менавіта шляху, а не адраса.

Спісы абыходу і прыярытэт асяроддзя

Дадайце шлюз VPN, унутраныя рэестры і прыватныя суфіксы DNS у спіс абыходу. Калі кліент спрабуе дасягнуць шлюза VPN праз проксі да ўзняцця тунеля, злучэнне збаіць так, што выглядае як адключэнне проксі. Праверце гэты абыход пры апушчаным тунелі.

Пераменныя асяроддзя і файлы могуць супярэчыць. Запусціце ўласны дамп налад інструмента, а не абалонкі, і параўнайце значэнні, якія ён паведамляе. Дубляваная пераменная ў ніжнім рэгістры, састарэлае значэнне ў бацькоўскай абалонцы або файл праекта могуць перамагчы толькі што змененую наладу.

У CI перадайце проксі як сакрэтную пераменную і праверце ўсталёўку аднаго пакета ў тым жа вобразе. 407 унутры кантэйнера часта азначае, што пераменнай там проста няма, хаця ў абалонцы хаста яна ёсць.

Запішыце хаст проксі, порт, суфіксы абыходу і файл або пераменную, якая іх падае, для кожнага інструмента. Калі адзін кліент вяртае 407, а другі працуе, гэты запіс ператварае параўнанне чатырох розных канфігурацый у кароткую праверку.

Падобныя артыкулы