Pi کو Wi-Fi سے کیبل پر منتقل کرنا پانچ منٹ کا کام لگتا ہے، اور یہ تب ہی ایسا رہتا ہے جب آپ اس اقدام کو ایک کے بجائے چار الگ سیٹنگز سمجھیں۔ آپ کے کلائنٹ جن اینڈ پوائنٹ نام پر ڈائل کرتے ہیں وہ بالکل ویسا ہی رہ سکتا ہے جبکہ اس کے نیچے کا پتہ بدل جاتا ہے۔ اصل میں ٹوٹنے والی چیز پرانے پتے پر جڑا ہوا لسنر، اب بھی وائرلیس لیز کی طرف اشارہ کرنے والا پورٹ فارورڈ، یا ایسا واپسی راستہ جو اس انٹرفیس سے نکلتا ہے جسے آپ ریٹائر سمجھ چکے تھے۔ یہ رہنما ہر مرحلے پر بحالی کا راستہ کھلا رکھتا ہے، اس لیے ناکام تبدیلی کی قیمت صرف ایک ری بوٹ ہے۔

کچھ بھی نکالنے سے پہلے چار مالکان لکھ لیں

چار سیٹنگز طے کرتی ہیں کہ تبدیلی بچے گی یا نہیں: Pi کا پتہ، OpenVPN کی بائنڈنگ کا پتہ، راؤٹر کا ری ڈائریکٹ ہدف اور وہ راستہ جس سے جوابات گزرتے ہیں۔ کیبل چھونے سے پہلے چاروں لکھ لیں، کیونکہ وائرلیس لیز غائب ہوتے ہی آپ مشین سے پرانی اقدار نہیں پڑھ سکیں گے۔ وائرڈ انٹرفیس وائرلیس پروفائل ورثے میں نہیں لیتا، اور Bookworm پر پتہ NetworkManager میں رہتا ہے جبکہ Bullseye اسے dhcpcd.conf میں رکھتا ہے۔ جس ریزرویشن نے وائرلیس MAC پتہ پن کیا تھا وہ eth0 کے بارے میں کچھ نہیں کہتا۔ نئے پتے کو ایسی نئی تفویض سمجھیں جسے اپنا ثبوت درکار ہے۔

Old wireless lease:   10.42.7.24/24 on wlan0
New wired address:    10.42.7.31/24 on eth0
Client endpoint:      vpn.lab.example:1194/udp

لسنر دوسرا مالک ہے۔ اگر سروس کسی مخصوص بائنڈنگ پتے کے ساتھ شروع ہوئی تھی تو ساکٹ پرانے انٹرفیس کے ساتھ مر جاتا ہے؛ اگر یہ تمام پتے باندھتا ہے تو ساکٹ بچا رہتا ہے اور راؤٹر کا قاعدہ درست کرنے والی واحد چیز رہ جاتا ہے۔

ری ڈائریکٹ ہدف اور واپسی راستہ وہ مالکان ہیں جنہیں لوگ چھوڑ دیتے ہیں۔ جو فارورڈ اب بھی 10.42.7.24 کی طرف اشارہ کرتا ہے وہ آنے والے ہینڈ شیک کو ایسے پتے پر بھیجتا ہے جو Pi کے پاس نہیں، اس لیے کلائنٹ سرور کی جانب ایک بھی لاگ لائن کے بغیر ٹائم آؤٹ ہو جاتے ہیں۔ واپسی راستہ تب اہم ہوتا ہے جب دونوں لنک تھوڑی دیر کے لیے فعال ہوں، کیونکہ Pi اسی انٹرفیس سے جواب دیتا ہے جسے راؤٹنگ ٹیبل ترجیح دیتی ہے، اور یہ ہمیشہ وہی انٹرفیس نہیں ہوتا جس پر پیکٹ آیا تھا۔ نیچے راستے کی تلاش دکھاتی ہے کہ کرنل کون سا ماخذ چنتا ہے۔

نئے پتے پر بھروسہ کرنے سے پہلے اصل ساکٹ پڑھیں

