এটি VirtualBox ম্যানেজমেন্টে চতুর্থ আর্টিকেল। আজ, আমি আপনাকে VirtualBox নেটওয়ার্কিং এবং শেয়ারিং সম্পর্কে আপনার যা কিছু জানার দরকার সেটি শিখাব।
আমি আপনাকে তিনটি ভিন্ন পদ্ধতিতে আপনার ভার্চুয়াল মেশিন কনফিগার করা এবং হোস্ট মেশিন এবং ভার্চুয়াল মেশিনের মধ্যে ডেটা শেয়ার করার তিনটি ভিন্ন উপায় দেখাব। এই টিউটোরিয়াল মাস্টার করার পর, আপনি VirtualBox ফান এবং কনফিডেন্সের সাথে ব্যবহার সম্পর্কে সব কিছু জানবেন। আমার সাথে চলুন।
পরিচিতি
আরও ডিটেইলসের জন্য, আপনাকে নিচের আর্টিকেলগুলো পড়া উচিত। সেগুলো আপনাকে আজকের মাটেরিয়াল সহজে এবং আনন্দের সাথে ফলো করার জন্য প্রয়োজনীয় ব্যাকগ্রাউন্ড দেবে:
How to install VirtualBox Guest Additions - Tutorial
VirtualBox 3 is amazing!
VirtualBox 3 Compiz slideshow
DirectX in VirtualBox 3 - Pure joy is here
একইভাবে, আপনাকে এই সিরিজের প্রথম তিনটি ইনস্টলমেন্ট পড়া উচিত:
How to clone disks in VirtualBox - Tutorial
How to add hard disks in VirtualBox - Tutorial
How to expand/shrink disks in VirtualBox - Tutorial
এখন, চলুন শুরু করি।
VirtualBox নেটওয়ার্ক অপশনস
আপনার যেকোনো ইনস্টলড ভার্চুয়াল মেশিনের জন্য, Settings > Network-এ ক্লিক করুন। এখানেই ফান শুরু হয়। এটি ডিফল্ট ভিউ। যেকোনো ভার্চুয়াল মেশিনের যেতে পারে চারটি নেটওয়ার্ক অ্যাডাপ্টার পর্যন্ত। আপনি সিলেক্টিভলি সেগুলো ইনএবল করতে পারেন যেমন আপনি ফিট দেখেন। অধিকাংশ মানুষকে শুধু একটি দরকার।
Adapter Type ডিফাইন করে ভার্চুয়ালাইজড হার্ডওয়্যার যা VirtualBox আপনার ভার্চুয়াল মেশিনে এক্সপোজ করবে। আপনার যদি Adapter টাইপের সাথে কোনো সমস্যা থাকে, আপনি অন্যটি ট্রাই করতে পারেন। PCnet-FAST III ডিফল্ট সিলেকশন।
আপনার পাশাপাশি PCnet-FAST II আছে পুরনো মেশিনের জন্য এবং তিনটি টাইপের Intel PRO/1000 কার্ড, দুইটি Server ভার্সন সহ, যা প্রোডাকশন এনভায়রনমেন্টে VirtualBox চালানোর লোকদের জন্য উপযোগী হওয়া উচিত। হোম ইউজারদের জন্য, চয়সটি বরং ট্রান্সপারেন্ট।
সবচেয়ে ইন্টারেস্টিং অংশ হলো Attached to: সেকশন। এই ক্যাটাগরি ডিফাইন করে আপনার নেটওয়ার্ক অ্যাডাপ্টার কীভাবে এক্সিস্টিং ফিজিক্যাল হার্ডওয়্যারের সাথে ইন্টারফেস করবে। ভিন্ন সেটআপ ফলাফলে марকেডলি ভিন্ন রেজাল্ট দেবে।
নেটওয়ার্ক টাইপস
এখানে চারটি অপশন আছে: NAT (ডিফল্ট), Bridged, Internal network, এবং Host Only। অবশ্যই, Not attachedও একটি টাইপ, কিন্তু একটা যা আমরা রিয়েলি ব্যবহার করতে পারি, per se।
Network Address Translation (NAT)
NAT মানে ভার্চুয়াল মেশিনগুলো প্রাইভেট IP অ্যাড্রেস পাবে যা আউটসাইড থেকে রাউটেবল নয়।
উদাহরণ: আপনার হোস্ট ১৯২.১৬৮.১.১। VirtualBox NAT ডিভাইস ১০.০.২.১ হিসেবে মার্ক করা হবে। তাই ভার্চুয়াল মেশিনগুলো ১০.০.২.x রেঞ্জের যেকোনো অ্যাড্রেস পাবে। যেহেতু ১০.০.২.x/২৪ সাবনেটের মেশিনগুলোর এক্সেস রাউট করার কিছু নেই, তারা আপনার হোস্ট থেকে inaccessible থাকবে।
এই সেটআপ উপযোগী যখন আপনি কেয়ার করেন না আপনার গেস্টরা কী IP পাচ্ছে, প্রতিটির নিজস্ব। যাইহোক, এটি ভালো নয় আপনার ফরওয়ার্ডিং দরকার হলে বা আপনি এক্সটার্নাল ওয়ার্ল্ডে সার্ভিসেস এক্সপোজ করতে চান। একইভাবে, এই সেটআপ নেটওয়ার্ক অ্যাক্সেস দিয়ে শেয়ারিং-এর জন্য ভালো নয়।
প্লাসেস: সিমপ্লিসিটি & seclusion।
মাইনাসেস: ভার্চুয়াল মেশিনে কোনো রুট নেই, নেটওয়ার্ক শেয়ারিং নেই।
Bridged Adapter
Bridged Adapter মানে যেকোনো রানিং ভার্চুয়াল মেশিন চেষ্টা করবে একটি IP অ্যাড্রেস অর্জন করার জন্য সেই সোর্স থেকে যেটি আপনার করেন্টলি এক্টিভ, ডিফল্ট নেটওয়ার্ক অ্যাড্রেস তার IP পেয়েছে। তাই bridged টার্ম, কারণ দুটো কানেক্টেড।
আপনার যদি একাধিক এক্টিভ নেটওয়ার্ক ডিভাইস থাকে, আপনি চুজ করতে পারেন কোনটি VirtualBox-এর সাথে ব্রিজ করতে চান। আমাদের কেসে, আমরা Wireless অ্যাডাপ্টার wlan0 ব্যবহার করব।
উদাহরণ: আপনার হোস্ট ১৯২.১৬৮.১.১০০ অ্যাড্রেস লীজ করেছে রাউটার থেকে। ভার্চুয়াল মেশিন ১৯২.১৬৮.১.১০৩ অ্যাড্রেস লীজ করেছে রাউটার থেকে। দুটি মেশিন এখন একই নেটওয়ার্ক শেয়ার করে এবং সব স্ট্যান্ডার্ড রুল প্রযোজ্য। সব প্র্যাক্টিক্যাল উদ্দেশ্যে, ভার্চুয়াল মেশিন আপনার LAN-এ অন্য একটি IP অ্যাড্রেস।
আরও ঘনিষ্ঠভাবে, হোস্ট:
এবং গেস্ট:
এই সেটআপ কাজ করবে না যদি আপনার ডিভাইস (সুইচ, রাউটার, ISP, ইত্যাদি) আপনাকে একাধিক IP অ্যাড্রেস লীজ করার অনুমতি না দেয়। তাই, ডায়রেক্ট ইন্টারনেট অ্যাক্সেস वाले কম্পিউটার Bridged নেটওয়ার্কিং ব্যবহার করতে পারবে না।
প্লাসেস: নেটওয়ার্কের ফ্লেক্সিবল ম্যানেজমেন্ট পোর্ট ফরওয়ার্ডিং এবং সার্ভিসেস এনাবল্ড সহ। ক্লাসিক্যাল উপায়ে নেটওয়ার্ক শেয়ারিং অনুমতি দেয়।
মাইনাসেস: ডায়রেক্ট ইন্টারনেট অ্যাক্সেসের সাথে কাজ নাও করতে পারে (রাউটার দরকার), নতুন ইউজারদের জন্য বেশি কঠিন বুঝতে, মেশিনগুলো নেটওয়ার্কে এক্সপোজ করে সম্ভাব্য সিকিউরিটি ইমপ্লিকেশনসহ।
Host-only Adapter
Host-only Adapter খুব ইন্টারেস্টিং। এটি Bridged Adapter-এর সাথে খুব সিমিলার, বাদে এটি একটি ডেডিকেটেড নেটওয়ার্ক ডিভাইস ব্যবহার করে, যাকে vboxnet0 বলা হয়, IP অ্যাড্রেস লীজ করার জন্য।
আপনার হোস্ট মেশিন হলো ডি-ফ্যাক্টো VirtualBox রাউটার, IP অ্যাড্রেস ১৯২.১৬৮.৫৬.১। অ্যাডাপ্টারটি ব্যবহারে নেই যদি কোনো ভার্চুয়াল মেশিন Host-only সেটআপ দিয়ে রান না করে। যাইহোক, একবার সেগুলো আপ হলে, এই অ্যাডাপ্টার ভার্চুয়াল মেশিনগুলোর IP অ্যাড্রেস সার্ভ করে, আপনার নিজের নেটওয়ার্কের মধ্যে একটি ইন্টারনাল LAN তৈরি করে।
উদাহরণ: আপনার হোস্টের IP অ্যাড্রেস ১৯২.১৬৮.৫৬.১। আপনার ভার্চুয়াল মেশিনের IP অ্যাড্রেস ১৯২.১৬৮.৫৬.১০১।
আরও ঘনিষ্ঠভাবে, হোস্ট:
এবং গেস্ট:
এটি কাফি সিমিলার VMware Server যা করে। VMware Server-এ এর দুটি ভার্চুয়াল অ্যাডাপ্টার আছে যাদেরকে vmnet1 এবং vmnet8 বলা হয়, যেগুলো গেস্টদের NAT এবং host-only IP অ্যাড্রেস অ্যাসাইন করতে ব্যবহৃত হয়। যাইহোক, VirtualBox NAT অ্যাডাপ্টারের অনব sond, VMware Server সবসময় হোস্টের ডিফল্ট নেটওয়ার্ক ডিভাইস ব্রিজ করে এবং তাই আপনার NAT-এড মেশিনগুলোর ডায়রেক্ট নেটওয়ার্ক অ্যাক্সেস থাকে। আপনার VirtualBox-এ এই লাক্সরি নেই (যতক্ষণ)।
কিন্তু vboxnet0-এর যোগফল VirtualBox 3-এ এই ফিনোমেনাল প্রোডাক্টে নেটওয়ার্ক ইউজ উল্লেখযোগ্যভাবে সিম্পলিফাই করেছে। আপনি যদি আগের রিলিজে আমার যেসব সমস্যা হয়েছিল সেগুলো রিকল করতে চান, আমার VMGL টিউটোরিয়াল দেখুন। আমাকে সব কিছু ম্যানুয়ালি কনফিগার করতে হতো। BTW, আপনি ডিফল্ট IP অ্যাড্রেস অ্যালোকেশন চেঞ্জ করতে পারেন, আপনি চাইলে।
খুব গুরুত্বপূর্ণ, দয়া করে লক্ষ্য করুন যে Host-only অ্যাডাপ্টার ব্যবহার করার মানে নয় যে আপনার গেস্টদের ইন্টারনেট অ্যাক্সেস হবে। আসলে, তারা পাবে না। vboxnet0-এ কোনো ডিফল্ট গেটওয়ে নেই। vboxnet0-কে লোকাল নেটওয়ার্কের বাইরে কোয়েরি সার্ভ করতে সক্ষম করতে, আপনাকে এটি অন্য অ্যাডাপ্টারের সাথে ব্যবহার করার জন্য কনফিগার করতে হবে, ফরওয়ার্ডিং এনাবল করতে হবে এবং সম্ভবত আপনার ফায়ারওয়াল রুলস রিকনফিগার করতে হবে। শেষে, আপনি Bridged নেটওয়ার্কিং অর্জন করবেন, তাই কেন কষ্ট করবেন?
Host-only Adapter প্রাইভেট নেটওয়ার্ক তৈরি করার জন্য উপযোগী, যেখানে মেশিনগুলোর একে অপরের সাথে অ্যাক্সেস দরকার কিন্তু বাহ্যিক ওয়ার্ল্ডে না।
প্লাসেস: নויזি সফটওয়্যার টেস্টিং, পেনিট্রেশন টেস্টিং-এর জন্য উপযোগী। IP অ্যাড্রেস দিয়ে ক্লাসিক নেটওয়ার্ক শেয়ারিং অনুমতি দেয়।
মাইনাসেস: নতুন ইউজারদের জন্য ব্রিজড নেটওয়ার্কিংের মতো কঠিন বুঝতে, ভার্চুয়াল মেশিনে ইন্টারনেট অ্যাক্সেস নেই। প্রাইভেট নেটওয়ার্কের অন্যান্য মেশিনে সিকিউরিটি রিস্ক ইন্ট্রোডিউস করতে পারে।
Internal network
Internal network আমার মতামতে খুব ইন্টারেস্টিং নয়। এটি Host-only + NAT-এর সিমিলার, বাদে নেটওয়ার্কিং গেস্ট মেশিনের ভার্চুয়াল নেটওয়ার্কের ভিতরে হয়, হোস্টের জন্য কোনো অ্যাক্সেস ছাড়া, প্লাস কোনো রিয়েল NAT নেই। আপনি যা পাবেন সেটি হলো আপনার গেস্টদের জন্য একটি প্রাইভেট LAN, এক্সটার্নাল ওয়ার্ল্ডের কোনো অ্যাক্সেস ছাড়া।
VirtualBox-এ শেয়ারিং
এখন যেহেতু আমরা নেটওয়ার্কিং অপশনগুলো বুঝতে পেরেছি, আসুন কিছু শেয়ারিং ট্রাই করি। VirtualBox-এ আপনার ডেটা শেয়ার করার দুটি উপায় আছে, হয় ডায়রেক্ট নেটওয়ার্ক অ্যাক্সেস দিয়ে, IP অ্যাড্রেস ব্যবহার করে, অথবা Shared Folders ফিচার ব্যবহার করে।
পারসোনালি, আমি নেটওয়ার্ক সলিউশন পছন্দ করি, কারণ রিয়েল ওয়ার্ল্ডে জিনিসগুলো هكذا কাজ করে। আপনি অন্য মেশিনগুলোর রিকোয়েস্ট পাঠান নেটওয়ার্কের মাধ্যমে। যদি তাদের শেয়ারিং সার্ভিস থাকে, NFS বা Sambaリスেনিং এবং আপনি প্রপারলি অথেন্টিকেটেড থাকেন, আপনাকে শেয়ার লিস্ট দেওয়া হবে এবং আপনি এই সার্ভারের সাথে ফাইল এক্সচেঞ্জ করতে পারবেন। অন্য একটি শেয়ারিং উপায় FTP বা SSH, আবার, ক্লাসিক নেটওয়ার্ক চ্যানেল ব্যবহার করে।
Shared Folders একটি ফিচার যেখানে আপনি আপনার হোস্টে একটি ফোল্ডার তৈরি করেন এবং তারপর এটিকে আপনার ভার্চুয়াল মেশিনের ভিতরে মাউন্ট করেন। এটি সব নেটওয়ার্ক সেটআপের জন্য কাজ করে এবং একটি ইন্টারন্যাল VirtualBox শেয়ারিং সার্ভার ব্যবহার করে গেস্ট অ্যাক্সেস শেয়ারড ডেটা-তে অনুমতি দেয়।
নেটওয়ার্কের মাধ্যমে শেয়ারিং
আগে, আমরা উল্লেখ করেছি যে নেটওয়ার্কের মাধ্যমে শেয়ারিং শুধু Bridged এবং Host-only নেটওয়ার্কের জন্য সম্ভব। আসুন দুটি উদাহরণ দেখি। প্রথম ধাপ হলো গেস্ট মেশিনে শেয়ারিং অ্যালো করা।
তারপর, আপনি ভার্চুয়াল মেশিনটি এর IP অ্যাড্রেস দিয়ে অ্যাক্সেস করেন।
Windows-এ:
Windows-এ, Start > Run > \\XXX.XXX.XXX.XXX ব্যবহার করুন এবং X এর ট্রিপলেটগুলো আসল IP দিয়ে রিপ্লেস করুন ভার্চুয়াল মেশিনের।
Linux-এ:
ফাইল ম্যানেজারের অ্যাড্রেস বারে smb://XXX.XXX.XXX.XXX টাইপ করুন। smb:// スタ্যান্ডার্ড করে Samba নেটওয়ার্ক প্রোটোকল। X এর ট্রিপলেটগুলো দাঁড়ায় আমাদের গেস্ট মেশিনের IP অ্যাড্রেস।
Bridged নেটওয়ার্কিংয়ের সাথে, এটা এরকম দেখে:
Host-only-র সাথে, এটা এরকম দেখে:
Windows shares টাইটেলটি ইগনোর করুন। Samba সাধারণত Windows হোস্টের সাথে শেয়ার করতে ব্যবহৃত হয়। NFS লিনাক্স মেশিনের জন্য আরও টিপিক্যাল। Samba প্রিয়, কারণ এটি উভয়ের সাথে কাজ করে। Samba শেয়ারিং সম্পর্কে আরও জানতে, এই টিউটোরিয়ালটি দেখুন।
Shared Folders
P.S. উপরের সব কিছু Windows এবং Linux গেস্টদের জন্য একই, বটোয়। এই উদ্দেশ্যে, আমি Shared Folders ডেমো করব একটি Windows মেশিনে লাস্ট সেট অফ স্ক্রিনশট নিই।
এখন, Shared Folders সেটআপ করা খুব সিম্পল। আপনার প্রথম ধাপ হলো আপনার হোস্টে একটি ফোল্ডার কনফিগার করা যা আপনি শেয়ার করতে চান। যেকোনো ভার্চুয়াল মেশিনের জন্য, Settings মেনু খুলুন এবং Shared Folders-এ যান।
রাইট পেনে, আপনার মেশিনের সব শেয়ারড ফোল্ডারের একটি লিস্ট থাকবে। আপনি সেগুলো অ্যাড এবং রিমুভ করতে পারেন যেমন আপনি ফিট দেখেন। ডান দিকের ছোট আইকনগুলো সেজন্য ব্যবহৃত হয়।
Folder Path:
এটি আসল, ফিজিক্যাল পাথ যা আপনি শেয়ার করতে চান। Windows-এ, ফোল্ডার পাথ হবে কিছু C:\shared এর মত। Linux-এ, এটি কিছু /home/roger/shared এর মত দেখাবে।
Folder Name:
এটি শেয়ারটির নাম যা আপনার গেস্টরা দেখবে। স্পেস ছাড়া নাম ব্যবহার করুন, কিছু Shared-folder বা Banana এর মত। এই নাম আসল ফোল্ডারের সাথে সেম হতে পারে যা আপনি শেয়ার করছেন, কিন্তু হতে হবে নয়। কিন্তু লক্ষ্য করুন, এটি একটি পাথ নয়! এটি ভার্চুয়াল মেশিনের জন্য একটি সিম্বলিক নাম যা তারা ব্যবহার করে, কারণ তারা আপনার ফিজিক্যাল হার্ডওয়্যার দেখে না।
একবার পাথ তৈরি করলে, আপনার ভার্চুয়াল মেশিন বুট করুন।
Windows-এ:
আপনার ভার্চুয়াল মেশিন যদি একটি Windows হোস্ট হয়, আপনি নেটওয়ার্ক শেয়ার অ্যাক্সেস করতে পারেন হয় কমান্ড লাইন দিয়ে বা Explorer মেনুতে Tools > Map Network Drive অপশন ব্যবহার করে।
কমান্ড লাইনে, আপনাকে net use কমান্ড ব্যবহার করতে হবে।
net use
net use হলো নেটওয়ার্ক ড্রাইভ মাউন্ট করার কমান্ড।
\\vboxsvr\share-name হলো শেয়ারের পাথ। \\vboxsvr হলো VirtualBox শেয়ারিং সার্ভার। share-name হলো আগের আসল ফোল্ডার নাম। তাই আপনি আপনার শেয়ার Rambo নামে থাকলে, পাথ পড়বে \\vboxsvr\Rambo।
কমান্ডটি তখন এরকম দেখাবে:
net use h: \\vboxsvr\Rambo
Explorer-এ Tools মেনু দিয়ে, এটা এরকম দেখে:
আপনি Reconnect at logon চেক করতে পারেন, যাতে আপনাকে প্রতিবার ভার্চুয়াল মেশিন পাওয়ার অন করার সময় এই টাস্ক রিপিট করতে না হয়। একবার Finish-এ ক্লিক করলে, আপনার My Computer-এ একটি নতুন ড্রাইভ থাকবে। এই নতুন ড্রাইভ লেটার খুললে আপনাকে Shared ফোল্ডারের ভিতরে নিয়ে যাবে।
Linux-এ:
এটি একটি সিম্পল কমান্ড দিয়ে করা হয় একটি টার্মিনাল উইন্ডোতে:
mount -t vboxsf share mount_point
vboxsf হলো pseudo-filesystem টাইপ যা Shared Folder মাউন্ট করতে ব্যবহৃত হয়। এটি VirtualBox দ্বারা ব্যবহৃত ভার্চুয়াল শেয়ারিং সার্ভিসের জন্য একটি অ্যাবস্ট্রাক্ট ট্রান্সলেশন লেয়ার।
share হলো আগের ফোল্ডারের নাম। মনে রাখুন, নাম, পাথ নয়! উদাহরণস্বরূপ, আমাদের শেয়ার Banana নামে থাকলে share = Banana।
mount_point হলো আপনার Linux ট্রিতে যেকোনো ডিরেক্টরি যেখানে আপনি Shared folder মাউন্ট করতে চান। উদাহরণস্বরূপ, /home/roger/shares-go-here।
এইভাবে, আমাদের কমান্ডটি দেখে:
mount -t vboxsf Banana /home/roger/shares-go-here
এবং তারপর, আপনার হোস্টে শেয়ারড ফোল্ডারের ভিতরে যা কিছু আছে, সেটি ভার্চুয়াল মেশিনের ভিতরে উপরের পাথে যেতে দিয়ে ভিজিবল হবে।
টাস্ক অটোমেট করতে, আপনি /etc/fstab মেনুতে mount অপশন অ্যাড করতে পারেন। আবার, কীভাবে করবেন তার ডিটেইলসের জন্য, আমার Linux commands টিউটোরিয়াল রেফার করুন।
BTW, Settings মেনুতে help লক্ষ্য করুন, কীভাবে অর্জন করবেন সেটি ব্যাখ্যা করে!
এবং এটাই সব।
উপসংহার
এখন, আপনি VirtualBox network & sharing সম্পর্কে যা কিছু জানার দরকার সেটি জানেন। Windows, Linux, bridged, host-only, NAT, নেটওয়ার্ক দিয়ে শেয়ারিং, Shared Folders দিয়ে শেয়ারিং, আপনি নাম দিন, আপনার সব কিছু আছে। আশা করি আপনি এই টিউটোরিয়াল উপভোগ করেছেন।
আরও ভালো জিনিসের জন্য 기다리게 থাকুন।
চিয়ার্স।