WireGuard اپنا انٹرفیس بنانے سے قاصر: کرنل یا اجازت؟
کسی بھی ساتھی کے ہینڈ شیک سے پہلے ہی انٹرفیس بنانا ناکام ہو جاتا ہے۔ غائب ماڈیول کو اجازت کی حد یا موجودہ انٹرفیس کے مالک سے الگ پہچاننے کے لیے خرابی پڑھیں۔
WireGuard اپنا انٹرفیس بنانے میں ناکام ہوتا ہے، اس لیے ترتیب دینے کے لیے کوئی ڈیوائس نہیں، بدلنے کے لیے کوئی کلید نہیں اور ڈیبگ کرنے کے لیے کوئی ہینڈ شیک نہیں۔ ناکامی مکمل طور پر مقامی مشین پر رہتی ہے، اور خرابی کا متن بتاتا ہے کہ مقامی اسٹیک کا کون سا حصہ انکار کر گیا۔ اسے درست پڑھنا ساتھی کی ترتیب دوبارہ نصب کرنے سے تیز ہے۔ تہیں الگ کی جا سکتی ہیں، اور پیغام انکار کرنے والی تہہ کا نام لیتا ہے۔
خرابی کسی بھی ساتھی کے بولنے سے پہلے پیش آتی ہے
انٹرفیس بنانا کرنل کو wireguard قسم کے ڈیوائس کے لیے ایک netlink درخواست ہے۔ کرنل کے پاس اس قسم کو سمجھنے والا ڈرائیور ہے یا نہیں، اور جواب فوراً واپس آتا ہے۔ اس مرحلے میں کوئی پیکٹ مشین سے باہر نہیں جاتا، اس لیے اینڈ پوائنٹ پتے اور سرور کی کلیدیں وجہ نہیں ہو سکتیں۔
یہ ترتیب تشخیص کے لیے اہم ہے۔ اگر کمانڈ نے کبھی ڈیوائس نہیں بنایا، تو مسئلہ غلط عوامی کلید یا بلاک شدہ 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
اگر مالک کوئی فعال سروس ہے، تو دوسرا ڈیوائس بنانے کے بجائے اسی سروس کو ترتیب دیں۔ اگر یہ واقعی پرانا ہے، تو اسے بنانے والے اوزار سے ہٹائیں، اور پھر ترتیب اور ڈیوائس کو ہم آہنگ رکھنے کے لیے دستاویزی کلائنٹ یا یونٹ کے ساتھ انٹرفیس اوپر لائیں۔
بنانا کامیاب ہونے کے بعد، اگلی ناکامی کسی بعد کے مرحلے کی ہے، اور ڈیوائس موجود ہونے کے بعد ناکامی کی اطلاع دینے والا یونٹ کبھی نہ بننے والے ڈیوائس سے مختلف مسئلہ ہے۔ دوبارہ اجازتیں بدلنے سے پہلے دونوں کو الگ کریں۔