WireGuard ვერ ქმნის თავის ინტერფეისს: ბირთვი თუ ნებართვა?
ინტერფეისის შექმნა ვერ ხერხდება ჯერ კიდევ პირველივე პარტნიორის ხელის ჩამორთმევამდე. წაიკითხეთ შეცდომა, რომ განასხვავოთ დაკარგული მოდული ნებართვის საზღვრისგან ან ინტერფეისის არსებული მფლობელისგან.
WireGuard ვერ ქმნის თავის ინტერფეისს, ამიტომ არ არის მოწყობილობა კონფიგურაციისთვის, არ არის გასაღები გაცვლისთვის და არ არის ხელის ჩამორთმევა გამართვისთვის. წარუმატებლობა მთლიანად ლოკალურ მანქანაზე რჩება, და შეცდომის ტექსტი ამბობს, ადგილობრივი სტეკის რომელმა ნაწილმა თქვა უარი. მისი სწორად წაკითხვა უფრო სწრაფია, ვიდრე პარტნიორის კონფიგურაციის ხელახლა დაყენება. ფენები განცალკევებადია, და შეტყობინება ასახელებს იმას, ვინც უარი თქვა.
შეცდომა ხდება მანამ, სანამ რომელიმე პარტნიორი ილაპარაკებს
ინტერფეისის შექმნა ბირთვისადმი ერთი netlink მოთხოვნაა wireguard ტიპის მოწყობილობაზე. ბირთვს ან აქვს დრაივერი, რომელსაც ეს ტიპი ესმის, ან არ აქვს, და პასუხი მაშინვე ბრუნდება. ამ ნაბიჯზე არც ერთი პაკეტი არ ტოვებს მანქანას, ამიტომ საბოლოო წერტილების მისამართები და სერვერის გასაღებები მიზეზი ვერ იქნება.
ეს თანმიმდევრობა დიაგნოსტიკისთვის მნიშვნელოვანია. თუ ბრძანებამ არასოდეს შექმნა მოწყობილობა, პრობლემა ვერ იქნება არასწორი საჯარო გასაღები ან დაბლოკილი UDP პორტი. ჯერ ლოკალური შექმნის გზა გაასწორეთ და მხოლოდ ამის შემდეგ შეხედეთ გარეთ.
რომელი იმპლემენტაცია უნდა ფლობდეს მოწყობილობას
ამ მოთხოვნას ორი იმპლემენტაცია შეიძლება პასუხობდეს. ბირთვის შიგნით არსებული მოდული არეგისტრირებს wireguard მოწყობილობის ტიპს, ხოლო მომხმარებლის სივრცეში მომუშავე იმპლემენტაცია, მაგალითად wireguard-go, იმავე ინტერფეისს სხვა მექანიზმით აწვდის. თუ მოდული არ არის, ბირთვი მოთხოვნას უარყოფს მხარდაუჭერელი მოწყობილობის შეცდომით, და გადაწყვეტა ან მოდულის ჩატვირთვაა, ან ხელსაწყოების მომხმარებლის სივრცის იმპლემენტაციაზე მიმართვა.
ვიდრე რომელიმეს აირჩევთ, შეამოწმეთ რა არის რეალურად აქ. პირველი ბრძანება გვიჩვენებს ჩატვირთულია თუ არა მოდული, და მეორე ბირთვს პირდაპირ ეკითხება:
lsmod | grep wireguard
ip link add wgtest0 type wireguard
მეორე ბრძანება ყველაზე მცირე შესაძლო გამრავლებაა: ის ითხოვს მოწყობილობას და მეტს არაფერს. თუ ის ვერ ხერხდება მხარდაუჭერელი ტიპის შეტყობინებით, დაკარგული ნაწილი იმპლემენტაციაა და არა თქვენი კონფიგურაციის ფაილი.
| Error text | What refused | Next step |
|---|---|---|
| Unknown device type or operation not supported | The kernel has no wireguard driver | Load the module or use the userspace implementation |
| Operation not permitted | Missing privilege | Use the service context or grant the capability |
| File exists | The name is already in use | Inspect the owner before touching it |
| No such device in a container | No tunnel device or capability | Add the device and NET_ADMIN to the container |
უფლებები და კონტეინერის საზღვრები
ქსელური მოწყობილობის შექმნა და კონფიგურაცია უფლებას მოითხოვს, ან root-ის რანგში, ან ქსელის მართვის შესაძლებლობით. ჩვეულებრივ მომხმარებლის სესიას ეს არ შეუძლია, და ეს შეზღუდვა თავად დიზაინია და არა დაბრკოლება, რომელიც უნდა ავუაროთ თქვენ მიერ შეუმოწმებელი ინსტალატორის გაშვებით.
კონტეინერის შიგნით საზღვარი ორმაგდება. კონტეინერს სჭირდება წვდომა გვირაბის მოწყობილობაზე და მისი კონფიგურაციის შესაძლებლობა, და დროშები, რომლებიც ამას აძლევენ, იგივეა, რასაც Linux-ის VPN კონტეინერი იყენებს. შეზღუდული სტუმარი, რომელსაც ჩვეულებრივ შეუძლია ვებში დათვალიერება, მაინც ვერ შექმნის ინტერფეისს, რადგან დათვალიერებას ასეთი შესაძლებლობა არ სჭირდება. მიეცით შესაძლებლობა იმ სერვისს, რომელსაც ის სჭირდება, და არა ჰოსტის ყველა სესიას.
გადაჭერით სახელის კონფლიქტი და შემდეგ სცადეთ ხელახლა
უკვე არსებული ინტერფეისი ავტომატურად ნარჩენი არ არის. სხვა მმართველს შეიძლება ეკუთვნოდეს სახელი და ახლა იყენებდეს მას, ამიტომ შეამოწმეთ იგი, სანამ რამეს წაშლით:
ip link show wg0
sudo wg show wg0
თუ მფლობელი აქტიური სერვისია, კონფიგურაცია გაუკეთეთ ამ სერვისს და არ შექმნათ მეორე მოწყობილობა. თუ ის ნამდვილად მოძველებულია, ამოიღეთ იგი იმ ხელსაწყოთი, რომელმაც შექმნა, და შემდეგ ასწიეთ ინტერფეისი დოკუმენტირებული კლიენტით ან ერთეულით, რათა კონფიგურაცია და მოწყობილობა შეთანხმებული დარჩეს.
როცა შექმნა წარმატებით დასრულდება, შემდეგი წარუმატებლობა უფრო გვიანდელ ეტაპს ეკუთვნის, და ერთეული, რომელიც წარუმატებლობას აფიქსირებს მოწყობილობის არსებობის შემდეგ, სხვა პრობლემაა, ვიდრე არასოდეს შექმნილი მოწყობილობა. გამოყავით ეს ორი, სანამ უფლებებს კვლავ შეცვლით.