زیادہ تر خراب WireGuard کنفیگ قدر میں غلطی نہیں کرتے؛ وہ درست قدر غلط طرف رکھتے ہیں۔ نجی چابی اس مشین کی ہے، peer دوسری مشین کی عوامی چابی اٹھائے ہوئے ہے، اور پتہ interface بلاک میں بیٹھتا ہے حالانکہ یہ بتاتا ہے کہ سرنگ کہاں رہتی ہے۔ فائل کو دو ملتی ہوئی سمتوں کی طرح پڑھیں، پھر دیکھیں کہ مددگار اسکرپٹ نے اوپر کیا اضافہ کیا۔ پروٹوکول میں فائل سے کم فیلڈ ہیں، اور اضافی فیلڈ الگ جاننے کے قابل ہیں۔

interface کی چابیاں اس مشین کو بیان کرتی ہیں

interface بلاک اس سرے کی اپنی شناخت رکھتا ہے۔ PrivateKey وہی شناخت ہے اور کبھی میزبان نہیں چھوڑتی؛ اسی سے متعلقہ عوامی چابی اخذ ہوتی ہے اور دوسرے peers اسی کو فہرست کرتے ہیں۔ ListenPort وہ جگہ ہے جہاں یہ طرف handshake وصول کرتی ہے، اس لیے ایک پتے کے پیچھے دو کلائنٹس کو الگ پورٹ درکار ہیں۔

Address وہ سرنگ کا پتہ ہے جس پر یہ میزبان جواب دیتا ہے، prefix لمبائی کے ساتھ لکھا گیا کیونکہ یہ وہی ماخذ بھی ہے جو استعمال کرے گا۔ یہاں prefix غلط ہونے سے بدلتا ہے کہ میزبان کن منزلوں کو براہ راست جڑا سمجھتا ہے، اور یہ کنفیگ کی نہیں بلکہ روٹنگ جیسی نظر آنے والی خرابیوں کو جنم دیتا ہے۔

اصل کلائنٹ والے [Interface] بلاک میں باقی سب عام طور پر wg-quick شامل کرتا ہے: DNS، MTU، Table، اور hook لائنیں۔ یہ پروٹوکول فیلڈ نہیں ہیں، اور ننگا wg سیٹ اپ ان سب کو مکمل نظر انداز کرتا ہے۔

ہر peer اندراج دوسری ایک طرف بیان کرتا ہے

[Peer] بلاک دور والا فریق ہے۔ PublicKey اسی فریق کی اخذ شدہ چابی ہے، کبھی ان کی نجی چابی نہیں، اور PresharedKey ایک اختیاری اضافی راز ہے جسے دونوں فریقوں کو یکساں رکھنا ہوتا ہے۔ Endpoint یہ ہے کہ کہاں بھیجنا ہے، اور PersistentKeepalive اس میزبان سے کہتا ہے کہ وقفے کے بعد پیکٹ بھیجے جب اور کچھ باہر نہ جا رہا ہو۔

یہاں کی زیادہ تر الجھن دو غلطیاں بیان کرتی ہیں۔ اپنی نجی چابی کو peer بلاک میں نقل کرنے سے دونوں سرے ایک شناخت سانجھے کرنے لگتے ہیں، اور handshake ایسے ناکام ہوتا ہے جس کا لاگ برا بنتا ہے۔ Endpoint کو کلائنٹ پر چھوڑ دینا عام طور پر جان بوجھ کر ہوتا ہے، کیونکہ سرور پتہ آنے والے handshake سے سیکھتا ہے؛ جس سرور کو شروع کرنا ہے اس پر اسے چھوڑ دینا ایسا نہیں ہے۔ یہ بھی یاد رکھیں کہ keepalive ایک NAT نقشہ کھلا رکھتا ہے، اور یہ تھروپٹ نہیں بڑھاتا نہ تاخیر کم کرتا ہے، اس لیے جب ٹریفک پہلے سے بہہ رہا ہو تو تیس سیکنڈ کے اضافی پیکٹ کچھ نہیں خریدتے۔

