macOS-এ qBittorrent কে VPN ইন্টারফেসে বাঁধার উপায়
macOS-এ qBittorrent-এর Advanced-এ Network Interface সেট করুন, utun নামগুলোকে চলমান টানেলের সাথে মেলান, ক্লায়েন্ট রিস্টার্ট করুন, তারপর একটি ট্রান্সফার দিয়ে বাঁধাই প্রমাণ করুন।
আমি একটি Mac mini-তে qBittorrent খুলে Network Interface-এ utun4 সেট করলাম, রিস্টার্ট করলাম, আর তারপর একটি দুপুরবেলা ধরে দেখলাম একটি টরেন্ট মেটাডেটা আনার সময় আটকে আছে, অথচ VPN তখনও সুস্থ সংযোগ দেখাচ্ছে। সেটিংটি নীতিগতভাবে ভুল ছিল না; নামটিই পুরোনো হয়ে গিয়েছিল। macOS সার্ভিস চালু হওয়ার সময় utun নম্বর দেয়, তাই এক সপ্তাহ আগে যে utun4 ঠিক ছিল সেটি এখন আর নেই এমন একটি টানেলের দিকে ইঙ্গিত করছিল, আর ক্লায়েন্ট তার সকেটগুলোকে রুটহীন একটি ডিভাইসে বাঁধছিল। নিচের ক্রমটিই আমি এখন ব্যবহার করি: চলমান টানেল থেকে ইন্টারফেস পড়ুন, ক্লায়েন্টে সেটি বাছুন, সেশন রিস্টার্ট করুন, তারপর একটি ট্রান্সফার ও ইচ্ছাকৃত সংযোগ বিচ্ছেদ দিয়ে বাঁধাই প্রমাণ করুন।
Advanced খুলে ইন্টারফেসের ঘরটি খুঁজুন
qBittorrent উইন্ডোতে Cmd+, দিয়ে Preferences খুলে Advanced পাতায় যান। Network Interface-ই গুরুত্বপূর্ণ ঘর: এটি সিস্টেমের ইন্টারফেস নামগুলো তালিকাভুক্ত করে এবং ডিফল্টে Any Interface-এ থাকে, অর্থাৎ অপারেটিং সিস্টেম ক্লায়েন্ট যে সকেটই খোলে তার জন্য একটি রুট বেছে নেয়। প্রকল্পের অপশন রেফারেন্স এই ঘর ও সেই ডিফল্ট নথিভুক্ত করে, আর ভেতরের নামগুলো এক না হলেও এটি প্রতিটি প্ল্যাটফর্মে একই সেটিং।
এখানে দুটি বিষয় মানুষকে বিভ্রান্ত করে। তালিকাটি en0, en1 এবং utun0 থেকে utun9-এর মতো ডিভাইসের নাম দেখায়, কখনও VPN প্রদানকারীর পণ্যের নাম নয়, তাই বুদ্ধিমান কিছু বাছার আগে আপনার ম্যাপিং দরকার। আর নির্বাচনটি BitTorrent সেশন শুরু হওয়ার সময় প্রয়োগ হয়, আপনি OK চাপার মুহূর্তে নয়, তাই সংরক্ষিত দেখানো একটি পরিবর্তনও পুরোনো বাঁধাইয়ের উপর চলতে পারে।
অ্যাপটি Cmd+Q দিয়ে ঠিকভাবে বন্ধ করুন এবং আবার খোলার আগে প্রসেসটি চলে গেছে নিশ্চিত করুন। শুধু উইন্ডো বন্ধ করলে তা লুকিয়ে যায়, আর লুকানো ক্লায়েন্ট তার সেশন, শোনার পোর্ট ও পুরোনো ইন্টারফেস ধরে রাখে।
pgrep -fl qbittorrentআপনার VPN আসলে যে ইন্টারফেসের মালিক সেটি খুঁজুন
আগে প্রদানকারীর নিজস্ব ক্লায়েন্ট দিয়ে VPN সংযুক্ত করুন, তারপর ক্লায়েন্টের মেনুর বদলে সিস্টেমের দৃষ্টিভঙ্গি পড়ুন। নিচের কমান্ডগুলো প্রতিটি ইন্টারফেস তার ঠিকানাসহ তালিকা করে, সিস্টেম কোনগুলো সক্রিয় মনে করে দেখায় এবং রাউটিং টেবিল ছাপে; আপনি সেই utun ডিভাইসটি খুঁজছেন যা আপনার প্রদানকারীর দেওয়া প্রাইভেট রেঞ্জ বহন করে।
ifconfig -a | grep -A4 '^utun'
scutil --nwi
netstat -rn -f inet | head -n 5তিনটি পাঠ বলে দেয় কোন ডিভাইসটি টানেল। utun এন্ট্রির VPN-এর পুলের অন্তর্গত একটি inet ঠিকানা দরকার। scutil --nwi দেখায় সিস্টেম কোন ইন্টারফেসগুলো সক্রিয় মনে করে এবং কোনটি প্রাথমিক। netstat -rn দেখায় ডিফল্ট রুট কোথায় ইঙ্গিত করছে, আর সেই রুট যদি এখনও en0-এর দিকে ইঙ্গিত করে অথচ একটি utun-এর ঠিকানা আছে, তাহলে টানেল সব ট্রাফিক বহন করছে না, যা পরে বাঁধাই কী করবে তা বদলে দেয়।
যখন একসাথে দুটি টানেল থাকতে পারে, যেমন একটি কাজের প্রোফাইল ও একটি ব্যক্তিগত, তখন দুটি utun ডিভাইসই উপস্থিত থাকে এবং কেবল একটি কাজে লাগে। বাইট কাউন্টার প্রশ্নটির মীমাংসা করে: কাউন্টারগুলো লিখে নিন, একটি পাতা লোড করুন বা ছোট একটি ট্রান্সফার শুরু করুন এবং দেখুন কোনটি সরেছে।
netstat -ib | grep utunনম্বরটিকে স্থিরও ভাববেন না। পুনঃসংযোগ একই টানেলকে ভিন্ন utun নাম দিতে পারে, আর iCloud বা Continuity সার্ভিস আপনার VPN সংযুক্ত হওয়ার অনেক আগেই utun0 দখল করতে পারে।
বাঁধাইকে টানেলের পরিধির সাথে মেলান
ঘরটি একটি ডিভাইস বাঁধে, এর বেশি কিছু নয়। VPN যদি এমন পূর্ণ টানেল হয় যা 0.0.0.0/0 কে utun-এ রুট করে, তবে সেই ডিভাইসে বাঁধাই প্রতিটি পিয়ার সংযোগ ও ট্র্যাকার অনুরোধ VPN-এর মধ্য দিয়ে পাঠায়। VPN যদি এমন বিভক্ত টানেল হয় যা কেবল কয়েকটি সাবনেট রুট করে, তবে utun-এ বাঁধাই পিয়ার ট্রাফিককে সেই পিয়ারগুলোর জন্য রুটহীন একটি ডিভাইসে পাঠায়, আর ট্রান্সফার লিক না করে থেমে যায়। দুটি ফলাফলই Any Interface-এর চেয়ে নিরাপদ, কিন্তু কেবল একটি ক্লায়েন্টকে কাজ করতে রাখে। ক্লায়েন্টের বাইরে কিছুই বদলায় না: ব্রাউজার ও অন্য অ্যাপ নিজেদের রুট ধরে রাখে, তাই প্রতিটি অ্যাপ্লিকেশনকে কভার করা কোনো শর্ত VPN-এর দিক থেকে প্রয়োগ করতে হয়।
কিছু বাছার আগে পরিস্থিতি পড়ুন:
| What you see | What it means for the bind |
|---|---|
| A utun with a provider address and the default route pointing at it | Full tunnel; the bind covers peer and tracker traffic |
| A utun with a provider address but the default route still on en0 | Split tunnel; the bind will stall transfers unless the provider routes 0.0.0.0/0 |
| No utun carrying a provider address | The VPN is down or connects on demand; bring it up before selecting |
| A utun number that changed since the last session | The saved name is stale; reselect and restart |
ঠিকানা পরিবারও গুরুত্বপূর্ণ। যে প্রদানকারী কেবল IPv4 দেয়, তিনি বাঁধা ইন্টারফেসকে IPv6 ঠিকানা ছাড়াই রাখেন, তাই IPv6 পিয়াররা Wi-Fi দিয়ে বেরিয়ে যাওয়ার বদলে ব্যর্থ হয়। আলাদাভাবে, সকেট বাঁধাই নাম সমাধান স্থির করে না: ট্র্যাকার হোস্টনেম macOS রিজলভারের মাধ্যমে সমাধান হয়, যা নির্বাচিত ডিভাইসের বদলে সিস্টেমের DNS কনফিগারেশন অনুসরণ করে।
সঠিক দেখতে একটি নির্বাচন ব্যর্থ হওয়ার তিন উপায়
প্রথম ব্যর্থতা হলো রিস্টার্ট না করা। ঘরে utun4 দেখায়, পছন্দগুলো কনফিগার করা মনে হয়, তবুও একটি পরীক্ষামূলক ট্রান্সফার Wi-Fi দিয়ে বেরিয়ে যায়, কারণ চলমান সেশন পুরোনো বাঁধাই ধরে রেখেছে। সম্পূর্ণ বন্ধ করুন, pgrep দিয়ে নিশ্চিত করুন, আবার খুলুন এবং ট্রান্সফার আবার শুরু করুন।
দ্বিতীয়টি হলো পুনঃসংযোগের পরে পুরোনো নাম। বাঁধা ডিভাইসটি হারিয়ে গেলেই পিয়ার সংযোগ ব্যর্থ হয় এবং ক্লায়েন্ট পরিষ্কার ইন্টারফেস-চলে-গেছে বার্তার বদলে ট্র্যাকার ত্রুটি জানাতে ঝোঁক, যা মৃত টরেন্টের মতো শোনায়। ifconfig আবার পড়ুন, নতুন নাম বাছুন এবং রিস্টার্ট করুন।
তৃতীয়টি হলো ধরে নেওয়া যে বাঁধাই বন্ধ অবস্থায় ব্যর্থ হয়। একটি ইন্টারফেস বাছলে সিস্টেমকে একটি ডিভাইস নামে সকেট সংযুক্ত করতে বলা হয়; সেই নাম না থাকলে বা পুনর্ব্যবহৃত হলে কী হয়, তা সেটিংস স্ক্রিন নিশ্চিত করে না। পরের অংশের সংযোগ-বিচ্ছেদ পরীক্ষাই একমাত্র প্রমাণ যা গণ্য হয়।
সত্যিকারের ট্রান্সফার ও সংযোগ বিচ্ছেদ দিয়ে যাচাই করুন
আপনার চালানোর অনুমতি আছে এমন একটি ট্রান্সফার ব্যবহার করুন, যেমন একটি Linux ডিস্ট্রিবিউশন ইমেজ, এবং VPN সংযুক্ত থাকলে তা শুরু করুন। আগে ও পরে প্রতি-ইন্টারফেস কাউন্টার দেখুন এবং সেগুলো VPN ক্লায়েন্টের নিজস্ব ডেটা কাউন্টারের সাথে মেলান; পিয়ার তালিকা ভরতে ভরতে দুটোই একসাথে বাড়া উচিত।
netstat -ib | grep utun
pgrep -fl qbittorrentতারপর VPN কে তার নিজস্ব ইন্টারফেস থেকে বিচ্ছিন্ন করুন এবং ট্রান্সফার দেখুন। পিয়াররা সরে যাওয়া উচিত, আর টানেল নামার অল্প পরেই নতুন সংযোগ ব্যর্থ হওয়া উচিত। থ্রুপুট চলতে থাকলে বাঁধাই কার্যকর নয় এবং আপনি ফায়ারওয়ালে নয়, রিস্টার্ট ধাপেই ফিরে আছেন।
আবার সংযুক্ত করুন এবং বাছা নামটি আবার দেখুন, কারণ টানেল ভিন্ন utun-এ ফিরে আসতে পারে। টানেলের ধরন, ইন্টারফেসের নাম এবং VPN নামলে প্রত্যাশিত আচরণ লিখে রাখা একটি ছোট নোট পরের সেশন বাঁচায়: এই সেটিংটি প্রতি মেশিন ও প্রতি প্রদানকারীর জন্য, এবং এটি ক্লায়েন্ট আপগ্রেড বা VPN অ্যাপ বদল কোনোটাই সহ্য করে না।