Կայքերը բացվում են 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-ը և դեռ ստուգում է պահոցի ստորագրությունները, որովհետև երթևեկությունը ստուգող փրոքսին պատճառ չէ երկուսից ոչ մեկն անջատելու։ Հաստատեք նաև, որ չնույնականացված հաճախորդը ստանում է հստակ մերժում լուռ ժամանակի սպառման փոխարեն։
Պահեք աշխատող բեկորը և ձախողված արտատպումը միասին փոփոխությունների մատյանում։ Հաջորդ մարդը, ով կհանդիպի նույն կախվածությանը, երկու տողի տարբերությունը կճանաչի ցանկացած բացատրությունից ավելի արագ։