AllowedIPs روٹنگ ہے، اجازت کی فہرست نہیں

AllowedIPs WireGuard کی کرپٹو چابی روٹنگ ہے۔ باہر جاتے وقت، یہ منزل کی بنیاد پر فیصلہ کرتی ہے کہ کون سا peer پیکٹ لے گا۔ اندر آتے وقت، یہ ماخذ کی بنیاد پر فیصلہ کرتی ہے کہ اس peer سے آنے والا پیکٹ قبول ہوگا یا نہیں۔ ایک ہی فیلڈ دونوں کام کرتی ہے، اسی لیے یہ نہ رسائی کنٹرول فہرست ہے نہ اجازت شدہ ویب سائٹس کی فہرست۔

تنگ AllowedIPs سرور پر کلائنٹ کے لیے مطلب یہ ہے کہ سرور صرف وہی پیکٹ قبول کرے گا جو ان ماخذوں کا دعویٰ کریں، اور صرف وہی منزلیں اس کلائنٹ کو بھیجے گا۔ ایک طرف کو دوسری طرف بڑھائے بغیر بڑھائیں، تو آپ کو ایسی سرنگ ملے گی جو اوپر آتی ہے اور کچھ نہیں گزارتی۔

wg-quick پروٹوکول کے گرد کیا اضافہ کرتا ہے

wg-quick وہی فائل پڑھتا ہے اور وہ نیٹ ورک مراحل کرتا ہے جو پروٹوکول آپریٹنگ سسٹم پر چھوڑتا ہے۔ یہ interface کا پتہ تفویض کرتا ہے، AllowedIPs سے اخذ شدہ راستے شامل کرتا ہے، resolver کی ترتیبات لکھتا ہے اور hook کمانڈز ترتیب سے چلاتا ہے۔

وہ تہہ کلاسیکی عدم توازن بیان کرتی ہے۔ 0.0.0.0/0 اور DNS لائن والی فائل کلائنٹ کو طے شدہ راستہ اور resolver دیتی ہے، اور سرور کے forwarding یا NAT قواعد پر کچھ بھی نہیں کرتی۔ وہ سرور کی اپنی کنفیگ کے ہیں، اور کوئی کلائنٹ فائل وہ فراہم نہیں کر سکتی۔

فائل کا ایک ہی مالک رکھیں۔ SaveConfig فعال ہونے کے دوران اسے ہاتھ سے تدوین کرنا مطلب ہے کہ اگلی بار interface نیچے آئے تو آپ کی تدوین غائب ہو جائے گی، اور interface آپ کو نہیں بتائے گا کہ ایسا ہوا۔

فائل نہیں، لاگو شدہ حالت دیکھیں

فائل ایک ارادہ ہے۔ لاگو شدہ حالت وہ ہے جو کرنل رکھتا ہے، اور جب بھی کوئی مددگار، drop-in یا hook نے فعال ہونے کے بعد کچھ تدوین کیا، دونوں الگ ہو جاتے ہیں۔

زندہ حالت اور پتہ بندی ایک ساتھ پڑھیں، پھر دونوں کا موازنہ اس سے کریں جو آپ نے لکھا:

sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.conf

اگر peer فہرست خالی ہے تو interface اس کی کنفیگ لاگو کیے بغیر بنایا گیا۔ اگر پتے اور راستے موجود ہیں مگر کاؤنٹر صفر پر رکے ہیں تو فائل لوڈ ہوئی اور handshake ناکام ہو رہا ہے، یہ حصوں کی ترتیب کی نہیں بلکہ چابی یا سرے کی مسئلہ ہے۔ تدوین سے پہلے دونوں مناظر کا موازنہ کریں، کیونکہ ان کے درمیان فرق ہی عام طور پر اصل خرابی ہے۔

متعلقہ مضامین