VPN-ի հաճախորդի վերագործարկումը միայն ապացուցում է, որ թունելը վերադարձել է։ Այն ոչինչ չի ասում այն փրոքսիի մասին, որին ասվել էր դուրս գալ դրա միջով։ Squid-ը, tinyproxy-ն և մյուս փոխանցողների մեծ մասը պահում են մեկնարկի ժամանակ լուծված տեղական աղբյուրի հասցեն, քանի դեռ ինչ-որ բան ստիպում է նրանց վերաբեռնել։ Երբ վերակապակցումը նոր թունելի հասցե է տալիս, փոխանցողը կա՛մ ձախողվում է յուրաքանչյուր ելքային միացման ժամանակ, կա՛մ սկսում է դուրս գալ ձեր սովորական երթուղով։

Երկրորդ ձախողումը վտանգավորն է՝ թունելը աշխատում է, էջերը բեռնվում են, և միայն ելքի հասցեն է սխալ։

Սկսեք լսողից, ոչ թե թունելից

Խաղի մեջ երեք հասցե կա, և վերակապակցումը տեղափոխում է դրանցից միայն մի քանիսը։ Լսողը այն տեղն է, ուր ցույց է տալիս ձեր բրաուզերը՝ սովորաբար 127.0.0.1 կամ LAN հասցե, և նրան չի հետաքրքրում, որ թունելը փոխվել է։ Ելքային տեղական աղբյուրը այն է, ինչ փոխանցողը խնդրում է միջուկին օգտագործել հաջորդ ցատկը հավաքելիս, և այն կապված է թունելի սարքին։ Հանրային ելքը այն է, ինչ գրանցում է վեբ սերվերը, և այն կարող է լինել մի քանի ցատկ հեռու թարգմանված հասցե։

Հանրային IP-ի որոնումը պատասխանում է միայն վերջին հարցին։ Այն չի կարող ասել, թե որ տեղական հասցեին պետք է կապվի փոխանցողը, քանի որ մեկ հանրային ելք կարող է թաքցնել մի քանի ներքին աղբյուր։ Կարդացեք հասցեն նրանից, ով տիրապետում է միացմանը՝ հաճախորդի կարգավիճակի ելքից, հենց ինտերֆեյսից կամ այն անվանատարածքից, որտեղ ապրում է թունելը։ Առաջին թունելանման անունով ինտերֆեյսը վերցնելը սխալ պատասխան է տալիս հենց որ գոյություն ունի երկրորդ պրոֆիլ։

Կոնտեյների և անվանատարածքների դասավորությունները լուռ կերպով կոտրում են այդ ենթադրությունը։ Մեկ ցանցային անվանատարածքում գտնվող փոխանցողը չի կարող կապվել մյուսում գոյություն ունեցող թունելին, և կոնֆիգուրացիայի խմբագրման ոչ մի քանակություն դա չի ուղղում։

Չորս ստուգում ինչ-որ բան խմբագրելուց առաջ

Անցեք դրանց հերթով։ Առաջին ձախողվող ստուգումը այն տեղն է, որտեղ կանգ եք առնում, քանի որ հաջորդները ենթադրում են, որ նախորդները ճշմարիտ են։

  1. Հաստատեք, որ օգտագործվող թունելը այն պրոֆիլն է, որի շուրջ կառուցվել է փրոքսին, և ոչ թե երկրորդ պրոֆիլ, որը միացել է ինքնուրույն։
  2. Տպեք այն հասցեն, որը ներկայումս այդ սարքի վրա է, և համեմատեք այն աշխատող կոնֆիգուրացիայի հասցեի հետ։
  3. Հարցրեք փոխանցողին, թե որ աղբյուրն է այն լուծել, այլ ոչ թե ինչ է պնդում սկավառակի ֆայլը։
  4. Հաստատեք, որ փոխանցողից եկող երթևեկությունն իսկապես ենթակա է ձեր սպասած երթուղային և հրշեջ-պատի քաղաքականությանը։

Սարքի հասցեն հեշտ է՝ ip -4 addr show dev tun0 տպում է ընթացիկը, իսկ ip -4 route get 1.1.1.1 ցույց է տալիս, թե որ ինտերֆեյսը միջուկը կընտրեր այդ նպատակակետի համար։ Ճշգրիտ հասցեին կապվող փոխանցողը բարձրաձայն ձախողվում է, երբ հասցեն անհետանում է։ Սարքին կապվող կամ լռելյայն աղբյուրին վերադարձող փոխանցողը շարունակում է աշխատել և արտահոսել, և դա է լուռ ելքը։

Համաձայնեցրեք փաստաթղթերը ձեր գործարկած թողարկման հետ, ոչ թե որոնման առաջին արդյունքի հետ։ Squid-ի ելքային հասցեի հրահանգը փաստաթղթավորված է v7 և ավելի վաղ տարբերակների համար, իսկ v8-ի փաստաթղթերը հստակ ասում են, որ հրահանգն այնտեղ հասանելի չէ, ուստի դրա շուրջ կառուցված սկրիպտը չի հաղթահարում այդ սահմանը (տե՛ս Squid tcp_outgoing_address տեղեկագիրքը)։ Ստուգեք հենց արտադրանքի վերլուծիչով, նախքան ինչ-որ բան վերաբեռնելը՝ squid -k parse հաղորդում է սխալների մասին և դուրս է գալիս՝ չդիպչելով աշխատող պրոցեսին։

