Сайти відкриваються через VPN, але apt не доходить до репозиторію
Браузер, що працює через VPN, нічого не каже про налаштування проксі для apt. Прочитайте етап, який збоїть, виведіть чинну конфігурацію, потім задайте проксі, який читає apt.
VPN підключається, внутрішня вікі відкривається в браузері, а apt update досі висить на дзеркалі, до якого не може дістатися. На цій картині в тунелі нічого не зламано. Браузер і менеджер пакунків ухвалили два різні рішення щодо проксі, і налаштовано було лише одне з них.
Яке рішення відмовило — єдине, що варто встановити першим.
Прочитайте помилку, перш ніж торкатися налаштування
Кожен етап залишає своє повідомлення. Ім’я, яке ніколи не розв’язується, — це DNS; з’єднання, яке ніколи не завершується, — це маршрутизація або брандмауер; миттєвий 407 — це автентифікація на проксі; скарга на сертифікат — це перевірка TLS; а попередження про підпис — це метадані репозиторію. Ці п’ять збоїв потребують п’яти різних виправлень, і рядок проксі, вставлений поверх проблеми з DNS, лише переносить зависання.
Скопіюйте точний рядок і репозиторій, який він називає, перш ніж щось змінювати. Невиразний спогад «воно впало за таймаутом» — це те, що перетворює десятихвилинну діагностику на цілий день.
APT тримає власні налаштування проксі
APT читає /etc/apt/apt.conf.d/, основний apt.conf і будь-який файл, названий у APT_CONFIG. Він не читає профіль проксі робочого столу, мережеве налаштування GNOME чи розширення браузера. Транспорт же враховує змінні середовища проксі, тому робочий export https_proxy=... у вашій оболонці нічого не доводить про таймер, який запускається в іншому середовищі.
Виведіть те, що насправді бачить збійний процес: apt-config dump | grep -i proxy.
Запустіть це від імені того користувача, під яким працює збійна операція. Якщо root читає інший набір файлів або таймер systemd стартує в іншому середовищі, вивід відрізнятиметься, і ця різниця і є вашою відповіддю. Два суперечливі значення проксі гірші за одне відсутнє, бо транспорт іде за найконкретнішим збігом, який знаходить.
Задайте проксі там, де його очікує власник конфігурації
Для явного проксі, схваленого адміністратором, достатньо невеликого фрагмента в новому файлі:
Acquire::http::Proxy "http://proxy.corp.example:3128/";
Acquire::https::Proxy "http://proxy.corp.example:3128/";
Acquire::http::Proxy::archive.example.internal "DIRECT";Третій рядок — та частина, яку більшість прикладів оминає. Ключ для окремого хоста перекриває загальне значення, тож внутрішнє дзеркало, доступне через тунель, може обійти проксі, поки все інше далі йде крізь нього. DIRECT — задокументоване значення для цього, а не порожній рядок.
Додайте фрагмент як новий пронумерований файл, наприклад /etc/apt/apt.conf.d/95proxy. Перезапис файлу дистрибутива означає, що наступне оновлення пакунків мовчки скасує вашу зміну.
Облікові дані залишаються поза URI
Довідка транспорту APT для автентифікації вказує на apt_auth.conf, і саме там місце імені користувача та паролю. Якщо вбудувати їх в URI проксі, вони потраплять до списків процесів, до історії оболонки та до кожного дампу конфігурації, вставленого в тікет. Файлу автентифікації потрібні суворі права, бо це сховище облікових даних.
Перевірте і схему. Репозиторій HTTPS досі доступний через проксі HTTP; транспорт — це окремий вибір від схеми URI дзеркала.
Графічний центр програм — окремий інтерфейс. Якщо він використовує PackageKit або бекенд snap, фрагмент APT для нього нічого не змінює, тож уточніть, який процес зробив невдалий запит.
Перевірте шлях, а не лише код виходу
Коли фрагмент на місці, спостерігайте за запитом, а не довіряйте зеленому результату. apt-get -o Debug::Acquire::http=true update виводить спробу з’єднання, обраний проксі та код відповіді, що відділяє неправильний проксі від проксі, який вам відмовив.
Потім перевірте випадок, який не має працювати. Відключіть VPN і переконайтеся, що внутрішнє дзеркало перестає відповідати; якщо воно все ще завантажує, щось маршрутизує в обхід тунелю або вас обслуговує застарілий кеш. Переконайтеся, що дозволений шлях досі перевіряє TLS і досі перевіряє підписи репозиторію, бо проксі, який інспектує трафік, не є причиною вимикати ані те, ані інше. Переконайтеся також, що неавтентифікований клієнт отримує чітку відмову, а не мовчазний таймаут.
Тримайте робочий фрагмент і збійний вивід разом у записі змін. Наступна людина, яка натрапить на те саме зависання, упізнає різницю у два рядки швидше, ніж із будь-якого пояснення.