Те, що внутрішня сторінка відкривається в браузері, доводить лише роботу проксі для браузера, а не для 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, щоб зміна мережі не переписувала збірку всієї команди.

Додайте внутрішнє сховище до nonProxyHosts, щоб Maven підключався напряму. Без цього запису проксі стає зайвою зупинкою, і збій виглядає як недоступність сховища. Запис дзеркала вказує на внутрішнє сховище й не замінює налаштування проксі.

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

VS Code і dev-контейнери мають різні простори імен

VS Code читає http.proxy з налаштувань користувача або робочого простору, включно зі схемою та портом. Це покриває запити редактора до розширень і маркетплейсу, але не налаштовує термінал чи контейнер, запущений із редактора. Перевірте область дії налаштування й значення. Налаштування робочого простору може перекрити користувацьке для одного проєкту.

dev-контейнер має власний мережевий простір імен. Він не успадковує змінні проксі та VPN-маршрут хоста, тому виклик маркетплейсу всередині контейнера може збоїти, тоді як той самий виклик на хості працює.

Дайте контейнеру ці змінні або власний резолвер і маршрут. Коли імена всередині розвязуються, але проксі ніколи не відповідає, зазвичай бракує маршруту, а не адреси.

Списки обходу та пріоритет середовища

Додайте VPN-шлюз, внутрішні реєстри та приватні суфікси DNS до списку обходу. Якщо клієнт намагається дістатися шлюзу через проксі до появи тунелю, зєднання збоїть так, що це схоже на відмову проксі. Перевірте це з опущеним тунелем.

Змінні середовища та файли можуть розходитися. Запустіть власний дамп налаштувань інструмента, а не оболонки, і порівняйте значення. Дубльована змінна малими літерами, старе значення в батьківській оболонці або файл проєкту можуть переважити щойно змінене налаштування.

У CI передайте проксі як секретну змінну й перевірте встановлення одного пакета в тому ж образі. 407 усередині контейнера часто означає, що змінної там просто немає, хоча в оболонці хоста вона є.

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

Схожі статті