curl প্রক্সির সময়সীমা: ব্যর্থ ধাপটি খুঁজুন
প্রক্সি সংযোগ, টানেল আলোচনা, TLS ও থেমে যাওয়া উত্তর আলাদা করুন, যাতে curl-এর সময়সীমা সমস্যা শনাক্ত করতে সাহায্য করে।
curl-এর বিস্তারিত আউটপুটে শেষ সম্পন্ন কাজটি খুঁজুন। ‘প্রক্সিতে সংযুক্ত, কিন্তু CONNECT উত্তর নেই’ কথাটি ‘প্রক্সির সময় শেষ’ থেকে সমস্যার পরিসর অনেক বেশি ছোট করে।
সময়সীমাযুক্ত অনুরোধ ব্যবহার করুন, স্থানীয় উদাহরণের বদলে নিজের HTTP প্রক্সি দিন; তুলনার জন্য অন্য এন্ডপয়েন্ট HTTP প্রক্সির তালিকা থেকে পাওয়া যায়:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/--connect-timeout 5 সংযোগ স্থাপনের জন্য একটিমাত্র যৌথ সময় বাজেট দেয়, প্রযোজ্য অনুসন্ধান ও হ্যান্ডশেকসহ; প্রতিটি ধাপকে আলাদা পাঁচ সেকেন্ড দেয় না। --max-time 15 স্থাপনের পরের স্থানান্তরসহ পুরো কাজের সময় সীমিত করে।
| অগ্রগতি কোথায় থামে | এরপর কী পরীক্ষা করবেন |
|---|---|
| প্রক্সিতে সংযোগ নেই | প্রক্সি হোস্টনেম সমাধান, শোনার পোর্ট, রাউটিং ও ফায়ারওয়াল নীতি। |
| প্রক্সি সংযুক্ত; টানেলের উত্তর নেই | প্রক্সির চাপ, প্রমাণীকরণ আলোচনা, প্রবেশনীতি ও প্রক্সি থেকে গন্তব্যের নাগাল। |
| টানেল গৃহীত; TLS অসম্পূর্ণ | গন্তব্যের নাগাল, TLS আলোচনা ও পরিচালিত ট্রাফিক আটকানো। |
| গন্তব্যের হেডার এসেছে; বডি থেমেছে | মূল সার্ভারের স্থানান্তরের আচরণ, মধ্যস্থদের বাফারিং এবং অ্যাপ ইচ্ছাকৃতভাবে নীরব কি না। |
হ্যান্ডশেকের ক্রম জানতে দেখুন CONNECT যেভাবে HTTPS বহন করে। সংযোগ বাজেটের কাছে থামা স্থাপন পর্যায়ের ইঙ্গিত; পরে মোট সীমায় থামা অসম্পূর্ণ স্থানান্তরের ইঙ্গিত। সময়ের সঙ্গে ক্রম মিলিয়ে দেখুন—শুধু সময় থেকে উপাদান চেনা যায় না। curl-এর বিল্ডভেদে লগের ভাষা আলাদা হয়, আর খোলা TCP পোর্ট CONNECT কাজ করার প্রমাণ নয়।
এক দিক অপরিবর্তিত রাখুন
অনুমোদিত সরাসরি পথে একই গন্তব্যের তুলনা করুন:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/এরপর একই প্রক্সি দিয়ে অন্য নিরীহ গন্তব্যের তুলনা করুন। শুধু একটি ব্যর্থ হলে তার পথ বা গন্তব্য নীতি দেখুন। সব একই স্থাপন ধাপে থামলে সাধারণ প্রক্সি পথ দেখুন। শুরুর সময়, এন্ডপয়েন্ট, গন্তব্য ও শেষ সম্পন্ন ধাপ সংরক্ষণ করুন; লগ ভাগ করার আগে পরিচয়তথ্য, টোকেন, কুকি ও ব্যক্তিগত নাম সরান।
সংযোগ খোলা থাকলেও কার্যকর অগ্রগতি না হলে
ফাইল স্থানান্তরে স্থাপন ও মোট সময়সীমার পাশাপাশি কম গতির সীমাও লাগতে পারে:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 60 --speed-limit 100 --speed-time 20 https://example.com/স্থায়ী স্থানান্তরের হার টানা 20 সেকেন্ড সেকেন্ডে 100 বাইটের নিচে থাকলে এটি থামায়, আর মোট সীমা 60 সেকেন্ড রাখে। কাজ অনুযায়ী মান বেছে নিন। ইভেন্ট স্ট্রিম দীর্ঘ নীরব সময়েও স্বাভাবিক হতে পারে, তাই ডাউনলোডের নিয়ম ভুল করে সেটি থামাতে পারে।
সব সীমা বাড়ানো লক্ষণ পিছিয়ে দেয়। সঙ্গে সঙ্গে বারবার চেষ্টা করলে অতিরিক্ত চাপের পথে আরও সংযোগ যোগ হতে পারে। কয়েকটি পরিকল্পিত তুলনায় রোগ নির্ণয় করুন; অ্যাপের পরবর্তী পুনঃচেষ্টার নীতির নিজস্ব মোট বাজেট ও কাজটি আবার করা নিরাপদ কি না, সেই বিবেচনা দরকার।