Համարակալեք յուրաքանչյուր թունել և դեն նետեք հնացած փոխանակումները

Վերակապակցումը հանձնում է, իսկ հանձնումը կարգ է պահանջում։ Նշեք յուրաքանչյուր դիտված միացում հաշվիչով կամ ժամանակադրոշմով, որը մեծանում է յուրաքանչյուր հաջող հաստատման դեպքում, ապա այդ նշանը տարեք թեկնածու կոնֆիգուրացիայի ներսում։ Երբ թեկնածուի նշանը հին է ընթացիկից, դեն նետեք թեկնածուին՝ այն կիրառելու փոխարեն, քանի որ նախորդ թունելի համար գրված դանդաղ թարմացումը հակառակ դեպքում կվերագրի ընթացիկի կարգավորումները։ Միավորեք իրադարձությունների պոռթկումները, որպեսզի տատանվող կապը մեկ անցում տա տասնհինգի փոխարեն։

Կազմակերպեք աշխատանքը չորս քայլով՝ չեղարկեք հին ելքի վիճակը, սպասեք, որ միացման տերը հաղորդի ավարտի մասին, կառուցեք միայն կառավարվող հատվածը, ապա ստուգեք և ակտիվացրեք ծառայության կառավարչի միջոցով։ Ամբողջ ֆայլը երկու հասցեի արժեքներից վերագեներացնելը հենց այն ճանապարհն է, որով լսողի սահմանափակումները, նույնականացումը և նպատակակետի քաղաքականությունը լուռ անհետանում են։ Հարգեք նաև դիտավորյալ կանգը։ Օգնականը, որը շարունակում է հավաքել օգտատիրոջ կողմից անջատված թունելը, սխալ է, ոչ թե կայունություն։

Բաց սոքեթները չեն հետևի նոր հասցեին

Փոխանցողի վերակազմաչափումը ոչինչ չի ասում արդեն հաստատված միացումների մասին։ Կթափվեն դրանք, թե կմեռնեն, կախված է արտադրանքից, ուստի դիտեք վարքը՝ այն ենթադրելու փոխարեն։

Փոխանակումից առաջ բացված սոքեթով մատուցված հարցումը դեռ դուրս է գալիս հին ճանապարհով, նույնիսկ երբ նոր կոնֆիգուրացիան ճիշտ է։ Եթե դա կարևոր է, որոշեք հստակ՝ թույլ տվեք կարճ թափման պատուհան և դադարեցրեք նոր աշխատանք ընդունելը, կամ փակեք հին սոքեթները և ընդունեք սխալները։ Այնուհետև փորձարկեք թարմ միացումով և այդ արդյունքը առանձին պահեք թափման ստուգումից։ Աղբյուրին կապվելը նույնպես անվտանգության սահման չէ։ Երբ երթևեկությունը երբեք չպետք է դիպչի սովորական երթուղուն, պարտադրեք այն նշաններով և հրշեջ-պատի կանոններով՝ ներառյալ DNS-ը և IPv6-ը, որպեսզի ձախողված վերաբեռնումը փրոքսին թողնի բացահայտ անջատված, այլ ոչ թե բաց։

Ապացուցեք նոր ելքը թարմ հարցումով

Կարևորը ակտիվացումից հետո բացված հարցումն է, ոչ ping-ը և ոչ արդեն քեշավորված էջը։ Խնդրեք փրոքսիից իրական URL և կարդացեք հեռավոր կողմի հաղորդած ելքի հասցեն, ապա համեմատեք այն հաճախորդի՝ թունելի մասին իր պատկերացման հետ, երբ մատակարարը մեկը ցուցադրում է։

Վերլուծումը, վերաբեռնումը և հարցումը պահեք առանձին հրամաններ, որպեսզի ձախողումը մատնանշի մեկ քայլ։ Առաջին երկուսը ոչինչ չեն փոխում, երբ ձախողվում են, և հենց դրա համար են աշխատում վերագործարկումից առաջ։

squid -k parse
sudo squid -k reconfigure
curl -x http://127.0.0.1:3128 -sS -o /dev/null -w '%{http_code} %{remote_ip}\n' https://example.com

Եթե վերաբեռնումը ձախողվում է, կանգնեցրեք ծառայությունը և ուղղեք հատվածը՝ հնացած ելքով մատուցող փրոքսին ավելի վատ է, քան կարճ ընդհատումը։ Եթե վերաբեռնումը հաջողվեց, բայց թարմ հարցումը դեռ դուրս է գալիս ինչ-որ անսպասելի տեղ, վերադարձեք երթուղային ստուգմանը՝ հասցեները նորից խմբագրելու փոխարեն։ Գրանցեք թունելի այն սերունդը, որի դեմ ստուգել եք, որպեսզի հաջորդ վերակապակցումը համեմատելու կոնկրետ բան ունենա։

Առնչվող հոդվածներ