براؤزر میں اندرونی صفحہ کھلنا صرف یہ ثابت کرتا ہے کہ پراکسی براؤزر کے لیے کام کرتی ہے، npm یا Maven کے لیے نہیں۔ ہر کلائنٹ اپنی ترتیب پڑھتا ہے، اور صرف VPN سے دستیاب نیٹ ورک دوسرا سوال جوڑتا ہے: کیا کلائنٹ پراکسی تک پہنچتا ہے۔ اسٹیٹس کوڈ سے شروع کریں اور پھر ناکام ہونے والے ٹول کی ترتیب کی زنجیر پر چلیں۔

407 واقعی کیا ثابت کرتا ہے

407 Proxy Authentication Required پراکسی سے آتا ہے، رجسٹری یا ذخیرے سے نہیں۔ کلائنٹ پراکسی تک پہنچا اور پراکسی نے درخواست مسترد کی، عموماً اس لیے کہ اسناد موجود نہیں تھیں، غلط شکل میں تھیں یا اس منزل کے لیے قبول نہیں تھیں۔

وقت کا ختم ہونا اور کہانی سناتا ہے: غلط پراکسی پتہ، سرنگ اٹھنے سے پہلے پراکسی تک راستہ نہیں، یا اندرونی میزبان کے لیے بائی پاس اندراج غائب۔ اسناد بدلنے سے پہلے خرابی کا متن پڑھیں۔

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

npm اپنی ترتیب کی زنجیر پڑھتا ہے

npm صارف یا پروجیکٹ .npmrc میں proxy اور https-proxy کیز قبول کرتا ہے۔ اسکیم لکھیں، کیونکہ قدریں URL ہیں، اور پاس ورڈ کے محفوظ حروف کو URL-انکوڈ کریں تاکہ at نشان قدر کو نہ بانٹے۔

proxy=http://proxy.example.com:8080
https-proxy=http://proxy.example.com:8080
strict-ssl=true

npm config list سے معلوم ہوتا ہے کہ کون سی فائل نے کون سی مؤثر قدر دی۔ npm_config_proxy جیسا shell export فائل کو پیچھے چھوڑ سکتا ہے، اور ذاتی پاس ورڈ والی پروجیکٹ .npmrc کبھی commit نہیں کرنی چاہیے۔ قدر کے ساتھ ماخذ کا راستہ بھی چھاپیں۔

strict-ssl آن رکھیں۔ TLS جانچنے والی پراکسی ٹرسٹ اسٹور میں کارپوریٹ CA مانگ سکتی ہے؛ خرابی سے بچنے کے لیے تصدیق بند کرنا اصل اعتماد کا مسئلہ چھپا دیتا ہے۔

Maven پراکسیوں کو آئینوں سے الگ کرتا ہے

Maven پراکسیاں اور آئینے صارف کی settings فائل سے پڑھتا ہے، پروجیکٹ pom سے نہیں۔ نیٹ ورک کے مخصوص پراکسیاں اور اندرونی ذخیرے کے آئینے ~/.m2/settings.xml میں رکھیں، عوامی ذخیرے کے اعلانات پروجیکٹ میں رہنے دیں۔

پراکسی بلاک کو id، فعال جھنڈا، پروٹوکول، میزبان اور پورٹ، اور اندرونی ذخیرے کے لیے nonProxyHosts اندراج درکار ہے۔ یہ خانے pom میں نہیں، صارف کی فائل میں رکھیں، تاکہ نیٹ ورک کی تبدیلی پوری ٹیم کا build دوبارہ نہ لکھے۔

Maven کے براہ راست جڑنے کے لیے اندرونی ذخیرہ nonProxyHosts میں شامل کریں۔ یہ اندراج نہ ہو تو پراکسی بے کار پڑاؤ بن جاتی ہے اور ناکامی ذخیرے کے بند ہونے جیسی لگتی ہے۔ آئینے کا اندراج اندرونی ذخیرے کی طرف اشارہ کرتا ہے اور پراکسی ترتیب کی جگہ نہیں لیتا۔

نیٹ ورک بدلنے والے ڈویلپر ہر نیٹ ورک کے لیے ایک settings فائل رکھ سکتے ہیں اور shell شروع ہونے پر درست نقل چن سکتے ہیں۔ ہر بار ایک فائل ہاتھ سے ترمیم کرنا چلتی ہوئی لیپ ٹاپ کو سپورٹ ٹکٹ بنا دیتا ہے۔

VS Code اور dev کنٹینرز کے نام کی جگہیں مختلف ہیں

VS Code http.proxy صارف یا ورک اسپیس ترتیبات سے پڑھتا ہے، اسکیم اور پورٹ سمیت۔ یہ ایڈیٹر کی ایکسٹینشن اور مارکیٹ پلیس درخواستیں ڈھانپتا ہے، مگر ٹرمینل یا ایڈیٹر سے شروع ہونے والے کنٹینر کو خودکار ترتیب نہیں دیتا۔ ترتیب کا دائرہ اور قدر دونوں جانچیں۔

dev کنٹینر کا اپنا نیٹ ورک نام کی جگہ ہوتا ہے۔ یہ میزبان کے پراکسی متغیرات یا VPN راستے کا وارث نہیں ہوتا، اس لیے کنٹینر کے اندر مارکیٹ پلیس کال ناکام ہو سکتی ہے جبکہ وہی کال میزبان پر چلتی ہے۔

کنٹینر کو وہ متغیرات دیں، یا اسے اپنا resolver اور راستہ دیں۔ اندر نام حل ہوں مگر پراکسی کبھی جواب نہ دے، تو غائب حصہ عموماً راستہ ہوتا ہے، پتہ نہیں۔

بائی پاس فہرستیں اور ماحول کی ترجیح

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

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

CI میں پراکسی کو خفیہ متغیر کے طور پر دیں اور اسی image میں ایک پیکیج کی تنصیب جانچیں۔ کنٹینر میں 407 کا مطلب اکثر یہ ہوتا ہے کہ متغیر وہاں نہیں، جبکہ میزبان shell میں موجود ہے۔

ہر ٹول کے لیے پراکسی میزبان، پورٹ، بائی پاس لاحقے اور انہیں دینے والی فائل یا متغیر لکھیں۔ جب ایک کلائنٹ 407 لوٹائے اور دوسرا چلے، تو وہ نوٹ چار مختلف ترتیبوں کے موازنے کو مختصر جانچ میں بدل دیتا ہے۔

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