শুধু একটি সাইটে ERR_CONNECTION_RESET
একটি সাইট ERR_CONNECTION_RESET দেখায়, বাকিগুলো খোলে? ধাপে ধাপে যাচাই: নেটওয়ার্ক, এক্সটেনশন, প্রক্সি, DNS, ঘড়ি, আর curl দিয়ে SNI ফিল্টারিং।
বাকি সব সাইট লোড হয়, কিন্তু একটি বারবার "This site can't be reached" আর ERR_CONNECTION_RESET দেখিয়ে ব্যর্থ হয়। রিলোড করলেও কিছু হয় না। এই গাইড একটি সিদ্ধান্ত-বৃক্ষ। প্রতিটি ধাপ হয় কারণটি খুঁজে পায়, নয়তো একটি কারণ বাদ দেয়, আর ক্রমটি সবচেয়ে দ্রুত যাচাই থেকে সবচেয়ে অর্থবহ যাচাইয়ের দিকে যায়।
"connection reset" আসলে কী বোঝায়
একটি TCP সংযোগ ভদ্রভাবে শেষ হতে পারে, অথবা একটি রিসেট প্যাকেট (RST) দিয়ে সঙ্গে সঙ্গে ভেঙে দেওয়া হতে পারে। পেজ পৌঁছানোর আগে রিসেট এলে Chrome ও অন্য Chromium ব্রাউজার ERR_CONNECTION_RESET দেখায়। Firefox একই ধরনের "The connection was reset" পেজ দেখায়। রিসেট আসতে পারে সাইটের সার্ভার থেকে, আপনার নিজের কম্পিউটারের সফটওয়্যার থেকে, অথবা নেটওয়ার্কের মাঝখানের এমন কোনো ডিভাইস থেকে যা দুই প্রান্তের একটির ভান করে।
এ কারণেই একই ত্রুটির এত ভিন্ন কারণ। কৌশল হলো খুঁজে বের করা কে রিসেট পাঠিয়েছে এবং কখন।
ধাপ ১: সত্যিই কি শুধু একটি সাইট?
দুই-তিনটি সম্পর্কহীন সাইট খুলুন, এমন একটিসহ যেটি আপনি কম দেখেন। কয়েকটি ব্যর্থ হলে সমস্যা আপনার সংযোগ, রাউটার বা ডিভাইসে, সেই একটি সাইটে নয়। রাউটার রিস্টার্ট করুন এবং দেখুন একই নেটওয়ার্কের অন্য ডিভাইস কাজ করে কিনা। শুধু একটি সাইট ব্যর্থ হলে এগিয়ে যান।
ধাপ ২: শুধু কি একটি নেটওয়ার্কে?
এটিই সবচেয়ে তথ্যপূর্ণ পরীক্ষা, আর এটি ফ্রি। Wi-Fi-র বদলে মোবাইল ডেটায় সাইটটি খুলুন, অথবা ল্যাপটপ ফোনের সঙ্গে টেথার করুন। সাইটটি একটি নেটওয়ার্কে খোলে আর অন্যটিতে রিসেট হলে, ব্যর্থ নেটওয়ার্কটি জড়িত। সাধারণ কারণগুলো আছে কোনো সাইট মোবাইল ডেটায় খোলে কিন্তু Wi-Fi-তে কেন নয়?-এ। সব জায়গায় ব্যর্থ হলে সাইটটি নিজে বা আপনার ডিভাইসই বেশি সম্ভাব্য কারণ।
ধাপ ৩: অন্য ব্রাউজার, প্রাইভেট উইন্ডো, এক্সটেনশন ছাড়া
একটি প্রাইভেট বা ইনকগনিটো উইন্ডো চেষ্টা করুন, যেখানে বেশিরভাগ এক্সটেনশন ডিফল্টভাবে বন্ধ থাকে। তারপর অন্য একটি ব্রাউজার চেষ্টা করুন। অ্যাড ব্লকার, প্রাইভেসি এক্সটেনশন, "safe browsing" অ্যাড-অন আর কর্পোরেট ব্রাউজার নীতি সবই সংযোগ বন্ধ করতে পারে। প্রাইভেট উইন্ডোতে সাইটটি কাজ করলে, ত্রুটি ফিরে না আসা পর্যন্ত একটি একটি করে এক্সটেনশন আবার চালু করুন।
ধাপ ৪: অন্য VPN, প্রক্সি ও HTTPS স্ক্যানিং বন্ধ করুন
আপনার ট্রাফিকের পথে থাকা যেকোনো কিছু অপছন্দের সংযোগ রিসেট করতে পারে:
- অন্য একটি VPN বা প্রক্সি অ্যাপ। এটি পুরোপুরি বন্ধ করে আবার পরীক্ষা করুন।
- অ্যান্টিভাইরাসের "HTTPS scanning" বা "web protection"। কিছু নিরাপত্তা স্যুট এনক্রিপ্টেড ট্রাফিক পরীক্ষা করে এবং ঝুঁকিপূর্ণ মনে করা সংযোগ কেটে দেয়। পরীক্ষার জন্য এই ফিচারটি কিছুক্ষণ বিরতি দিন, তারপর আবার চালু করুন।
- সিস্টেম প্রক্সি। Windows-এ দেখুন Settings → Network & internet → Proxy-তে। macOS-এ দেখুন System Settings → Network → আপনার সংযোগ → Details → Proxies-এ। এমন প্রক্সি যা আপনি চেনেন না, বা পুরোনো কোনো অ্যাপের রেখে যাওয়া প্রক্সি, একটি একটি সাইট নষ্ট করতে পারে। শুধু সেগুলো সরান যা আপনি নিশ্চিতভাবে নিজে সেট করেছেন, আর পরিচালিত কম্পিউটারে আপনার IT টিমকে জিজ্ঞাসা করুন।
ধাপ ৫: DNS ক্যাশে মুছুন এবং এনক্রিপ্টেড DNS চেষ্টা করুন
সাইটটি সার্ভার বদলালে আপনার ডিভাইস হয়তো এখনো পুরোনো ঠিকানা ব্যবহার করছে, যা রিসেট বা টাইমআউট হতে পারে। ক্যাশেগুলো মুছুন:
# Windows (Command Prompt)
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Chrome's own cache: open chrome://net-internals/#dns and click "Clear host cache"
এরপর আপনার নেটওয়ার্কের উত্তর একটি স্বাধীন রিজলভারের সঙ্গে তুলনা করুন: nslookup example.com এবং তারপর nslookup example.com 1.1.1.1। এগুলো আলাদা হলে আর শুধু স্বাধীন উত্তরটি কাজ করলে, আপনার নেটওয়ার্কের DNS-ই সমস্যা। এনক্রিপ্টেড DNS এই ধরনের ব্লক ঠিক করে, যেমনটা DoH ও DoT-এ ব্যাখ্যা করা আছে। শুধু ঠিকানা আলাদা হওয়া প্রমাণ নয়, কারণ বড় সাইটগুলো ভিন্ন নেটওয়ার্ককে ভিন্ন সার্ভার দেয়।
ধাপ ৬: তারিখ ও সময় দেখুন
ভুল ঘড়ি সাধারণত রিসেটের বদলে সার্টিফিকেট ত্রুটি দেয়, তবে এটি দশ সেকেন্ডের যাচাই। স্বয়ংক্রিয় তারিখ ও সময় চালু করুন, তারপর রিলোড করুন। ব্যর্থ পেজ "পার হতে" কখনো সার্টিফিকেট সতর্কতা উপেক্ষা করে ক্লিক করবেন না।
ধাপ ৭: সাইটটি কি বন্ধ?
সাইটের স্ট্যাটাস পেজ বা অফিশিয়াল সোশ্যাল অ্যাকাউন্ট দেখুন, অথবা একটি পাবলিক "সবার জন্য বন্ধ নাকি শুধু আমার" চেকার ব্যবহার করুন। সাইট বন্ধ থাকলে অপেক্ষা করুন। মনে রাখবেন, একটি চেকার তার নিজের সার্ভার থেকে পরীক্ষা করে, তাই সেখানে "চালু" দেখালেও প্রমাণ হয় না যে আপনার নেটওয়ার্ক থেকে এতে পৌঁছানো যায়।
ধাপ ৮: curl দিয়ে রিসেটটি পড়ুন
সাইটটি যদি এখনো শুধু একটি নেটওয়ার্কে রিসেট হয়, তাহলে হ্যান্ডশেকটি নিজেই দেখুন। curl Windows 10 ও 11, macOS আর বেশিরভাগ Linux সিস্টেমে আগে থেকেই আছে। example.com-এর জায়গায় আপনার সাইট দিয়ে একটি টার্মিনালে চালান:
curl -v https://example.com
একটি সুস্থ সংযোগ এরকম কয়েকটি লাইন দেখায়, তারপর পেজের হেডার। ঠিক শব্দগুলো আপনার curl ভার্সন আর TLS লাইব্রেরির ওপর নির্ভর করে:
* Trying 203.0.113.10:443...
* Connected to example.com (203.0.113.10) port 443
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
...
< HTTP/2 200
নাম-ভিত্তিক ফিল্টারিংয়ের দিকে ইঙ্গিত করা ধরনটি দেখতে এরকম:
* Trying 203.0.113.10:443...
* Connected to example.com (203.0.113.10) port 443
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* Recv failure: Connection reset by peer
curl: (35) Recv failure: Connection reset by peer
লাইন ধরে ধরে পড়ুন। "Connected" মানে সার্ভারের IP অ্যাড্রেসে TCP সংযোগ কাজ করেছে, তাই ঠিকানাটি সরাসরি ব্লক নয়। "Client hello" হলো প্রথম TLS বার্তা, আর এতে SNI নামের একটি ঘরে সাইটের নাম সাধারণ টেক্সটে থাকে। এর ঠিক পরেই "Connection reset by peer" মানে নামটি দেখা যাওয়া মাত্রই, সার্ভার উত্তর দেওয়ার আগেই, কিছু একটা সংযোগ কেটে দিয়েছে। কিছু নেটওয়ার্ক বরং চুপচাপ সংযোগ বন্ধ করে দেয়, যা curl একটি অপ্রত্যাশিত end of file বা SSL "syscall" ত্রুটি হিসেবে দেখায়, আর Chrome হয়তো ERR_CONNECTION_CLOSED দেখায়।
অন্য ফলাফলের সঙ্গে তুলনা করুন:
| curl যা দেখায় | সম্ভাব্য অর্থ |
|---|---|
| Could not resolve host | DNS ব্যর্থতা বা DNS ব্লকিং। ধাপ ৫-এ ফিরে যান |
| "Trying"-এ আটকে থাকে, তারপর টাইমআউট | IP অ্যাড্রেসে পৌঁছানো যাচ্ছে না: IP ব্লক, ফায়ারওয়াল বা বন্ধ সার্ভার |
| "Client hello"-এর ঠিক পরে রিসেট বা বন্ধ, শুধু একটি নেটওয়ার্কে | সম্ভবত সেই নেটওয়ার্কে SNI ফিল্টারিং |
| হ্যান্ডশেক সম্পূর্ণ হয়, তারপর একটি HTTP ত্রুটি কোড | সাইট উত্তর দিয়েছে। সমস্যা তাদের দিকে বা আপনার অ্যাকাউন্টে |
প্রমাণ জোরালো করতে একই কমান্ড অন্য একটি নেটওয়ার্কে চালান। সেখানে কাজ করলে ফিল্টারটি প্রথম নেটওয়ার্কের। এটি কোনো বিরল পরিস্থিতি নিয়ে আন্দাজ নয়। ২০২০ সালের একটি OONI ও Centre for Internet and Society গবেষণায় দেখা গেছে Bharti Airtel-এ নির্দিষ্ট কিছু সাইটের জন্য ClientHello-র ঠিক পরেই TLS সংযোগ কেটে দেওয়া হয়েছে, আর Reliance Jio-তে SNI-র সঙ্গে গন্তব্য ঠিকানা মিলিয়ে। CIS আলাদাভাবে জানিয়েছে Jio SNI পরিদর্শন ব্যবহার করছে, আর রিপোর্টটি ntc.party ফোরামে আলোচিত হয়েছে। আরও পটভূমি: কোনো ওয়েবসাইট ব্লক কিনা কীভাবে যাচাই করবেন।
GreenTunnel কোথায় সাহায্য করে, কোথায় করে না
GreenTunnel হলো আমাদের তৈরি একটি অন-ডিভাইস লোকাল VPN, তাই এই অংশটি জেনে পড়ুন যে আমরা পক্ষপাতদুষ্ট। এটি ওপরের দুটি কারণ লক্ষ্য করে:
- SNI ফিল্টারিং। এটি একটি সংযোগের প্রথম TLS প্যাকেটগুলোর রূপ বদলায়, যেমন Client hello বা এর TLS রেকর্ড ভাগ করে, যাতে সাইটের নাম খোঁজা ফিল্টার তা এক টুকরোয় না পায়। এটি কীভাবে কাজ করে: SNI, DPI ও TLS রেকর্ড স্প্লিটিং।
- DNS ব্লকিং। লুকআপ এনক্রিপ্টেড DNS (DoH বা DoT) দিয়ে Cloudflare, Google বা Quad9-এ যায়, তাই নেটওয়ার্ক চুপচাপ নকল উত্তর দিতে পারে না।
এর URL পরীক্ষা টুলটি আপনি যে নেটওয়ার্কে আছেন সেখানে একটি সাইটের জন্য ধাপ ৫ ও ৮-এর তুলনাগুলো চালায়, আর জানায় সাইটটি নাম দিয়ে ফিল্টার করা, নকল DNS উত্তর পাচ্ছে, IP অ্যাড্রেস দিয়ে ব্লক, নাকি ঠিক আছে। কোনো কৌশল কাজ করলে আপনি এই কৌশল ব্যবহার করুন ট্যাপ করতে পারেন।
এটি সাহায্য করবে না যখন:
- সাইটটি বন্ধ, অথবা রিসেট আসছে সাইটের নিজস্ব সার্ভার বা সুরক্ষা সেবা থেকে,
- ব্লকটি IP অ্যাড্রেস দিয়ে, যা "Trying"-এ টাইমআউট হিসেবে দেখা যায়,
- অফিস, স্কুল বা অন্য কোনো পরিচালিত নেটওয়ার্ক ইচ্ছা করে সাইটটি ব্লক করে। সেই নেটওয়ার্কের নিয়ম ঠিক করার অধিকার তার মালিকের। নীতিটি মেনে চলুন এবং কাজের জন্য প্রবেশাধিকার দরকার হলে অ্যাডমিনিস্ট্রেটরকে জিজ্ঞাসা করুন,
- কারণটি আপনার নিজের ডিভাইসের কোনো এক্সটেনশন, অ্যান্টিভাইরাস বা পুরোনো DNS। সেগুলো সরাসরি ঠিক করুন।
সৎ সীমাবদ্ধতা ও দায়িত্বশীল ব্যবহার
GreenTunnel আপনার IP অ্যাড্রেস লুকায় না এবং এটি অ্যানোনিমিটি টুল নয়। এটি IP ব্লক, নেটওয়ার্ক বন্ধ বা অ্যালাউলিস্ট পার হতে পারে না, এবং কোনো নির্দিষ্ট সাইট খুলে দেওয়ার প্রতিশ্রুতি দেয় না। ফিল্টার সময়ের সঙ্গে বদলায় এবং ISP অনুযায়ী আলাদা, তাই আজকের ফলাফল পরের মাসে ভিন্ন হতে পারে।
সাধারণ জিজ্ঞাসা
ERR_CONNECTION_RESET কি সবসময় সাইট ব্লক হওয়ার লক্ষণ?
না। এক্সটেনশন, অ্যান্টিভাইরাসের HTTPS স্ক্যানিং, রয়ে যাওয়া প্রক্সি, পুরোনো DNS বা সাইটটি নিজেই এর কারণ হতে পারে। ব্লকিং সম্ভাব্য হয় শুধু তখন, যখন রিসেট একটি নেটওয়ার্কে হয়, Client hello-র ঠিক পরে, এবং সাইটটি অন্য জায়গায় কাজ করে।
সাইটটি মোবাইল ডেটায় কাজ করে কিন্তু Wi-Fi-তে রিসেট হয় কেন?
দুটি নেটওয়ার্ক ভিন্ন প্রোভাইডার, রিজলভার ও ফিল্টার ব্যবহার করে। এদের একটি হয়তো সাইটের নাম পড়ে বা DNS-এর উত্তর ভিন্নভাবে দেয়। দুটিতেই curl -v চালান এবং তুলনা করুন প্রতিটি কোথায় থামে।
কুকি মুছলে কি connection reset ঠিক হবে?
খুব কমই। কুকি পাঠানো হয় সংযোগ তৈরির পরে, অথচ বেশিরভাগ রিসেট ঘটে তার আগে। সাইট নিজে কোনো খারাপ সেশন প্রত্যাখ্যান করলে সাইট ডেটা মোছা সাহায্য করতে পারে, যা সাধারণত বরং একটি HTTP ত্রুটি দেখায়।
আমার কোম্পানির ফায়ারওয়ালের কারণে হওয়া রিসেট কি GreenTunnel ঠিক করতে পারে?
এটি সেজন্য তৈরি নয়। একটি পরিচালিত নেটওয়ার্ক তার মালিকের নীতি অনুযায়ী সাইট ব্লক করে। এড়ানোর চেষ্টা না করে অ্যাডমিনিস্ট্রেটরকে জিজ্ঞাসা করুন।
সূত্র
- OONI ও Centre for Internet and Society, Investigating TLS blocking in India, জুলাই ২০২০।
- Centre for Internet and Society, Reliance Jio is using SNI inspection to block websites।
- ntc.party ফোরাম, SNI filtering by Indian ISP Reliance Jio।
- curl প্রজেক্ট, curl manual (
-vঅপশন)।