VPN-ul se conectează, wiki-ul intern se încarcă în browser, iar apt update rămâne blocat pe o oglindă pe care nu o poate atinge. Nimic din tunel nu este stricat în acea imagine. Browserul și managerul de pachete au luat două decizii de proxy separate, și doar una dintre ele era configurată.

Care decizie a eșuat este singurul lucru care merită stabilit mai întâi.

Citiți eroarea înainte de a atinge o setare

Fiecare etapă lasă un mesaj diferit. Un nume care nu se rezolvă niciodată este DNS, o conexiune care nu se finalizează niciodată este rutare sau un firewall, un 407 imediat este autentificare la proxy, o reclamație despre certificat este verificare TLS, iar un avertisment de semnătură este metadatele depozitului. Acele cinci defecțiuni cer cinci remedieri diferite, iar o linie de proxy lipită peste o problemă de DNS doar mută blocajul.

Copiați linia exactă și depozitul pe care îl numește înainte de a schimba ceva. O amintire vagă de „a expirat” este ce transformă un diagnostic de zece minute într-o după-amiază întreagă.

APT are propriile setări de proxy

APT citește /etc/apt/apt.conf.d/, apt.conf principal și orice fișier numit de APT_CONFIG. Nu citește un profil de proxy al desktopului, o setare de rețea din GNOME sau o extensie de browser. Transportul respectă însă variabilele de mediu pentru proxy, motiv pentru care un export https_proxy=... funcțional în shell-ul dumneavoastră nu dovedește nimic despre un timer care rulează într-un alt mediu.

Afișați ce vede de fapt procesul care eșuează: apt-config dump | grep -i proxy.

Rulați asta ca utilizatorul sub care rulează operațiunea care eșuează. Dacă root citește un alt set de fișiere, sau un timer systemd pornește cu alt mediu, afișarea va diferi, iar diferența este răspunsul dvs. Două valori de proxy care se contrazic sunt mai rele decât o valoare lipsă, pentru că transportul urmează potrivirea cea mai specifică pe care o găsește.

Setați proxy-ul acolo unde proprietarul configurației îl așteaptă

Pentru un proxy explicit aprobat de administrator, un fragment mic într-un fișier nou este suficient:

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

A treia linie este partea pe care majoritatea exemplelor o omit. O cheie per gazdă suprascrie valoarea generică, astfel încât o oglindă internă accesibilă prin tunel poate sări peste proxy în timp ce tot restul trece mai departe prin el. DIRECT este valoarea documentată pentru asta, nu un șir gol.

Adăugați fragmentul ca fișier nou numerotat, de exemplu /etc/apt/apt.conf.d/95proxy. Suprascrierea unui fișier al distribuției înseamnă că următoarea actualizare de pachete vă anulează modificarea în tăcere.

Credențialele rămân în afara URI-ului

Referința pentru transportul APT trimite la apt_auth.conf pentru autentificare, și acolo își au locul numele de utilizator și parola. Includerea lor în URI-ul proxy-ului le pune în listările de procese, în istoricul shell-ului și în fiecare afișare de configurație lipită într-un tichet. Fișierul de autentificare are nevoie de permisiuni restrictive, pentru că este un depozit de credențiale.

Verificați și schema. Un depozit HTTPS poate fi atins în continuare printr-un proxy HTTP; transportul este o alegere separată de schema URI a oglinzii.

Un centru grafic de software este o interfață separată. Dacă folosește PackageKit sau un backend snap, fragmentul APT nu schimbă nimic pentru el, așa că verificați ce proces a făcut cererea eșuată.

Confirmați calea, nu doar codul de ieșire

Cu fragmentul la loc, urmăriți cererea în loc să vă încredeți într-un rezultat verde. apt-get -o Debug::Acquire::http=true update afișează încercarea de conectare, proxy-ul ales și codul de răspuns, ceea ce separă un proxy greșit de un proxy care v-a refuzat.

Apoi testați cazul care nu ar trebui să funcționeze. Deconectați VPN-ul și confirmați că oglinda internă nu mai răspunde; dacă tot descarcă, ceva rutează pe lângă tunel sau un cache vechi vă servește. Confirmați că calea permisă verifică în continuare TLS și verifică în continuare semnăturile depozitului, pentru că un proxy care inspectează traficul nu este un motiv să dezactivați vreuna dintre ele. Confirmați de asemenea că un client neautentificat primește un refuz clar în loc de un timeout tăcut.

Păstrați împreună fragmentul care funcționează și ieșirea care eșuează în registrul de modificări. Următoarea persoană care dă peste același blocaj va recunoaște diferența de două linii mai repede decât orice explicație.

Articole similare