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 নিয়ম প্রক্সি এড়াতে পারে। ছোট হাতের রূপ ও প্রতিদ্বন্দ্বী সংজ্ঞাগুলোও গুরুত্বপূর্ণ। Unix-জাতীয় শেলের এই লুপ শুধু উপস্থিতি জানায়; পরিচয়পত্র থাকতে পারে এমন মান ছাপে না:

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-এর জন্য প্রয়োগ করুন; অ্যাপ্লিকেশনের নিজস্ব রানটাইম অন্যভাবে প্রক্সি খুঁজে ও একত্র করতে পারে।

সম্পর্কিত নিবন্ধ