اگر curl آپ کے دیے گئے URL سے قطع نظر localhost سے جڑنے کی کوشش کرے، تو VPN آغاز کے لیے غلط جگہ ہے۔ مقامی HTTP یا SOCKS پراکسی وہ مطلوبہ پہلا کنکشن ہو سکتی ہے، چاہے آپ کی مطلوبہ سروس بالکل کسی اور جگہ ہو۔ اگر وہ پراکسی اب کام نہیں کر رہی تو localhost کی کوشش curl کے منزل تک پہنچنے سے پہلے ناکام ہو جاتی ہے۔ پراکسی کا جواب بھی اس بات کا ثبوت نہیں کہ منزل نے جواب دیا ہے۔

ان مراحل کو ترتیب سے کریں اور پہلے ایسے مرحلے پر رکیں جو پہلی کنکشن کی کوشش بدل دے۔

پہلے curl کے اپنے پراکسی قواعد پڑھیں

curl پروٹوکول کے مخصوص پراکسی متغیرات پڑھتا ہے، مثلاً https_proxy اور HTTPS_PROXY، نیز جب کوئی پروٹوکول مخصوص قدر لاگو نہ ہو تو ALL_PROXY۔ curl کو واقعی چلانے والے شیل، سروس یا کام کا ماحول دیکھیں، اپنے موجودہ ٹرمینل کا نہیں۔ ایک CI کام، ایک systemd یونٹ اور ایک تعاملی شیل تین مختلف مجموعے ورثے میں پا سکتے ہیں۔ دکھائی دینے والے شیل سے اندازہ لگانا ہی اس تحقیق کے پوری دوپہر ضائع کرنے کا سبب ہے۔

ایک استثنا یاد رکھنے کے قابل ہے۔ curl http_proxy کو صرف چھوٹے حروف میں قبول کرتا ہے؛ بڑے حروف والا HTTP_PROXY نظر انداز کر دیا جاتا ہے، اسی لیے وہی ماحول دوسرے اوزاروں میں مختلف رویہ رکھتا ہے۔

اقدار کو نجی طور پر پڑھیں، کیونکہ پراکسی URL میں اکثر اسناد ہوتی ہیں۔

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

TLS آن رکھ کر تین کالوں کا موازنہ کریں

تینوں رنز کے لیے ایک منظور شدہ تشخیصی منزل اور وہی بائنری استعمال کریں۔

curl -v https://service.corp.example/status
curl -q -v https://service.corp.example/status
curl -q --proxy '' -v https://service.corp.example/status

-q ڈیفالٹ curlrc کو دبا دیتا ہے اور کام کرنے کے لیے لائن کا پہلا پیرامیٹر ہونا ضروری ہے۔ یہ پراکسی ماحول کے متغیرات کو نہیں ہٹاتا، جو ایسی ہی توقع رکھنے والوں کو حیران کرتا ہے۔ تیسری شکل ایک خالی --proxy قدر شامل کرتی ہے اور صرف اسی کال کے لیے ماحول کی طلب کردہ پراکسی کو اوور رائیڈ کرتی ہے۔ ہر آؤٹ پٹ میں پہلی کنکشن کی کوشش کا موازنہ کریں، آخری اسٹیٹس کوڈ کا نہیں۔

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

ہر نتیجہ کیا خارج کرتا ہے

اگر ڈیفالٹ ترتیب کو چھوڑنا کنکشن بدل دے تو ماخذ ترتیبات کی فائل ہے۔ اگر وراثتی پراکسی کو واضح طور پر بند کرنا اسے بدل دے تو ماخذ ماحول کا متغیر ہے۔ اگر دونوں میں سے کوئی اسے نہ بدلے اور localhost پھر بھی ظاہر ہو، تو کمانڈ لائن کنکشن اوور رائیڈز، ہوسٹ نام کے حل اور منتخب ایگزیکیوٹیبل کو دیکھیں۔ ان میں سے ہر ایک کا حل مختلف ہے، اور ان میں سے کوئی بھی روٹنگ کی تبدیلی نہیں۔

حسب ضرورت لائبریری لوڈ ہونا یا انجیکٹ شدہ نیٹ ورک رویہ بعد کی پرت ہے، اور اکیلے ماحول کا متغیر اس کا ثبوت نہیں۔

پراکسی کا فیصلہ VPN سے الگ رکھیں

ایک بار curl براہ راست منزل منتخب کر لے تو آپریٹنگ سسٹم پھر بھی اس کنکشن کو روٹ کرتا ہے۔ کسی ایپلیکیشن پراکسی کو بند کرنا VPN کے راستے یا اس کی فلٹرنگ پالیسی کو بند نہیں کرتا۔ براہ راست رسائی کے موازنے صرف وہیں کریں جہاں وہ تشخیص مجاز ہو۔ جو امتحان خاموشی سے پالیسی سے گزر جائے وہ درست نتیجہ نہیں، وہ واقعہ ہے۔

اگر مقامی پراکسی ضروری ہو تو اس کی ترتیبات مٹانے کے بجائے اس کی سروس اور پتہ بحال کریں۔

اگر صرف منتخب نجی منزلوں کو براہ راست رسائی درکار ہو تو ایک تنگ منظور شدہ استثنا شامل کریں اور باقی سب کے لیے پراکسی برقرار رکھیں۔ منتخب راستے کی پہلی خرابی محفوظ رکھیں، کیونکہ localhost کا انکار، پراکسی CONNECT کا انکار، سرٹیفکیٹ کی ناکامی اور اجازت کی خرابی چار مختلف مراحل کی نشاندہی کرتی ہیں۔

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