আপনি চার্জ করার জন্য একটি iPhone লাগান, আর এক মিনিট পরে আপনার Mac-এর VPN ট্রাফিক পাঠানো বন্ধ করে দেয়। সিস্টেম সেটিংস iPhone USB নামের একটি নতুন সার্ভিস দেখায়, আর সুস্পষ্ট পদক্ষেপ হলো এটি মুছে ফেলা। সেই পদক্ষেপটি প্রায়শই ভুল। সার্ভিসটি ফোনের পার্সোনাল হটস্পট হতে পারে, অথবা এটি এমন একটি লিংক হতে পারে যা Xcode ও ডিভাইস টুলিং ফোনের সঙ্গে কথা বলতে ব্যবহার করে, আর দুটির আচরণ এতটাই আলাদা যে মোছার আগে শনাক্তকরণ জরুরি।

ধাপ 1: ফোনটি আসলে যে সার্ভিস তৈরি করেছে তা পড়ুন

সিস্টেম সেটিংস খুলুন, তারপর নেটওয়ার্ক, এবং ফোন খুলে রাখা ও লাগানো অবস্থায় সার্ভিস তালিকা তুলনা করুন। বর্তমান macOS-এ সার্ভিসটি iPhone USB হিসেবে দেখানো হয়। এটি সক্রিয় কি না, সার্ভিস ক্রমে কোথায় আছে, এবং Mac এটি ডিফল্ট রুটে ব্যবহার করছে কি না তা লক্ষ্য করুন। সার্ভিস ক্রম গুরুত্বপূর্ণ, কারণ macOS গন্তব্যে পৌঁছাতে পারে এমন সবচেয়ে উঁচু সক্রিয় সার্ভিস বেছে নেয়, আপনি যার নাম চেনেন সেটি নয়।

Apple-এর পার্সোনাল হটস্পট নির্দেশিকা প্রক্রিয়াটি বর্ণনা করে: ফোনে পার্সোনাল হটস্পট সক্রিয় থাকা অবস্থায় USB-এ যুক্ত করলে Mac ফোনের সেলুলার সংযোগ ব্যবহার করতে পারে, এমনকি যখন আপনি কেবল চার্জ করতে চেয়েছিলেন। এটি VPN ক্লায়েন্টের বাগ নয়; রাউটিং টেবিল এমন একটি সার্ভিস অনুসরণ করছে যা Wi-Fi-এর আগে উঠে এসেছে।

সার্ভিসটি থাকা সত্ত্বেও ফোন যুক্ত অবস্থায় নিষ্ক্রিয় থাকে, তাহলে আপনি সম্ভবত হটস্পট নয়, বরং কেবল-চার্জিং সংযোগ বা ডিভাইস লিংক দেখছেন। এই পার্থক্যটি ধরে রাখুন, কারণ পরের দুই ধাপ আইকন থেকে অনুমান না করে এটি পরীক্ষা করে।

ধাপ 2: VPN এন্ডপয়েন্ট কোন রুট ব্যবহার করে তা দেখুন

ওয়েবসাইটে নয়, VPN সার্ভারের সমাধান হওয়া ঠিকানায় রুটটি পড়ুন। route -n get কেবল-পাঠযোগ্য এবং কার্নেল যে ইন্টারফেস ও গেটওয়ে ব্যবহার করবে তা ছাপে, আর দুই লাইনই গুরুত্বপূর্ণ।

scutil --dns | head -20
route -n get 203.0.113.10

উপরের ঠিকানাটি ডকুমেন্টেশনের জন্য একটি প্লেসহোল্ডার। এটি আপনার ক্লায়েন্ট যে এন্ডপয়েন্ট দেখায় তা দিয়ে বদলান, এবং ব্যবহার করুন route -n get -inet6 (IPv6 এন্ডপয়েন্টের জন্য)। ফোন খুলে রাখা ও লাগানো অবস্থায় আউটপুট তুলনা করুন, এবং দুই পাঠের মধ্যে কোনো রুট যোগ বা সরাবেন না। ইন্টারফেসটি en0 থেকে iPhone USB ইন্টারফেসে বদলে গেলে হটস্পট পথটি লুকআপে জিতেছে এবং VPN-এর বাইরের সংযোগ এখন সেলুলারে চলছে।

