প্রকল্প সম্পর্কে

vpnonly হলো macOS-এর জন্য একটি হালকা স্প্লিট-টানেলিং টুল, যা শুধু আপনার নির্দিষ্ট করা অ্যাপ্লিকেশনগুলোকে WireGuard VPN-এর মাধ্যমে রাউট করে। সবকিু টানেল করা সাধারণ VPN ক্লায়েন্টদের থেকে আলাদা, vpnonly আপনার ব্রাউজার, ব্যাংকিং অ্যাপ এবং স্ট্রিমিং সেবাকে আপনার স্বাভাবিক ইন্টারনেট সংযোগে রাখে, আর শুধু নির্বাচিত অ্যাপগুলোকে VPN এক্সিটের মধ্য দিয়ে পাঠায়। টুলটি macOS-এর অন্তর্নির্মিত PF ফায়ারওয়াল ব্যবহার করে কাজ করে, যা অ্যাপ্লিকেশন অনুযায়ী নয় বরং Unix গ্রুপ সদস্যতা অনুযায়ী প্যাকেট ম্যাচ করতে পারে। যখন আপনি vpnonly-এর মাধ্যমে একটি অ্যাপ চালু করেন, এটি অ্যাপটিকে একটি বিশেষ গ্রুপ অ্যাসাইন করে চালায়, তারপর PF নিয়ম ওই গ্রুপের ট্রাফিককে WireGuard ইন্টারফেসের মধ্য দিয়ে রাউট করে, আর বাকি সবকিছু স্বাভাবিকভাবে চলতে থাকে। প্রকল্পটিতে প্রায় 350 লাইন শেল স্ক্রিপ্ট এবং একটি ছোট C লঞ্চার ফাইল আছে। এতে কোনো কার্নেল এক্সটেনশন, কোনো Network Extension এনটাইটেলমেন্ট লাগে না, এবং এটি কখনো /etc/pf.conf বা আপনার ডিফল্ট রুট পরিবর্তন করে না। নিয়মগুলো একটি ডেডিকেটেড অ্যাংকরে থাকে, আর VPN বন্ধ করলে শুধু সেই নিয়মগুলোই মুছে যায়। WireGuard সমর্থনের জন্য এটি Homebrew-এর স্টক wireguard-go বান্ডল করে। CLI সংস্করণ NordVPN-এর সাথে সরাসরি কাজ করে, কিন্তু ক্রিপ্টোকি রাউটিং ব্যবহারকারী প্রোভাইডারদের (Mullvad, Proton, সেলফ-হোস্টেড সার্ভার) জন্য প্যাচ করা wireguard-go দরকার, যা ভেতরের সোর্স অ্যাড্রেস পুনর্লিখন করে — এই প্যাচটি কম্পাইল করা Mac অ্যাপে আছে, তবে এখনো CLI ফর্মুলায় নেই। পরিচিত সীমাবদ্ধতার মধ্যে রয়েছে Safari এবং অন্যান্য WebKit অ্যাপ (তারা সংযোগগুলো আলাদা সিস্টেম প্রসেসের মাধ্যমে রাউট করে, যেগুলো কখনোই গ্রুপ বহন করে না), DNS কোয়েরি (টানেল করা হয় না, তাই লুকআপ এখনো স্বাভাবিকভাবে এক্সিট করে), এবং IPv6 (গ্রুপভুক্ত অ্যাপের জন্য টানেল করা হয় না, বরং ব্লক করা হয়)। সার্ভার ড্রপ করলে স্বয়ংক্রিয় পুনঃসংযোগও নেই। ইনস্টলেশন Homebrew-এর মাধ্যমে: brew tap kanishkdan/vpnonly && brew install vpnonly। vpnonly.app-এ একটি পেইড Mac অ্যাপ সংস্করণও ($19, দুইটি Mac-এর জন্য) পাওয়া যায়, যেখানে অ্যাপ পুনরায় চালু না করে প্রতি-অ্যাপ টগল, স্বয়ংক্রিয় আপডেট এবং একটি দেশ নির্বাচক-এর মতো অতিরিক্ত ফিচার আছে। app-engine/ -এর অধীনে সোর্স কোড চেকসামসহ প্রকাশিত, যাতে ব্যবহারকারীরা বিশ্বাস করার আগে ঠিক কী root হিসেবে চলে তা অডিট করতে পারেন। সব প্রিভিলেজড স্ক্রিপ্ট পাঁচ মিনিটে পড়ার মতো যথেষ্ট ছোট।