SOCKS5 ও SOCKS5h: DNS নাম কোথায় সমাধান হয়
curl-এ স্থানীয় ও প্রক্সির দিকের DNS সমাধান তুলনা করুন, নাম সমাধানের ব্যর্থতা খুঁজুন এবং socks5h-এর সুরক্ষার সীমা বুঝুন।
curl-এ গন্তব্যের নাম প্রক্সিকে দিয়ে সমাধান করাতে চাইলে socks5h:// বেছে নিন। curl স্থানীয়ভাবে নাম সমাধান করে প্রক্সিকে ঠিকানা পাঠাবে চাইলে socks5:// বেছে নিন। দুটিই SOCKS5 ব্যবহার করে; শেষের h ক্লায়েন্টের URL লেখার একটি রীতি।
স্থানীয় লিসেনারের বদলে আপনার SOCKS5 এন্ডপয়েন্ট বসিয়ে মোড দুটির তুলনা করুন:
curl --noproxy '' --proxy socks5://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/
curl --noproxy '' --proxy socks5h://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/শুধু নাম সমাধানের মোড বদলায়। --noproxy '' এই কলগুলোর জন্য প্রক্সি এড়িয়ে যাওয়ার নিয়ম সরিয়ে দেয়, আর সময়সীমা তুলনার সময় বেঁধে দেয়। সমতুল্য আলাদা বিকল্প হলো --socks5 ও --socks5-hostname। লক্ষ্য হিসেবে হোস্টনাম ব্যবহার করুন: সরাসরি লেখা IP ঠিকানার জন্য গন্তব্যের নাম খোঁজা লাগে না, তাই সেটি এই পার্থক্য দেখাতে পারে না।
একটি নাম শুধু এক পাশেই পরিচিত হতে পারে
ধরুন প্রক্সি এমন একটি ডেভেলপমেন্ট নেটওয়ার্কে চলছে, যার DNS একটি অভ্যন্তরীণ সেবার নাম জানে। আপনার ল্যাপটপ socks5 মোডে নামটি সমাধান করতে না পারলেও socks5h প্রক্সিকে সেটি করতে দেয়। পরিস্থিতি উল্টে নামটি যদি শুধু ল্যাপটপের hosts ফাইলে থাকে, তবে দূরবর্তী নাম খোঁজাই ব্যর্থ হতে পারে।
সর্বজনীন DNS-ও ভিন্ন নেটওয়ার্ক থেকে ভিন্ন ঠিকানা ফেরত দিতে পারে। ফল আলাদা হলে সঙ্গে সঙ্গে প্রক্সি বদলানোর বদলে নির্বাচিত ঠিকানা ও সেগুলোতে পৌঁছানো যায় কি না তুলনা করুন।
- প্রক্সির হোস্টনাম সমাধান করা যাচ্ছে না: কোনো মোডই শুরু করতে পারে না। ক্লায়েন্ট তখনও
proxy.exampleসমাধান করে,socks5h://proxy.example:1080ব্যবহার করলেও। - গন্তব্যের স্থানীয় নাম খোঁজা ব্যর্থ: ক্লায়েন্টের রিজলভার দেখুন অথবা হোস্টনাম প্রক্সিতে পাঠানোর মোডের সঙ্গে তুলনা করুন।
- SOCKS সার্ভার গন্তব্য প্রত্যাখ্যান করছে: তার উত্তর ও নীতি দেখুন। স্থানীয় নাম খোঁজা সফল হলেই দূরবর্তী দিক থেকে গন্তব্যে পৌঁছানো যাবে, এমন নয়।
- টানেল কাজ করছে, কিন্তু সার্টিফিকেট যাচাই ব্যর্থ: গন্তব্যের TLS দেখুন; DNS মোড বদলানো আস্থার সমস্যার সাধারণ সমাধান নয়।
আপনার নিয়ন্ত্রণে থাকা পরীক্ষার নাম ও সার্ভারের লগ দিয়ে নিশ্চিত করা যায়, আপনার পরিচালিত প্রক্সিতে কোন ধরনের ঠিকানা পৌঁছেছে। বাহিরের IP দেখানো ওয়েবপেজ তা পারে না: সেটি বাইরে যাওয়া সংযোগ দেখায়, DNS কোথায় সমাধান হয়েছে তা নয়।
গোপনীয়তার সুবিধার নির্দিষ্ট সীমা আছে
প্রক্সিতে নাম খোঁজা এই অনুরোধের গন্তব্যের স্থানীয় অনুসন্ধান এড়ায়। এটি SOCKS এনক্রিপ্ট করে না, প্রক্সি এনক্রিপ্টেড DNS ব্যবহার করে তার প্রমাণও দেয় না, অন্য অ্যাপ বা ব্রাউজারের আগাম আনার ট্রাফিকের পথও বদলায় না। SOCKS সমর্থিত Requests-ও স্থানীয় ও প্রক্সির দিকের এই একই পার্থক্য ব্যবহার করে; অন্য ক্লায়েন্ট curl-এর URL লেখার বদলে সেটিং দিতে পারে। SOCKS5 প্রক্সির তালিকা থেকে এন্ডপয়েন্ট কপি করার আগে অ্যাপ সমর্থন করে এমন প্রোটোকল বেছে নিন।