রুট পরিবর্তন সব ব্যর্থতা ব্যাখ্যা করে না। ক্লায়েন্ট এখনও সার্ভারে পৌঁছাতে পারে এবং পরে টানেলের ভিতরের ট্রাফিকে ব্যর্থ হতে পারে, কারণ নতুন পথের MTU আলাদা বা অপারেটর প্রোটোকল ব্লক করে। কিছু বদলানোর আগে ক্লায়েন্টের নিজের ত্রুটি পড়ুন: বাইরের হ্যান্ডশেক টাইমআউট পৌঁছানোর দিকে ইঙ্গিত করে, আর প্রতিষ্ঠিত টানেল ট্রাফিক পাঠানো বন্ধ করলে তা MTU, DNS বা নীতির দিকে ইঙ্গিত করে।

ধাপ 3: হটস্পটকে ডিভাইস-যোগাযোগ লিংক থেকে আলাদা করুন

Xcode 15 ও পরবর্তী সংস্করণ USB-এ যুক্ত ডিভাইসের সঙ্গে নেটওয়ার্ক-ভিত্তিক চ্যানেলে কথা বলে যাতে লিংক-লোকাল IPv6 থাকে, তাই একটি ডেভেলপমেন্ট Mac ইন্টারনেট অ্যাক্সেসের সঙ্গে সম্পর্কহীন অতিরিক্ত ইন্টারফেস দেখাতে পারে। Apple-এর TN3158 টেকনোট এই আচরণ নথিভুক্ত করে এবং সতর্ক করে যে VPN বা নিরাপত্তা ফিল্টারিং এতে হস্তক্ষেপ করতে পারে। এটি হটস্পট সমস্যার উল্টো দিক: ফোন ইন্টারনেট দেয় বলে VPN ভাঙে না; VPN এটি ধরে ফেলে বলে ডিভাইস সংযোগ ভাঙে।

প্যাকেট ক্যাপচার ছাড়াই দুটি পর্যবেক্ষণ ঘটনাগুলো আলাদা করে। প্রথমে দেখুন ইন্টারফেসে রাউটেবল ঠিকানা ও ডিফল্ট রুট আছে, নাকি কেবল লিংক-লোকাল fe80:: ঠিকানা; কেবল লিংক-লোকাল মানে ইন্টারনেট পথ নেই। দ্বিতীয়ে VPN বন্ধ করুন এবং Xcode আবার ডিভাইসে পৌঁছাতে পারে কি না দেখুন। পারলে, VPN-এর রুট বা কনটেন্ট ফিল্টার লিংক-লোকাল ট্রাফিক ধরে ফেলছে, আর সমাধান স্প্লিট-টানেল বা ফিল্টার কনফিগারেশনে, নেটওয়ার্ক প্যানেলে নয়।

ifconfig | grep -A4 -E '^en[0-9]+:'
netstat -rn -f inet6 | head

কেবল ইন্টারফেসের নাম দেখে বিচার করবেন না। ডিভাইস লাগার সঙ্গে macOS এই ইন্টারফেসগুলো তৈরি ও ধ্বংস করে, আর en নম্বরটি রানটাইমে বরাদ্দ হয়, তাই একই Mac রিবুট বা কেবল বদলের পরে ভিন্ন নম্বর দেখাতে পারে।

ধাপ 4: একবারে একটি পরিবর্তনশীল দিয়ে ব্যর্থতা পুনরুৎপাদন করুন