کنفیگریشن فائلیں ارادہ بیان کرتی ہیں اور ساکٹ حقیقت۔ جو کنفیگ آپ کو یاد ہے اس پر بھروسہ کرنے کے بجائے چلتی سروس سے پوچھیں کہ یہ کس سے بندھی ہے۔ OpenVPN 2.6 کا دستی --local کو ایک پتے پر بائنڈنگ کے طور پر بیان کرتا ہے اور نوٹ کرتا ہے کہ اسے چھوڑنے سے ہر انٹرفیس بندھ جاتا ہے۔

sudo systemctl cat openvpn-server@server | grep -n -- '--local'
sudo ss -lunp '( sport = :1194 )'

حالت کے کالم کے بجائے مقامی پتے کا کالم پڑھیں۔ جو سطر 10.42.7.24:1194 دکھاتی ہے اس کا مطلب ہے کہ ساکٹ اسی پتے پر پن ہے جسے آپ ابھی ہٹانے والے ہیں، جبکہ 0.0.0.0:1194 یا *:1194 کا مطلب ہے کہ ڈیمن خود انٹرفیس کی تبدیلی کی پیروی کرے گا۔ اگر پتہ پن ہو تو چلتی ساکٹ کو ہاتھ سے دوبارہ لکھنے کے بجائے پروفائل میں ترمیم کریں اور یونٹ دوبارہ شروع کریں، پھر تصدیق کریں کہ سروس اب بھی اپنی سرٹیفکیٹ اور کلید کی فائلوں تک پہنچتی ہے۔

تبدیلی ایسی ترتیب میں کریں جو آپ کو قابل رسائی رکھے

یہاں ترتیب رفتار سے زیادہ اہم ہے۔ جب وائرلیس ابھی چل رہا ہو تب وائرڈ لنک اوپر لائیں، نیا پتہ اور واپسی راستہ تصدیق کریں، اور اس کے بعد ہی وائرلیس پروفائل ریٹائر کریں۔ یہی ترتیب کام کرنے والا سیشن اس وقت تک کھلا رکھتی ہے جب تک متبادل ثابت نہ ہو جائے۔

ip -br addr show eth0
ip route get 203.0.113.10
nmcli -g ipv4.method,ipv4.addresses con show "Wired connection 1"

پہلا کمانڈ جواب دیتا ہے کہ eth0 کو وہ پتہ ملا یا نہیں جو آپ نے سوچا تھا، اور دوسرا وہ ماخذ پتہ چھاپتا ہے جو کرنل بیرونی منزل کے لیے استعمال کرے گا، اس لیے اسے تبدیلی سے پہلے اور بعد میں چلائیں۔ اگر وہ ماخذ اب بھی وائرلیس پتہ ہے تو وائرڈ لنک ابھی ترجیحی راستہ نہیں اور باہر سے ٹیسٹ کسی ایسی وجہ سے ناکام ہوگا جس کا OpenVPN سے کوئی تعلق نہیں۔ فارورڈ چھونے سے پہلے راؤٹنگ ترجیح درست کریں۔

جب دونوں لنک فعال ہوں تو Pi وائرلیس ڈیفالٹ راستے کو ترجیح دے سکتا ہے کیونکہ وہ پہلے نصب ہوا تھا یا کیونکہ وائرڈ لنک کا میٹرک زیادہ ہے۔ Bookworm پر معاون سیٹنگ کنکشن پر ipv4.route-metric ہے، اور Bullseye پر اس کا متبادل انٹرفیس کے لیے مخصوص metric لائن dhcpcd.conf میں ہے۔ رول بیک راستہ ایک کمانڈ کی دوری پر رکھنے کے لیے وائرلیس لنک بند کرنے کے بجائے اس کی ترجیح کم کریں۔

ٹنل کو باہر سے ثابت کریں، LAN سے نہیں

