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

თუ მფლობელი აქტიური სერვისია, კონფიგურაცია გაუკეთეთ ამ სერვისს და არ შექმნათ მეორე მოწყობილობა. თუ ის ნამდვილად მოძველებულია, ამოიღეთ იგი იმ ხელსაწყოთი, რომელმაც შექმნა, და შემდეგ ასწიეთ ინტერფეისი დოკუმენტირებული კლიენტით ან ერთეულით, რათა კონფიგურაცია და მოწყობილობა შეთანხმებული დარჩეს.

როცა შექმნა წარმატებით დასრულდება, შემდეგი წარუმატებლობა უფრო გვიანდელ ეტაპს ეკუთვნის, და ერთეული, რომელიც წარუმატებლობას აფიქსირებს მოწყობილობის არსებობის შემდეგ, სხვა პრობლემაა, ვიდრე არასოდეს შექმნილი მოწყობილობა. გამოყავით ეს ორი, სანამ უფლებებს კვლავ შეცვლით.

დაკავშირებული სტატიები