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-ში, ხელის ჩამორთმევის მთვლელი ტრაფიკის შემდეგ იზრდება და გვირაბზე დამოკიდებული აპლიკაცია ნამდვილად პასუხობს. მოძველებული ხელის ჩამორთმევით სიაში მყოფი პირი მარშრუტიზაციის ან გასაღების პრობლემაა და არა მდგრადობის პრობლემა, და ეს განსხვავება ფუჭ კონფიგურაციის ცვლილებას ზოგავს.
ბოლოს შეამოწმეთ, რა აღადგინა გადატვირთვამ. გადატვირთვა, რომელიც თქვენ მიერ განზრახ წაშლილ პირს აცოცხლებს, იგივე ხარვეზია საპირისპირო ნიშნით და, როგორც წესი, ნიშნავს, რომ კონფიგურაციის ძველი ასლი კვლავ სადღაც იტვირთება. ჩაიწერეთ მფლობელი, ფაილის გზა, პირის საჯარო გასაღები და შემოწმების ბრძანებები კონფიგურაციის გვერდით, რათა შემდეგმა ადამიანმა ეს ხელახლა არ აღმოაჩინოს წარმოების ჰოსტის გადატვირთვით.