صوفے سے چلنے والا VPN کنکشن دکھنے سے کم ثابت کرتا ہے۔ LAN کے اندر سے عوامی پتے تک ٹریفک ان hairpin یا انعکاسی قواعد سے گزرتی ہے جنہیں راؤٹر متضاد انداز میں نافذ کرتے ہیں، اس لیے کامیاب LAN ٹیسٹ ٹوٹے ہوئے بیرونی راستے کے ساتھ بھی رہ سکتا ہے۔ قبولیت کے ٹیسٹ کے لیے سیلولر ڈیٹا والا فون یا نیٹ ورک سے باہر کوئی بھی ہوسٹ استعمال کریں۔ LAN کی کوشش کو الگ اختیاری تشخیص کے طور پر رکھیں۔

پھر لاگ اسی ترتیب میں پڑھیں جس میں پیکٹ آتے ہیں۔ بالکل کچھ نہ ہونے کا مطلب ہے کہ ہینڈ شیک کبھی Pi تک نہیں پہنچا، اس لیے ری ڈائریکٹ ہدف یا ہوسٹ فائر وال غلط ہے۔ شروع ہو کر اٹکنے والا ہینڈ شیک چابیاں، سرٹیفکیٹ یا MTU کی طرف اشارہ کرتا ہے۔ مکمل ہو کر گرنے والا سیشن عام طور پر واپسی راستہ یا دوسرا ڈیفالٹ راستہ بتاتا ہے، اور کلائنٹ کی لاگ لائن Initialization Sequence Completed بتاتی ہے کہ ٹنل خود اوپر آ گیا۔

sudo journalctl -u openvpn-server@server -n 40 --no-pager
sudo tcpdump -ni any udp port 1194 -c 20

اگر کلائنٹ دوبارہ کوشش کرتے وقت سرور لاگ میں کچھ نظر نہ آئے تو OpenVPN کنفیگ پڑھنا بند کریں اور ری ڈائریکٹ ہدف پر واپس جائیں۔ کیپچر پہنچنے کے سوال کا جواب سیکنڈوں میں دیتا ہے، اور بغیر جواب آنے والے پیکٹ مسئلے کو راستے تک محدود کر دیتے ہیں۔

ایک قدمی رول بیک رکھیں اور وائرلیس پروفائل ریٹائر کریں

وائرڈ ترتیب ایک ری بوٹ پار نہ کرے تب تک وائرلیس پروفائل نصب رہنے دیں۔ nmcli con show آپ کو درکار پروفائل نام گنواتا ہے، اور مٹایا گیا پروفائل بدترین لمحے میں یادداشت سے دوبارہ بنانا پڑتا ہے۔ انٹرفیس کا نام، پتہ طریقہ اور میٹرک باقی چار اقدار کے ساتھ لکھیں۔ جو رول بیک آپ نوٹ سے ٹائپ کر سکیں وہ اس سے زیادہ قیمتی ہے جسے دوبارہ بنانا پڑے۔

وائرلیس انحصار ریٹائر کرنا ہٹانا نہیں، خصوصیت بدلنا ہے۔ connection.autoconnect no سیٹ کرنے سے اسناد اور پتوں کی تاریخ محفوظ رہتی ہے جبکہ Pi کو اس نیٹ ورک سے دوبارہ جڑنے سے روکا جاتا ہے جہاں سے آپ آئے تھے۔

nmcli con show
sudo nmcli con up "Wired connection 1"
sudo nmcli con mod "previously-used-wifi" connection.autoconnect no

کام مکمل قرار دینے سے پہلے چار باتیں تصدیق کریں: ری ڈائریکٹ ہدف وائرڈ پتے سے میل کھاتا ہے، لسنر ایک ری اسٹارٹ سے بچ گیا، بیرونی کلائنٹ ہینڈ شیک مکمل کرتا ہے، اور ری بوٹ کے بعد بھی Pi وائرڈ پتے پر جواب دیتا ہے۔ ری بوٹ صرف چل رہے کرنل میں موجود تفویض کو پکڑنے کا سب سے سستا طریقہ ہے۔ اگر چاروں میں سے کوئی ناکام ہو تو sudo nmcli con up سے وائرلیس پروفائل دوبارہ اوپر لائیں اور لکھی اقدار کا چلتی اقدار سے موازنہ کریں۔

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