HTTP منزلوں کے لیے چھوٹے حروف والا http_proxy مقرر کریں۔ curl بڑے حروف والے HTTP_PROXY کو دانستہ نظرانداز کرتا ہے۔ POSIX شیل میں:

http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/

یہ تعینات صرف اپنے فوراً بعد آنے والی کمانڈ پر لاگو ہوتے ہیں۔ مثال کے سننے والے پتے کو اپنے پراکسی سے بدلیں؛ عوامی اینڈپوائنٹس کے موازنے کے لیے HTTP پراکسی فہرست سے ایک امیدوار چنیں۔ https_proxy متغیر HTTPS منزلوں کا راستہ منتخب کرتا ہے؛ http:// والی قدر اب بھی عام HTTP پراکسی کی نشان دہی کرتی ہے جو منزل تک سرنگ بنا سکتا ہے۔ PowerShell اور Windows کمانڈ شیل قدر مقرر کرنے کی مختلف ترکیب استعمال کرتے ہیں۔

بڑے حروف کی یہی صورت خطرناک کیوں ہے

CGI ماحول آنے والی درخواستوں کے ہیڈرز کو بڑے حروف والے HTTP_ متغیرات میں بدل سکتے ہیں۔ اس لیے Proxy نام کا ہیڈر HTTP_PROXY بن سکتا ہے۔ اسے باہر جانے والے رابطوں کی قابلِ اعتماد ترتیب ماننے سے درخواست کا ڈیٹا پراکسی چن سکے گا۔ curl کی چھوٹے حروف کی شرط اس نقشہ بندی سے بچاتی ہے؛ HTTPS اور دوسرے پروٹوکول کے متغیرات پر یہ استثنا بعینہٖ اسی طرح لاگو نہیں ہوتا۔

اگر متغیر بدلنے سے راستہ نہ بدلے

پہلے پروٹوکول کا مخصوص متغیر تلاش کریں، پھر متبادل ALL_PROXY دیکھیں۔ مماثل NO_PROXY قاعدہ پراکسی کو بائی پاس کر سکتا ہے۔ چھوٹے حروف والی صورتیں اور ایک دوسرے سے مقابل تعریفیں بھی اہم ہیں۔ یونکس جیسے شیل کا یہ لوپ صرف موجودگی بتاتا ہے، ایسی قدریں نہیں چھاپتا جن میں اسناد ہو سکتی ہیں:

for name in http_proxy HTTP_PROXY https_proxy HTTPS_PROXY all_proxy ALL_PROXY no_proxy NO_PROXY; do
  if printenv "$name" >/dev/null; then
    printf '%s is set\n' "$name"
  fi
done

درج تعریفوں کو مقامی طور پر جانچیں۔ کوئی دوبارہ ظاہر ہو تو شروع کرنے والے شیل، سروس، IDE، کنٹینر یا CI کی ترتیب دیکھیں۔ موجودگی ممکنہ ان پٹس بتاتی ہے؛ یہ نہیں بتاتی کہ کس قدر کو ترجیح ملی۔

ایک درخواست کو ان پراکسی انتخابوں سے الگ کرنے کے لیے اینڈپوائنٹ اور خالی بائی پاس فہرست دونوں دیں:

curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/

براہِ راست رابطے سے موازنے کی اجازت ہو تو:

curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/

یہ کمانڈز وراثت میں ملے راستے اور رابطے کی ناکامی میں فرق کرنے میں مدد دیتی ہیں۔ ماحول کی مزید ترتیبات بدلنے سے پہلے پراکسی آزمائش کے نتائج مرحلہ وار پڑھیں۔ curl کے متغیر قواعد curl پر لاگو کریں؛ ایپلی کیشن کا اپنا رن ٹائم پراکسی مختلف طریقے سے دریافت اور یکجا کر سکتا ہے۔

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