Strony ładują się przez VPN, ale apt nie dociera do repozytorium
Przeglądarka działająca przez VPN nic nie mówi o ustawieniach proxy apt. Odczytaj etap, który zawodzi, zrzuć obowiązującą konfigurację, a potem ustaw proxy, które czyta apt.
VPN się łączy, wewnętrzna wiki wczytuje się w przeglądarce, a apt update nadal wisi na serwerze lustrzanym, do którego nie może dotrzeć. W tym obrazku nic w tunelu nie jest zepsute. Przeglądarka i menedżer pakietów podjęły dwie osobne decyzje o proxy, i tylko jedna z nich została skonfigurowana.
Która decyzja zawiodła, to jedyna rzecz, którą warto ustalić najpierw.
Przeczytaj błąd, zanim dotkniesz ustawienia
Każdy etap zostawia inny komunikat. Nazwa, która nigdy się nie rozwiązuje, to DNS; połączenie, które nigdy się nie kończy, to routing albo zapora; natychmiastowy 407 to uwierzytelnianie proxy; skarga na certyfikat to weryfikacja TLS; a ostrzeżenie o podpisie to metadane repozytorium. Te pięć awarii wymaga pięciu różnych napraw, a linia proxy wklejona na problem DNS tylko przenosi zawieszenie.
Skopiuj dokładną linię i repozytorium, które ona nazywa, zanim cokolwiek zmienisz. Mgliste wspomnienie „przekroczyło czas” jest tym, co zamienia dziesięciominutową diagnozę w całe popołudnie.
APT ma własne ustawienia proxy
APT czyta /etc/apt/apt.conf.d/, główny apt.conf oraz każdy plik wskazany przez APT_CONFIG. Nie czyta profilu proxy pulpitu, ustawienia sieci GNOME ani rozszerzenia przeglądarki. Transport natomiast respektuje zmienne środowiskowe proxy, dlatego działające export https_proxy=... w twojej powłoce niczego nie dowodzi w kwestii timera, który działa w innym środowisku.
Zrzuć to, co faktycznie widzi zawodzący proces: apt-config dump | grep -i proxy.
Uruchom to jako użytkownik, z którego uprawnieniami działa zawodząca operacja. Jeśli root czyta inny zestaw plików albo timer systemd startuje w innym środowisku, zrzut będzie inny, i ta różnica jest twoją odpowiedzią. Dwie sprzeczne wartości proxy są gorsze niż jedna brakująca, bo transport podąża za najbardziej szczegółowym dopasowaniem, jakie znajdzie.
Ustaw proxy tam, gdzie oczekuje go właściciel konfiguracji
Dla jawnie skonfigurowanego proxy zatwierdzonego przez administratora wystarczy mały fragment w nowym pliku:
Acquire::http::Proxy "http://proxy.corp.example:3128/";
Acquire::https::Proxy "http://proxy.corp.example:3128/";
Acquire::http::Proxy::archive.example.internal "DIRECT";Trzecia linia to część, którą większość przykładów pomija. Klucz dla hosta nadpisuje wartość ogólną, więc wewnętrzne lustro osiągalne przez tunel może pominąć proxy, podczas gdy wszystko inne nadal przez nie przechodzi. DIRECT to udokumentowana wartość do tego, a nie pusty łańcuch.
Dodaj fragment jako nowy numerowany plik, na przykład /etc/apt/apt.conf.d/95proxy. Nadpisanie pliku dystrybucji oznacza, że następna aktualizacja pakietów po cichu cofnie twoją zmianę.
Dane uwierzytelniające zostają poza URI
Dokumentacja transportu APT wskazuje apt_auth.conf do uwierzytelniania i tam właśnie należą nazwa użytkownika i hasło. Osadzenie ich w URI proxy umieszcza je w listach procesów, w historii powłoki i w każdym zrzucie konfiguracji wklejonym do zgłoszenia. Plik uwierzytelniania wymaga restrykcyjnych uprawnień, bo jest magazynem danych uwierzytelniających.
Sprawdź też schemat. Repozytorium HTTPS nadal można osiągnąć przez proxy HTTP; transport to wybór niezależny od schematu URI lustra.
Graficzne centrum oprogramowania to osobny interfejs. Jeśli korzysta z PackageKit albo backendu snap, fragment APT niczego dla niego nie zmienia, więc sprawdź, który proces wykonał nieudane żądanie.
Potwierdź ścieżkę, nie tylko kod wyjścia
Mając fragment na miejscu, obserwuj żądanie, zamiast ufać zielonemu wynikowi. apt-get -o Debug::Acquire::http=true update wypisuje próbę połączenia, wybrane proxy i kod odpowiedzi, co odróżnia złe proxy od proxy, które cię odrzuciło.
Potem sprawdź przypadek, który nie powinien działać. Rozłącz VPN i potwierdź, że wewnętrzne lustro przestaje odpowiadać; jeśli nadal pobiera, coś prowadzi ruch poza tunelem albo stary cache cię obsługuje. Potwierdź, że dozwolona ścieżka nadal weryfikuje TLS i nadal sprawdza podpisy repozytorium, bo proxy, które sprawdza ruch, nie jest powodem, by wyłączać jedno albo drugie. Potwierdź też, że nieuwierzytelniony klient dostaje jasną odmowę, a nie cichy limit czasu.
Trzymaj razem działający fragment i nieudane wyjście w rejestrze zmian. Następna osoba, która trafi na to samo zawieszenie, rozpozna różnicę dwóch linii szybciej niż po jakimkolwiek wyjaśnieniu.