curl-এর SOCKS থেকে HTTP proxy শৃঙ্খল
curl সমর্থিত SOCKS–HTTP শৃঙ্খল সাজান, endpoint-এর ক্রম বুঝুন এবং একত্র করার আগে প্রতিটি ধাপ পরীক্ষা করুন।
curl-এর --preproxy বিকল্প HTTP বা HTTPS proxy-তে যাওয়ার আগে SOCKS proxy-তে যুক্ত হয়। এটি এই নির্দিষ্ট শৃঙ্খল সমর্থন করে, proxy সার্ভারের যেকোনো ইচ্ছামতো তালিকা নয়।
পথ হলো ক্লায়েন্ট → SOCKS endpoint → HTTP proxy → গন্তব্য। কমান্ডে নথির দুটি endpoint-ই বদলান:
curl --preproxy socks5h://203.0.113.10:1080 --proxy http://203.0.113.20:8080 --noproxy '' --connect-timeout 5 --max-time 20 --verbose https://example.com/
SOCKS পরিষেবাকে HTTP proxy-র ঠিকানা ও পোর্টে পৌঁছাতে হবে। তারপর HTTP proxy-কে গন্তব্যের অনুরোধ গ্রহণ করতে হবে। দ্বিতীয় proxy hostname ব্যবহার করলে প্রথম SOCKS mode নির্ধারণ করে নামটি কোথায় resolve হয়; সংখ্যাসূচক endpoint এই অনুসন্ধান এড়ায়।
ব্যর্থ ধাপ খোঁজা
আগে প্রতিটি endpoint দিয়ে অনুরোধ আলাদা নিশ্চিত করুন; HTTP ধাপে সময়সীমাযুক্ত HTTP proxy পরীক্ষা ব্যবহার করুন। দুটিই কাজ করলেও প্রথম proxy দ্বিতীয়টিতে পৌঁছাতে না পারায় মিলিত পথ ব্যর্থ হতে পারে।
বিস্তারিত trace সংযোগের ক্রমে পড়ুন। দ্বিতীয় proxy-তে পৌঁছানোর সময় SOCKS ব্যর্থতা HTTP proxy-র ওয়েবসাইটে CONNECT গ্রহণ বা প্রত্যাখ্যানের সিদ্ধান্তের আগে ঘটে। কোন handshake ব্যর্থ হলো লিখে রাখুন।
বাড়তি ধাপ কখন কাজে লাগে
অনুমোদিত HTTP proxy-কে SOCKS পথে পাওয়া গেলে এই বিন্যাস উপযোগী হতে পারে। তবে এটি আরেকটি পরিষেবা ও নেটওয়ার্ক পথ যোগ করে, যা ব্যর্থ হতে বা বিলম্ব বাড়াতে পারে। সর্বজনীন proxy তালিকার endpoint শৃঙ্খল করলে নির্ভরযোগ্যতা বা পরিচয় গোপন থাকার নিশ্চয়তা মেলে না, এবং সংযোগ সামলানো পক্ষগুলোর ওপর বিশ্বাস এখনও দরকার।
--preproxy-এর জন্য curl 7.52.0 বা নতুন সংস্করণ লাগে; অন্য অ্যাপ একই বিন্যাস সমর্থন নাও করতে পারে।