কোন সার্ভিস জড়িত তা জানার পরে নির্দিষ্ট ক্রমে সমস্যাটি পুনরুৎপাদন করুন। ফোন খুলে রাখা ও VPN সংযুক্ত অবস্থায় শুরু করুন। পার্সোনাল হটস্পট বন্ধ রেখে ফোন লাগান, নেটওয়ার্ক তালিকা স্থির হওয়া পর্যন্ত অপেক্ষা করুন, এবং আবার রুট কোয়েরি চালান। খুলে ফেলুন, পার্সোনাল হটস্পট চালু করুন, আবার লাগান, এবং পুনরাবৃত্তি করুন। তিন অবস্থার প্রতিটির জন্য ইন্টারফেস, গেটওয়ে ও ক্লায়েন্ট ত্রুটি লিখে রাখুন, তাহলে স্মৃতির বদলে আপনার কাছে তুলনা থাকবে।

VPN কেবল হটস্পট অবস্থায় ব্যর্থ হলে ফোনটিকে সেই পথ থেকে দূরে রাখুন: চার্জ করার সময় পার্সোনাল হটস্পট বন্ধ করুন, বা সার্ভিস ক্রমে iPhone USB সার্ভিসকে Wi-Fi-এর নিচে সরান। প্রতিটি লাগানো অবস্থায়, হটস্পট বন্ধ থাকা সহ, ব্যর্থ হলে ক্লায়েন্ট কীভাবে নেটওয়ার্ক রূপান্তর সামলায় তা দেখুন। কিছু ক্লায়েন্ট প্রাথমিক সার্ভিস বদলালে টানেল ভেঙে দেয় এবং পুনঃসংযোগ দরকার হয়; এটি ক্লায়েন্টের আচরণ, ফোনের ত্রুটি নয়।

প্রতি চেষ্টায় একটি জিনিস বদলান। সার্ভিস মোছা, VPN কনফিগারেশন রিসেট এবং ক্লায়েন্ট পুনরায় ইনস্টল একই মিনিটে করলে আপনার হাতে কাজ করা Mac থাকবে, কিন্তু কোন কাজটি ঠিক করেছে তা জানা থাকবে না।

ধাপ 5: কী রাখবেন আর কী যাচাই করবেন তা ঠিক করুন

ডিভাইস লিংকটিকে অক্ষত রাখুন। Xcode যে ইন্টারফেস ব্যবহার করে তা সরালে VPN রুট ঠিক হয় না, আর পরেরবার লাগানো পর্যন্ত ডিভাইস ডিপ্লয়মেন্ট ভাঙে। হটস্পট সার্ভিসটি সত্যিই অপ্রয়োজনীয় হলে আগে ফোনে পার্সোনাল হটস্পট বন্ধ করুন; এটি নথিভুক্ত নিয়ন্ত্রণ এবং রিবুটের পরেও টিকে থাকে।

সার্ভিস সরালে আপনি যে সার্ভিসটি শনাক্ত করেছেন সেটিই সরান, তারপর দুটি জিনিস যাচাই করুন: VPN এন্ডপয়েন্টের রুট প্রত্যাশিত ইন্টারফেসে ফিরেছে, এবং টানেল কেবল ইন্টারনেটে নয়, অভ্যন্তরীণ ঠিকানাতেও ট্রাফিক পাঠায়। সার্ভিস ক্রম ও ক্লায়েন্ট সংস্করণের নোট রাখুন, কারণ macOS আপডেট ফোনটি কীভাবে দেখা যায় তা বদলাতে পারে।

তারপর আপনি সত্যিই যে ব্যর্থতা দেখেছেন তা শ্রেণিবদ্ধ করুন। হ্যান্ডশেক টাইমআউট, টানেল ওঠার পর MTU থেমে যাওয়া এবং অপারেটরের কাছ থেকে আসা DNS উত্তর তিনটি আলাদা সমস্যা ও তিনটি আলাদা সমাধান। তিনটিতেই USB সার্ভিস ট্রিগার; কারণ হিসেবে এটি বিরল।

সম্পর্কিত নিবন্ধ