407 Proxy Authentication Required কীভাবে সমাধান করবেন
Updated:
407 ত্রুটিটি আপাতদৃষ্টিতে যেমন মনে হয়, তার চেয়ে ইতিবাচক: আপনার ডিভাইস প্রক্সিতে পৌঁছাতে পেরেছে এবং নেটওয়ার্ক পাথ চালু আছে। প্রক্সিটি মূলত জানাচ্ছে যে এটি কোনো সঠিক username ও password পায়নি। এই কারণেই প্রায় প্রতিটি 407 সমস্যার সমাধান রাউটার বা ফায়ারওয়ালে নয়, বরং ক্রেডেনশিয়াল অংশে হয়ে থাকে।
407 ত্রুটির কারণসমূহ (সম্ভাবনার ক্রমানুসারে)
- ভুল বা বাদ পড়া username/password। একটি অক্ষর ভুল টাইপ করা, অথবা পাসওয়ার্ডের সাথে বাড়তি স্পেস কপি হয়ে যাওয়া। 407 সংক্রান্ত বেশিরভাগ রিপোর্টের মূল কারণ এটাই।
- ভুল বক্সে তথ্য পেস্ট করা। পুরো
ip:port:user:passলাইনটি Host বক্সে পেস্ট হয়ে যাওয়া, অথবা username-এর ঘরে password চলে যাওয়া। কিছু টুল স্বয়ংক্রিয়ভাবে এই চারটি অংশ আলাদা করে দেয়, আবার কিছু টুল দেয় না। - অ্যাপ থেকে ক্রেডেনশিয়াল না পাঠানো। অপারেটিং সিস্টেমের প্রক্সি সেটিংসে কেবল অ্যাড্রেস এবং পোর্ট সংরক্ষণ করা হয়। যেসব অ্যাপ পাসওয়ার্ড ইনপুটের সুবিধা দেয় না, সেগুলো অথেন্টিকেশন হেডার ছাড়াই কানেক্ট হতে চায় এবং প্রতিউত্তরে 407 পায়।
- প্রক্সি URL-এর ভেতর বিশেষ ক্যারেক্টার।
http://user:pass@host:portফরম্যাটে, পাসওয়ার্ডে থাকা@,:বা#-এর মতো ক্যারেক্টারগুলো অবশ্যই পারসেন্ট-এনকোড (যেমন@পরিবর্তিত হয়ে%40) হতে হবে; অন্যথায় স্ট্রিংটি ভুল জায়গায় বিভক্ত হয়ে যায়।
বাস্তবে 407 ত্রুটি দেখতে যেমন হয়
আমরা একটি টেস্ট প্রক্সিতে ত্রুটিটি তৈরি করেছি, যা এখানে ডকিউমেন্টেশন অ্যাড্রেস 203.0.113.10:8080 এবং ইচ্ছাকৃতভাবে ভুল user123:pass456 দিয়ে দেখানো হয়েছে। একটি HTTPS সাইটের ক্ষেত্রে, curl -x http://user123:[email protected]:8080 https://example.com রান করলে আউটপুট আসে curl: (56) CONNECT tunnel failed, response 407। আর -w %{http_code} সহ একটি প্লেইন HTTP সাইটের ক্ষেত্রে curl কেবল 407 দেখায়।
ক্রেডেনশিয়াল আদৌ পাঠানো হয়েছিল কি না তা দেখতে -v যোগ করুন। ট্রেসে > CONNECT example.com:443 HTTP/1.1, এরপর > Proxy-Authorization: Basic ... এবং তারপরই কেবল 407 দেখা যায়। যদি Proxy-Authorization লাইনটি না থাকে, তবে আপনার ক্লায়েন্ট কখনোই লগইন তথ্য পাঠায়নি।
VinaProxy proxy checker একই পরিস্থিতিকে auth failed (407) হিসেবে দেখায়। হেডলেস Chrome, যাতে কোনো লগইন ডায়ালগ নেই, সেটি এটিকে ERR_TUNNEL_CONNECTION_FAILED হিসেবে প্রদর্শন করে; বিস্তারিত দেখুন tunnel error page।
পরিবেশ অনুযায়ী সমাধান
- Windows এবং Chrome: Chrome মূলত Windows-এর প্রক্সি সেটিংস (Settings > Network & Internet > Proxy) অনুসরণ করে, যাতে কেবল অ্যাড্রেস এবং পোর্ট থাকে। প্রথম পেজ লোড করার সময় Chrome প্রক্সির username ও password-এর জন্য একটি সাইন-ইন ডায়ালগ খোলে। যদি ভুল টাইপ করেন এবং ডায়ালগটি পুনরায় না আসে, তবে Chrome-এর সব উইন্ডো বন্ধ করে আবার খুলুন।
- অ্যান্টিডিটেক্ট ব্রাউজার (AdsPower, GoLogin, GenLogin): Host, Port, Username এবং Password আলাদা ঘরে রাখুন। পাসওয়ার্ড ফিল্ডটি এডিট করার বদলে পুরোপুরি মুছে ফেলে নতুন করে পেস্ট করুন। প্রতিটি ফিল্ডের বিস্তারিত সহায়তা পাবেন GoLogin setup guide-এ।
- ফোন: iPhone-এ Settings > Wi-Fi > (i) > Configure Proxy-এর অধীনে একটি Authentication সুইচ থাকে; এটি বন্ধ রাখলে 407 ত্রুটি দেয়। Android সাধারণত কেবল হোস্ট এবং পোর্ট গ্রহণ করে, তাই যেসব অ্যাপে লগইন প্রয়োজন সেগুলো সরাসরি কানেকশন এরর দেখাতে পারে।
- curl: URL-এর ভেতর যুক্ত করার পরিবর্তে
-U "user:pass"আলাদাভাবে পাস করুন, যা বিশেষ ক্যারেক্টারজনিত জটিলতা এড়িয়ে যায়। - Python requests:
proxiesডিকশনারিরhttpএবংhttpsউভয় কী-এর জন্যhttp://user:pass@host:portসেট করুন এবং জটিল পাসওয়ার্ডগুলোurllib.parse.quoteদিয়ে এনকোড করুন।
ক্রেডেনশিয়াল সঠিক হলেও 407 ত্রুটি রয়ে গেলে
এরপর প্রোটোকল মিলিয়ে দেখুন। VinaProxy ইউজার:পাস লগইন সুবিধাসহ HTTP(S) প্রক্সি এবং SOCKS5-ও বিক্রি করে, তাই ড্যাশবোর্ডে আপনার অর্ডারে দেখানো প্রোটোকলটিই নির্বাচন করুন। যদি চেকার not socks5 উত্তর দেয়, তবে ওই পোর্টটি HTTP প্রোটোকল ব্যবহার করে এবং সেটিকে SOCKS5 হিসেবে কনফিগার করা উচিত নয়।
ধাপে ধাপে
- 1
ড্যাশবোর্ড থেকে প্রক্সি লাইনটি কপি করুন
আপনার VinaProxy ড্যাশবোর্ডে অর্ডারটি খুলুন এবং নিজে টাইপ করার বদলে পুরো লাইনটি কপি করুন।
- 2
প্রক্সি চেকার দিয়ে যাচাই করুন
লাইনটি proxy checker-এ পেস্ট করুন।
auth failed (407)রেজাল্ট নিশ্চিত করে যে সমস্যাটি নেটওয়ার্কের নয়, বরং ক্রেডেনশিয়ালের। - 3
সতর্কতার সাথে username ও password পুনরায় লিখুন
আপনার সফটওয়্যারের উভয় ফিল্ড পরিষ্কার করুন এবং সামনে বা পেছনে কোনো বাড়তি স্পেস ছাড়া পুনরায় পেস্ট করুন।
- 4
অর্ডারের সাথে প্রোটোকল মেলান
অর্ডারে ঠিক যেভাবে উল্লেখ আছে সে অনুযায়ী প্রক্সির ধরন HTTP বা SOCKS5 সেট করুন, তারপর সেভ করুন।
- 5
সমস্যা থেকে গেলে curl -v দিয়ে ট্রেস করুন
আপনার আসল মানগুলো দিয়ে
curl -vরান করুন এবং 407 আসার আগেProxy-Authorizationলাইনটি রয়েছে কি না পরীক্ষা করুন।
সচরাচর জিজ্ঞাসিত প্রশ্নাবলী
আমার ISP প্রক্সি ব্লক করার কারণেই কি 407 ঘটে?
না। 407 ত্রুটিটি প্রক্সি নিজেই পাঠায়, অর্থাৎ সংযোগটি সফলভাবে পৌঁছেছে। নেটওয়ার্ক ব্লক থাকলে তা টাইমআউট বা রিফিউজড কানেকশন হিসেবে দেখা দেয়; দেখুন proxy timeout।
Chrome কেন বারবার প্রক্সি লগইন চাইছে?
প্রতিটি ভুল এন্ট্রির কারণে পুনরায় 407 আসে এবং Chrome আবার লগইন চায়। Caps Lock চেক করুন এবং নিশ্চিত করুন যে ভিয়েতনামিজ বা অন্য কোনো ইনপুট মেথড পাসওয়ার্ডে অতিরিক্ত কোনো অ্যাকসেন্ট যোগ করছে না।
প্রক্সি URL-এ @ যুক্ত পাসওয়ার্ড কীভাবে ব্যবহার করব?
এটি এনকোড করুন: @-কে %40, :-কে %3A, #-কে %23 হিসেবে। curl-এর ক্ষেত্রে -U ফ্ল্যাগ ব্যবহার করলে কোনো ধরনের এনকোডিংয়ের প্রয়োজনই হয় না।
Selenium বা Puppeteer-এ 407-এর বদলে টানেল এরর দেখাচ্ছে। এটা কি একই সমস্যা?
সাধারণত হ্যাঁ। হেডলেস Chrome কোনো লগইন ডায়ালগ দেখাতে পারে না, ফলে 407 ত্রুটিটি ERR_TUNNEL_CONNECTION_FAILED হিসেবে দেখা দেয়। লাইব্রেরির নিজস্ব অথেন্টিকেশন পদ্ধতির মাধ্যমে ক্রেডেনশিয়াল প্রদান করুন, যেমনটা Selenium guide-এ রয়েছে।
স্পষ্ট ক্রেডেনশিয়ালসহ প্রাইভেট প্রক্সি
প্রতিটি VinaProxy অর্ডারে পাবেন প্রস্তুত ip:port:user:pass লাইন, যা একবার কপি করে যেকোনো জায়গায় পেস্ট করতে পারবেন।
প্রক্সির মূল্য দেখুন