Կլոնը նույնականացվում է, օբյեկտների քանակը հայտնվում է, և հետո րոպեներով ոչինչ չի շարժվում։ Windows-ը հայտնում է VPN-ը որպես միացված, հոսթի անունը լուծվում է, և նույն մեքենայի դիտարկիչը նույն պահոցի էջը բերում է առանց դժվարության։ Այս համադրությունը ցույց է տալիս փաթեթի չափը, ոչ թե հավատարմագրերը, և չափի հարցը պետք է տրվի երկու տեղում, քանի որ WSL2-ն ունի իր Linux ինտերֆեյսը՝ իր MTU-ով։ Մի թիվը պատկանում է ուղու Windows կողմին, մյուսը՝ դիստրիբուտիվին, և միայն VPN ադապտերը կարդալը ուղու կեսը թողնում է չուսումնասիրված։

Երեք ազդանշան առանձնացնում են չափի խնդիրը մյուսներից

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

Այս երեքը միասին հիմնավորում են փաթեթի չափի վարկածը։ DNS ձախողումը, ժամկետանց թոքենը, մերժված SSH բանալին և CONNECT-ը մերժող պրոքսին յուրաքանչյուրն ստեղծում է իր սխալը, և դրանցից ոչ մեկը հաջողությունից հետո կանգառի տեսք չունի։ Նույն պահոցը, տրանսպորտը և ժամանակային պատուհանը փորձարկման ընթացքում պահելն այն է, ինչ համեմատությունը դարձնում է ազնիվ։

Համեմատեք երկու ինտերֆեյսները նախքան որոշելը

Հավաքեք Windows-ի տեսքը և Linux-ի տեսքը նույն սեսիայում, և պահեք պահոցի հասցեն՝ փոխարենը գուշակելու, թե որ ինտերֆեյսն է այն կրում։ Ստորև բերված հրամանը նախ լուծում է նպատակակետը, որպեսզի երթուղու որոնումը նկարագրի այն իրական սերվերը, որի հետ կապվում է կլոնը, և այն կարող է տարբերվել դիտարկիչի ցույց տված անունից։ Գործարկեք երկու կեսերը միմյանց մոտ, քանի որ VPN-ը կարող է փոխել ինտերֆեյսի չափանիշները փորձերի միջև։

netsh interface ipv4 show subinterfaces
wsl -d Ubuntu -- bash -lc 'dest=$(getent ahostsv4 github.com | awk \'NR==1{print $1}\'); ip -br link show; ip route get "$dest"'

Linux-ի կեսը գործարկեք դիստրիբուտիվի ներսում՝ ելքը Windows shell-ում տեղադրելու փոխարեն, քանի որ ինտերֆեյսների անունները և երթուղու ընտրությունը իմաստ ունեն միայն այնտեղ։ Windows shell-ից տեղադրված արդյունքը մեծ վստահությամբ հայտնում է սխալ թվեր։ Գրանցեք սարքը, ընտրված երթուղին և MTU-ն յուրաքանչյուր կողմից նախքան որևէ բան փոխելը։

Որոշեք՝ արդյոք թիվը պետք է ավելի փոքր լինի

Ուղու կրածից ավելի մեծ ինտերֆեյսի MTU-ն ինքնաբերաբար թերություն չէ, քանի որ ուղու MTU-ի հայտնաբերումը հենց դրա համար է։ Ձախողման ռեժիմը ի հայտ է գալիս, երբ հայտնաբերումը ճնշվում է՝ ICMP հաղորդագրությունները զտվում են ինչ-որ տեղ ուղու վրա, ուղարկողը երբեք չի իմանում սահմանը, և մեծ փաթեթները անհետանում են, մինչ փոքրերը անցնում են։ Դա ուղու հատկությունն է, ոչ թե Git-ի։ Սա նաև պատճառն է, թե ինչու փոքր ֆայլը կարող է հաջողվել մի կապում, որտեղ մեծը երբեք չի ավարտվում։

Եթե ապացույցները դա հաստատում են, Linux ինտերֆեյսի ժամանակավոր փոփոխությունը ամենաէժան փորձարկումն է։ Ընտրեք օգտագործելի ուղու չափից ցածր արժեք, գրանցեք նախորդը, և թողեք մնացած ամեն ինչ հաստատուն, որպեսզի համեմատությունն իմաստ ունենա։ Եթե փոխանցումն ավարտվում է փոքր արժեքով, դուք ունեք ախտորոշում, ոչ թե պատահականություն։

ip -br link show dev eth0
sudo ip link set dev eth0 mtu 1380
ip -br link show dev eth0

Որոշեք, թե որտեղ պետք է ապրի կարգավորումը

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

Մեկնարկային կեռիկի առկայությունը կախված է օգտագործվող Windows-ի և WSL-ի տարբերակներից և կարգավորված ցանցային ռեժիմից։ Windows ցանցի հայելավորումը կարող է փոխել, թե ինչպես VPN-ը փոխազդում է դիստրիբուտիվի հետ այնպիսի ձևերով, որոնք ավելի կարևոր են, քան MTU-ի ճշգրտումը, ուստի նույնականացրեք ռեժիմը նախքան դրա համար շրջանցում մշակելը։ Մեկ օպերատորի կամ մեկ VPN պրոֆիլի համար հարմար արժեքը հաջորդի համար լռելյայն չէ։

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

Ստուգեք մաքուր մեկնարկից հետո, ապա հակադարձեք

Փոփոխությունը, որը պահպանվում է միայն մինչև դիստրիբուտիվի վերագործարկումը, ուղղում չէ։ Վերագործարկեք դիստրիբուտիվը, նորից միացրեք VPN-ը և կրկնեք սկզբնական Git գործողությունը, այլ ոչ թե փոխարինիչ, ինչպիսին ping-ն է կամ փոքր HTTP հարցումը։ Ապա հաստատեք, որ նոր սեսիայում ինտերֆեյսը կրում է նախատեսված արժեքը։

ip -br link show dev eth0
ip route get "$(getent ahostsv4 github.com | awk 'NR==1{print $1}')"

Գրանցված սկզբնական արժեքը պահեք փոփոխության կողքին, որպեսզի փորձը կարողանա մաքուր չեղարկվել, և նշեք, թե հասցեների որ ընտանիքն է փորձարկվել, քանի որ IPv4 արդյունքը ոչինչ չի ասում նույն հոսթի IPv6 կապի մասին։ WSL ցանցերի փաստաթղթերը նկարագրում են այն ռեժիմները, որոնք որոշում են, թե ինչպիսին պետք է լինի ուղղումը. MTU թիվն ինքնին տեղական չափում է, ոչ թե առաջարկություն։

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