up اسکرپٹ چلتا ہے، صفر کے ساتھ باہر نکلتا ہے، اور اس کے اندر کا کام ٹرمینل سے دو سیکنڈ بعد بہترین طور پر کام کرنے والی نجی سروس تک نہیں پہنچ پاتا۔ فطرت وقت کو دیکھتی ہے، اور عام مرمت سلیپ ہے، جو دوڑ کو سمجھے بغیر چھپا دیتا ہے۔ زیادہ مفید پڑھائی یہ ہے کہ “up” ایک ہک کا نام ہے، تیاری کی ضمانت نہیں۔ یہ ٹنل ڈیوائس کنفیگر ہونے پر فعال ہوتا ہے، جو راستوں، DNS اور ٹنل کے پیچھے کسی بھی ایپلیکیشن سے پہلے ہے۔

شیل ٹیسٹ کامیاب ہوا کیونکہ یہ سب کچھ ٹھہرنے کے بعد چلا۔ ہک ایک مخصوص لمحے پر چلا۔

آغاز کی ترتیب میں up کہاں ہے

OpenVPN ٹنل ڈیوائس کو کنفیگر کرتا ہے اور پھر up ہک چلاتا ہے۔ روٹ کی تنصیب بعد کا مرحلہ ہے، اور اس کا اپنا ہک ہے، اسی لیے up میں رکھا گیا راستے پر منحصر کام ایسا ڈیوائس دیکھ سکتا ہے جس کے پاس کوئی مفید راستہ نہ ہو۔ راستوں کا کام route-up میں رکھیں، اور وقت کا مسئلہ عام طور پر ختم ہو جاتا ہے۔

دستاویز اس ترتیب اور ہر ہک کو ملنے والے ماحول کو ریکارڈ کرتی ہے۔ یہی ترتیب “میرے شیل سے کام کرتا ہے” والی کلاسیکی رپورٹ کی مکمل وضاحت ہے، اور یہی وجہ ہے کہ ایک ہی اسکرپٹ ایک مشین پر کامیاب اور سست روٹ مرحلے والی دوسری مشین پر ناکام ہو سکتا ہے۔ دونوں نتائج میں سے کوئی بھی اسکرپٹ کے معیار کے بارے میں کچھ نہیں کہتا۔

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

ہک واقعی کیا وراثت میں لیتا ہے

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

یہ ایسے کاموں کے لیے اہم ہے جو نیٹ ورکنگ جیسے لگتے ہیں لیکن صارف کے سیاق پر منحصر ہیں: صارف کی اسناد کے ساتھ شیئر ماؤنٹ کرنا، فی صارف پراکسی سیٹ کرنا، یا پرنٹر کنفیگر کرنا۔ مراعات یافتہ ٹنل ہک ان کے لیے غلط جگہ ہے، اور کتنا بھی انتظار کیا جائے، غائب سیشن ٹھیک نہیں ہوتا۔

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

سلیپ شامل کرنا تیاری کی جانچ کیوں نہیں ہے

سلیپ اسکرپٹ کو تاخیر میں ڈالتا ہے اور مقابلے کی کھڑکی کو سرکاتا ہے۔ تیز دن کام کامیاب ہوتا ہے؛ سست دن یہ دوبارہ ناکام ہوتا ہے، اور ناکامی دوبارہ پیدا کرنا مشکل ہو جاتا ہے کیونکہ تاخیر کام کرتی دکھتی ہے۔ صرف ہلکے بوجھ میں کام کرنے والی تاخیر ایک اتفاق ہے، مرمت نہیں۔

اگر انحصار ایک راستہ ہے، تو وہ ہک استعمال کریں جو روٹ کی تنصیب سے مطابقت رکھتا ہو۔ اگر انحصار ٹنل کے پیچھے ایک سروس ہے، تو ایک محدود جانچ استعمال کریں جو اسی مخصوص شرط کا انتظار کرے اور جب وہ کبھی نہ آئے تو واضح طور پر ناکام ہو۔

ناکامی کو واضح رکھیں۔ ایسا ہک جو صفر کے ساتھ نکلے جبکہ اس کا اصل کام ناکام ہو چکا ہو، ناکام ہونے والے ہک سے بدتر ہے، کیونکہ سروس مینیجر کامیابی درج کرتا ہے اور پھر کوئی نہیں دیکھتا۔ اسکرپٹ ہی سے آنے والی ایک لاگ سطر اسے دیانت دار رکھنے کا سب سے سستا طریقہ ہے۔

صفائی اور دوبارہ جڑنا بھی اتنی ہی توجہ کے قابل ہیں

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

دوبارہ جڑنا مکمل سروس آغاز سے زیادہ بار ہک چلا سکتا ہے۔ سیشن کو دوبارہ قائم کرنے والا مستقل انٹرفیس up اور route-up چکر کو دوبارہ متحرک کر سکتا ہے، اس لیے ہر بوٹ پر ایک عمل فرض کرنے والا اسکرپٹ آخرکار غلط برتاؤ کرے گا۔ ایک دن کے ہلنے کی لاگ میں عمل گن کر دیکھیں کہ یہ واقعی کتنی بار چلتا ہے۔ پھر اسکرپٹ کو اتنے بار چلانے کے لیے محفوظ بنائیں۔

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

ہر کام جس واقعے پر منحصر ہے اسے نام دیں، پھر کام کو اسی واقعے سے جوڑیں۔ باقی سب جانچ کا روپ دھارنے والی تاخیر ہے۔

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