WireGuard-ի զուգընկերը կորչում է վերագործարկումից հետո — գտեք իրական կարգավորումը
wg set-ով ավելացված զուգընկերը աշխատում է մինչև հաջորդ վերագործարկումը, որովհետև ինտերֆեյսը վերակառուցվում է ֆայլից կամ պրոֆիլից, որը դուք երբեք չեք խմբագրել։ Նախ գտեք սեփականատիրոջը։
wg set-ով ավելացրած ձեր զուգընկերը պատասխանում է ping-երին ամբողջ կեսօրը և անհետանում է վերագործարկումից հետո։ Ոչինչ չի վնասվել՝ միջուկը երբեք այդ զուգընկերոջը ոչ մի տեղ չի պահել, բացի կենդանի ինտերֆեյսից, և այն ամենը, ինչ վերագործարկման պահին նորից ստեղծում է ինտերֆեյսը, կառուցել է այն ֆայլից, որին դուք չեք դիպչել։ Ուղղումը ևս մեկ wg set չէ։ Պետք է պարզել, թե որ բաղադրիչն է տիրում ինտերֆեյսին, խմբագրել այդ բաղադրիչի վիճակը և հետո ապացուցել, որ զուգընկերը վերապրում է հենց այն կենսացիկլի իրադարձությունը, որը հեռացրել էր նրան։
Վերարտադրեք այն մեկ անգամ՝ դիտավորյալ
Չուղղեք վերագործարկման խնդիրը, քանի դեռ չեք տեսել այն տեղի ունենալիս։ Եթե հասանելի է կոնսոլի կամ արտաքին մուտք, գրանցեք զուգընկերների ցանկը, վերագործարկեք ինտերֆեյսին տիրող ծառայության միջոցով և համեմատեք։ Եթե զուգընկերը դեռ այնտեղ է, ձեր փոփոխությունն արդեն հասել է մշտական վիճակին, և դուք վրիպազերծում եք սխալ իրադարձությունը։
Այդ ընթացքում գրեք երեք փաստ՝ ինտերֆեյսի անունը, այն գործարկած unit-ը կամ պրոֆիլը, և արդյոք վերակայվել է վերապրած զուգընկերոջ ձեռքսեղմման հաշվիչը։ Վերակայված հաշվիչը նշանակում է, որ ինտերֆեյսը ոչնչացվել և նորից ստեղծվել է, իսկ անփոփոխ հաշվիչը բացակայող զուգընկերոջ հետ նշանակում է, որ ինչ-որ բան խմբագրել է կարգավորումը ձեր ոտքերի տակ։
Ո՞վ է տիրում ինտերֆեյսին։
WireGuard-ն ինքը չունի դեմոն և կարգավորման ֆայլ։ Ինչ-որ բան նրա վերևում գործարկման պահին կանչում է wg, և այդ ինչ-որ բանն է ճշմարտության աղբյուրը։ Սովորական թեկնածուներն են [email protected], NetworkManager-ի միացման պրոֆիլը, դիստրիբուցիային հատուկ ցանցային unit-ը կամ կառավարման պանելը, որը գրում է իր սեփական տվյալների բազան։
Հարցրեք համակարգին, ոչ թե ձեր դիստրիբուցիայի փաստաթղթերին։ systemctl status wg-quick@wg0-ը և nmcli connection show-ը սովորաբար լուծում են հարցը յուրաքանչյուրը մեկ հրամանով։ Եթե երկուսն էլ հավակնում են ինտերֆեյսին, դուք սխալը գտել եք ցանկացած խմբագրումից առաջ՝ երկու սեփականատեր վերաշարադրում են նույն սարքը յուրաքանչյուր գործարկման պահին, և հաղթում է վերջին գործողը։
systemctl status wg-quick@wg0 --no-pager
grep -R "Address\|SaveConfig\|PostUp" /etc/wireguard/wg0.conf
nmcli -g NAME,TYPE connection show
wg show wg0 peersԱշխատանքային և գործարկման վիճակները նույն ֆայլը չեն
wg set-ը կառավարում է կենդանի սարքը netlink-ի միջոցով։ Այն չի գրում /etc/wireguard/wg0.conf-ը, NetworkManager-ի պրոֆիլը կամ պանելի տվյալների բազան։ Հաջորդ հաջող wg show-ը ապացուցում է, որ միջուկն ընդունել է զուգընկերոջը, այլ ոչ թե ինչ-որ բան կվերականգնի նրան։
Կա երկրորդ ծուղակը հակառակ ուղղությամբ։ wg-quick-ի SaveConfig ընտրանքը ինտերֆեյսն իջեցնելիս վերագրում է ինտերֆեյսի ընթացիկ վիճակը կարգավորման ֆայլում։ Երբ այն միացված է, ինտերֆեյսի աշխատանքի ընթացքում ֆայլում արված փոփոխությունը կարող է ծածկվել հաջորդ անջատմամբ, և դուք կերդվեք, թե տողը այնտեղ էր։ Եթե զուգընկերը շարունակ վերադառնում է, ֆայլը կարդացեք կանգից հետո, ոչ թե առաջ։
NetworkManager-ն էլի այլ կերպ է վարվում՝ պրոֆիլը նրանն է, և նա կիրառում է այն ակտիվացման պահին, ուստի գործող NetworkManager-ի միացման կողքին ձեռքով խմբագրված .conf-ը միայն զարդարանք է։ Ընտրեք ինտերֆեյսի մեկ սեփականատեր և թույլ տվեք մյուս կառավարչին այն հանգիստ թողնել։
Հոգացեք, որ փոփոխությունը հասնի երկու տեղերն էլ
Նախ խմբագրեք մշտական վիճակը, հետո թույլ տվեք սեփականատիրոջը կիրառել այն, ապա ստուգեք կենդանի վիճակը։ Այդ հերթականությունը նշանակում է, որ ցանկացած քայլի ձախողումը մատնանշում է մեկ բանի, ոչ թե երեքի։
# 1. persistent state (wg-quick owner)
sudo vi /etc/wireguard/wg0.conf
# 2. apply through the owner, not by hand
sudo systemctl restart wg-quick@wg0
# 3. verify runtime matches the file
sudo wg show wg0
sudo wg showconf wg0wg showconf-ը տպում է կենդանի կարգավորումը նույն շարահյուսությամբ, որն օգտագործում է ֆայլը, ինչը դարձնում է դրանք ուղիղ համեմատելի։ Վերաբերվեք այդ արտածմանը որպես գաղտնիքի՝ այն պարունակում է մասնավոր բանալիներ, ուստի մի տեղադրեք այն տոմսի կամ զրույցի ալիքում։ Համեմատեք զուգընկերների հանրային բանալիները և թույլատրված IP-ները, և ստուգեք, որ դիտավորյալ հեռացրած զուգընկերը չի վերադարձել։
Ապացուցեք, որ այն վերապրում է կենսացիկլի իրադարձությունը
Երկրորդ անգամ վերագործարկեք սեփականատիրոջ միջոցով, ապա հաստատեք երեք առանձին բան՝ զուգընկերը հայտնվում է wg show-ում, ձեռքսեղմման հաշվիչը մեծանում է տրաֆիկից հետո, և թունելից կախված հավելվածն իրականում պատասխանում է։ Հնացած ձեռքսեղմումով ցանկում եղած զուգընկերը երթուղավորման կամ բանալու խնդիր է, ոչ թե կայունության խնդիր, և այդ տարբերությունը խնայում է անիմաստ կարգավորման խմբագրում։
Վերջապես ստուգեք, թե ինչ վերականգնեց վերագործարկումը։ Վերագործարկումը, որը վերակենդանացնում է ձեր դիտավորյալ հեռացրած զուգընկերոջը, նույն սխալն է հակառակ նշանով, և սովորաբար նշանակում է, որ կարգավորման հին պատճենը դեռ բեռնվում է ինչ-որ տեղից։ Գրանցեք սեփականատիրոջը, ֆայլի ուղին, զուգընկերոջ հանրային բանալին և ստուգման հրամանները կարգավորման կողքին, որպեսզի հաջորդ մարդը նորից չհայտնաբերի դա՝ վերագործարկելով արտադրական սերվերը։