Weby sa načítajú cez VPN, ale apt sa k repozitáru nedostane
Prehliadač, ktorý funguje cez VPN, nič nehovorí o nastaveniach proxy pre apt. Prečítajte si zlyhávajúcu fázu, vypíšte efektívnu konfiguráciu a potom nastavte proxy, ktorú apt číta.
VPN sa pripojí, interná wiki sa načíta v prehliadači a apt update stále visí na zrkadle, ku ktorému sa nedostane. Na tom obrázku nie je na tuneli nič pokazené. Prehliadač a správca balíčkov urobili dve samostatné rozhodnutia o proxy, a nakonfigurované bolo len jedno z nich.
Ktoré rozhodnutie zlyhalo, je jediné, čo má zmysel určiť najskôr.
Prečítajte chybu, skôr než sa dotknete nastavenia
Každá fáza zanechá inú správu. Názov, ktorý sa nikdy nevyrieši, je DNS; spojenie, ktoré sa nikdy nedokončí, je routovanie alebo firewall; okamžitá 407 je autentifikácia proxy; sťažnosť na certifikát je overovanie TLS; a varovanie k podpisu sú metadáta repozitára. Tých päť porúch potrebuje päť rôznych opráv a riadok s proxy vložený cez problém s DNS len posunie zaseknutie.
Skopírujte presný riadok a repozitár, ktorý pomenúva, skôr než čokoľvek zmeníte. Vágna spomienka „vypršal časový limit“ je to, čo z desaťminútovej diagnózy urobí celé popoludnie.
APT má vlastné nastavenia proxy
APT číta /etc/apt/apt.conf.d/, hlavný apt.conf a každý súbor uvedený v APT_CONFIG. Nečíta profil proxy z pracovnej plochy, nastavenie siete v GNOME ani rozšírenie prehliadača. Transport však rešpektuje premenné prostredia pre proxy, a preto funkčný export https_proxy=... vo vašom shelli nič nedokazuje o časovači, ktorý beží v inom prostredí.
Vypíšte, čo zlyhávajúci proces skutočne vidí: apt-config dump | grep -i proxy.
Spustite to ako používateľ, pod ktorým beží zlyhávajúca operácia. Ak root číta inú sadu súborov alebo časovač systemd štartuje v inom prostredí, výpis sa bude líšiť, a ten rozdiel je vaša odpoveď. Dve hodnoty proxy, ktoré si odporujú, sú horšie ako jedna chýbajúca, pretože transport nasleduje najkonkrétnejšiu zhodu, ktorú nájde.
Nastavte proxy tam, kde ju vlastník konfigurácie očakáva
Pre explicitnú proxy schválenú správcom stačí malý fragment v novom súbore:
Acquire::http::Proxy "http://proxy.corp.example:3128/";
Acquire::https::Proxy "http://proxy.corp.example:3128/";
Acquire::http::Proxy::archive.example.internal "DIRECT";Tretí riadok je časť, ktorú väčšina príkladov vynecháva. Kľúč pre hostiteľa prepisuje všeobecnú hodnotu, takže interné zrkadlo dostupné cez tunel môže proxy preskočiť, zatiaľ čo všetko ostatné cez ňu stále ide. DIRECT je na to dokumentovaná hodnota, nie prázdny reťazec.
Pridajte fragment ako nový očíslovaný súbor, napríklad /etc/apt/apt.conf.d/95proxy. Prepísanie distribučného súboru znamená, že ďalšia aktualizácia balíčkov vašu zmenu ticho vráti.
Prihlasovacie údaje zostávajú mimo URI
Referenčná dokumentácia transportu APT ukazuje pri autentifikácii na apt_auth.conf a tam patrí používateľské meno a heslo. Vloženie do URI proxy ich dostane do výpisov procesov, do histórie shellu a do každého výpisu konfigurácie vloženého do tiketu. Súbor s autentifikáciou potrebuje obmedzujúce oprávnenia, pretože je úložiskom prihlasovacích údajov.
Skontrolujte aj schému. Repozitár HTTPS sa dá stále dosiahnuť cez proxy HTTP; transport je voľba oddelená od schémy URI zrkadla.
Grafické softvérové centrum je samostatné rozhranie. Ak používa PackageKit alebo backend snap, fragment APT preň nič nemení, takže overte, ktorý proces neúspešnú požiadavku vykonal.
Overte cestu, nie len návratový kód
S fragmentom na mieste sledujte požiadavku, namiesto toho, aby ste verili zelenému výsledku. apt-get -o Debug::Acquire::http=true update vypíše pokus o pripojenie, zvolenú proxy a kód odpovede, čo oddelí nesprávnu proxy od proxy, ktorá vás odmietla.
Potom otestujte prípad, ktorý by fungovať nemal. Odpojte VPN a overte, že interné zrkadlo prestane odpovedať; ak stále sťahuje, niečo smeruje mimo tunela alebo vás obsluhuje zastaraná cache. Overte, že povolená cesta stále overuje TLS a stále kontroluje podpisy repozitára, pretože proxy, ktorá prehliada prevádzku, nie je dôvod vypnúť ani jedno. Overte aj to, že neautentifikovaný klient dostane jasné odmietnutie namiesto tichého časového limitu.
Uchovajte funkčný fragment a zlyhávajúci výstup spoločne v zázname zmien. Ďalší človek, ktorý narazí na rovnaké zaseknutie, rozpozná rozdiel dvoch riadkov rýchlejšie než z akéhokoľvek vysvetlenia.