VPN-en kobler til, den interne wikien lastes i nettleseren, og apt update henger fortsatt på et speil den ikke når. Ingenting med tunnelen er ødelagt i det bildet. Nettleseren og pakkebehandleren tok to atskilte proxyvalg, og bare ett av dem var konfigurert.

Hvilket valg som feilet, er det eneste som er verdt å fastslå først.

Les feilen før du rører en innstilling

Hvert trinn etterlater en annen melding. Et navn som aldri slås opp, er DNS; en tilkobling som aldri fullføres, er ruting eller en brannmur; en umiddelbar 407 er proxyautentisering; en klage på sertifikatet er TLS-verifisering; og en signaturadvarsel er depotmetadata. De fem feilene trenger fem forskjellige rettelser, og en proxylinje som limes over et DNS-problem flytter bare hengeproblemet.

Kopier den nøyaktige linjen og depotet den nevner før du endrer noe. En vag erindring om «det gikk i timeout» er det som gjør en ti minutters diagnose til en hel ettermiddag.

APT har egne proxyinnstillinger

APT leser /etc/apt/apt.conf.d/, hovedfilen apt.conf og enhver fil som APT_CONFIG navngir. Den leser ikke en proxyprofil fra skrivebordet, en nettverksinnstilling i GNOME eller en nettleserutvidelse. Transporten respekterer likevel proxy-miljøvariabler, og derfor beviser en fungerende export https_proxy=... i skallet ditt ingenting om en timer som kjører i et annet miljø.

Dump det den feilende prosessen faktisk ser: apt-config dump | grep -i proxy.

Kjør det som brukeren den feilende operasjonen kjører som. Hvis root leser et annet sett filer, eller en systemd-timer starter med et annet miljø, vil dumpen avvike, og forskjellen er svaret ditt. To proxyverdier som er uenige er verre enn én manglende verdi, fordi transporten følger det mest spesifikke treffet den finner.

Sett proxyen der eieren av konfigurasjonen forventer den

For en eksplisitt proxy som administratoren har godkjent, er et lite fragment i en ny fil nok:

Acquire::http::Proxy "http://proxy.corp.example:3128/";
Acquire::https::Proxy "http://proxy.corp.example:3128/";
Acquire::http::Proxy::archive.example.internal "DIRECT";

Den tredje linjen er delen de fleste eksempler utelater. En nøkkel per vert overstyrer den generiske verdien, så et internt speil som nås via tunnelen kan hoppe over proxyen mens alt annet fortsatt går gjennom den. DIRECT er den dokumenterte verdien for det, ikke en tom streng.

Legg til fragmentet som en ny nummerert fil, for eksempel /etc/apt/apt.conf.d/95proxy. Å overskrive en distribusjonsfil betyr at neste pakkeoppdatering stille tilbakestiller endringen din.

Påloggingsdetaljer holdes utenfor URI-en

Den referansen for APT-transporten peker på apt_auth.conf for autentisering, og det er der brukernavnet og passordet hører hjemme. Å bygge dem inn i proxy-URI-en plasserer dem i prosesslister, skallhistorikk og hver konfigurasjonsdump som limes inn i en sak. Auth-filen trenger restriktive tillatelser, fordi den er et lager for påloggingsdetaljer.

Kontroller også skjemaet. Et HTTPS-depot kan fortsatt nås gjennom en HTTP-proxy; transporten er et separat valg fra speilets URI-skjema.

Et grafisk programvaresenter er en separat frontend. Bruker det PackageKit eller en snap-backend, endrer APT-fragmentet ingenting for det, så bekreft hvilken prosess som gjorde den feilende forespørselen.

Bekreft veien, ikke bare utgangskoden

Med fragmentet på plass, se på forespørselen i stedet for å stole på et grønt resultat. apt-get -o Debug::Acquire::http=true update skriver ut tilkoblingsforsøket, proxyen den valgte og svarkoden, noe som skiller en feil proxy fra en proxy som avviste deg.

Test deretter tilfellet som ikke skulle virke. Koble fra VPN-en og bekreft at det interne speilet slutter å svare; hvis det fortsatt laster ned, ruter noe utenom tunnelen, eller en utdatert hurtigbuffer betjener deg. Bekreft at den tillatte veien fortsatt verifiserer TLS og fortsatt kontrollerer depotsignaturer, fordi en proxy som inspiserer trafikk ikke er en grunn til å slå av noen av delene. Bekreft også at en uautentisert klient får en tydelig avvisning i stedet for en stille timeout.

Oppbevar det fungerende fragmentet og den feilende utskriften sammen i endringsloggen. Den neste personen som treffer samme hengeproblem, vil kjenne igjen forskjellen på to linjer raskere enn noen forklaring.

Relaterte artikler