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

Սխալը տեղի է ունենում նախքան որևէ զուգընկերոջ խոսելը

Ինտերֆեյս ստեղծելը միջուկին ուղղված մեկ netlink հարցում է՝ wireguard տիպի սարքի համար։ Միջուկն ունի այդ տիպը հասկացող դրայվեր, թե չունի, և պատասխանը վերադառնում է անմիջապես։ Այս քայլի ընթացքում ոչ մի փաթեթ չի լքում մեքենան, դրա համար վերջնակետերի հասցեները և սերվերի բանալիները չեն կարող պատճառ լինել։

Այդ հերթականությունը կարևոր է ախտորոշման համար։ Եթե հրամանը երբեք սարք չի ստեղծել, խնդիրը չի կարող սխալ հանրային բանալի կամ արգելափակված UDP պորտ լինել։ Նախ ուղղեք տեղական ստեղծման ուղին և միայն դրանից հետո նայեք դուրս։

Որ իրականացումը պետք է տիրապետի սարքին

Այդ հարցմանը կարող են պատասխանել երկու իրականացում։ Միջուկի ներսում գտնվող մոդուլը գրանցում է wireguard սարքի տիպը, իսկ օգտվողի տարածության իրականացումը, օրինակ wireguard-go-ն, տալիս է նույն ինտերֆեյսը այլ մեխանիզմով։ Եթե մոդուլը բացակայում է, միջուկը մերժում է հարցումը չաջակցվող սարքի սխալով, և լուծումը կա՛մ մոդուլը բեռնելն է, կա՛մ գործիքները օգտվողի տարածության իրականացմանը ուղղելը։

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

lsmod | grep wireguard
ip link add wgtest0 type wireguard

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

Error textWhat refusedNext step
Unknown device type or operation not supportedThe kernel has no wireguard driverLoad the module or use the userspace implementation
Operation not permittedMissing privilegeUse the service context or grant the capability
File existsThe name is already in useInspect the owner before touching it
No such device in a containerNo tunnel device or capabilityAdd the device and NET_ADMIN to the container

Արտոնություններ և կոնտեյների սահմաններ

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

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

Լուծեք անվան բախումը, ապա նորից փորձեք

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

ip link show wg0
sudo wg show wg0

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

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

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