ব্যবহারিক নির্দেশিকা
স্ক্রিপ্ট দিয়ে Ubuntu-তে WireGuard VPN সার্ভার সেটআপ করার উপায়
নতুন Ubuntu সার্ভার থেকে ব্যক্তিগত VPN: সার্ভার সেটআপ, ডিভাইস প্রোফাইল এবং ইন্টারনেট ট্র্যাফিক টানেল দিয়ে যাচ্ছে কি না যাচাই।
সার্ভার সেটআপ, Linux কনটেইনারের সংযোগ এবং Windows-এর গতি পরীক্ষা হয়েছে। প্রকৃত macOS, Ubuntu Desktop, iPhone ও Android ডিভাইসের পরীক্ষা বাকি।
1. সার্ভার বেছে প্রবেশের ব্যবস্থা করুন
এই নির্দেশনা Ubuntu 26.04 LTS VPS-এ শুরু থেকে ইনস্টল করার জন্য। পাবলিক IPv4 এবং root পাসওয়ার্ড বা SSH কী দরকার। প্রয়োজন অনুযায়ী সেবাদাতা ও অঞ্চল বাছুন।
আমরা Vultr Shared CPU ব্যবহার করছি: 1 vCPU, 1 GB RAM, 25 GB SSD ও মাসে 1 TB ট্র্যাফিক।
IPv6-বিহীন নেটওয়ার্ক থেকেও যুক্ত হতে IPv4 নিন। শুধু IPv6 সার্ভার থেকে IPv4 সাইটে যেতে অতিরিক্ত ব্যবস্থা লাগে; তা এখানে নেই।
2. SSH দিয়ে লগইন যাচাই করুন
Windows: Start-এ PowerShell খুঁজে খুলুন। Mac: Command+Space, Terminal লিখে Enter। Ubuntu Desktop: Ctrl+Alt+T।
সব কমান্ডে SERVER_IP-এর বদলে সার্ভার প্যানেলের পাবলিক IPv4 দিন। ssh root@SERVER_IP সার্ভারে root হিসেবে ঢোকে।
পাসওয়ার্ডের কমান্ড বা আগে থেকে থাকা SSH কী-এর কমান্ড বাছুন। কী-এর উদাহরণ পাথ নিজের পাথ দিয়ে বদলান।
প্রথমবার SSH আস্থা নিশ্চিত করতে বলতে পারে। VPS ঠিকানা যাচাই করে yes লিখে Enter দিন। চাইলে root পাসওয়ার্ড লিখুন; টাইপ করার সময় অক্ষর দেখা যায় না।
ঢোকার পর Ubuntu যাচাইয়ের কমান্ড চালান, তারপর exit দিয়ে নিজের কম্পিউটারে ফিরুন।
ssh root@SERVER_IPssh -i ~/.ssh/id_ed25519 root@SERVER_IPcat /etc/os-release
exitssh কমান্ড না পাওয়া গেলে
Windows-এ PowerShell Run as administrator দিয়ে খুলে নিচের কমান্ড চালান। ইনস্টলের পর বন্ধ করে সাধারণ PowerShell খুলুন। Ubuntu-তে Ubuntu কমান্ড ব্যবহার করুন। macOS-এ SSH ক্লায়েন্ট আছে।
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0হুবহু কপি করুন। OpenSSH.Client~~~~0.0.1.0 Windows উপাদানের পরিচয়; টিল্ডা ও সংখ্যা বদলাবেন না।
sudo apt update
sudo apt install openssh-client3. সেটআপ প্যাকেজ নামিয়ে দেখুন
ZIP ডাউনলোড করে খুলুন। পাঁচটি স্ক্রিপ্ট wireguard-guide ফোল্ডারে একসঙ্গে রাখুন। নিচের Windows, Mac বা Ubuntu পথের একটি অনুসরণ করুন।
স্ক্রিপ্ট VPS-এ WireGuard বসিয়ে ডিভাইস প্রোফাইল বানায়। সার্ভারের পাসওয়ার্ড একাধিকবার চাইতে পারে।
4a. Windows থেকে সার্ভার সেটআপ
File Explorer-এ খোলা wireguard-guide ফোল্ডারটি খুলুন। ঠিকানার বারে powershell লিখে Enter দিন; সঠিক ফোল্ডারে PowerShell খুলবে।
দুটি কমান্ডের একটি চালান। SERVER_IP এবং কী ব্যবহার করলে তার পাথও বদলান।
-Device-এর পর windows প্রোফাইলের নাম। দ্বিতীয় কম্পিউটারে laptop-এর মতো অন্য নাম দিন। আলাদা প্রোফাইল থাকলে অন্যগুলো না কেটে একটি ডিভাইসের প্রবেশ বাতিল করা যায়।
শেষ হলে File Explorer ঠিকানার বারে %USERPROFILE%\WireGuard দিন। সার্ভার ও ডিভাইসের নামে ফোল্ডারে windows.conf পাবেন। স্ক্রিপ্ট পুরো পাথও দেখায়। ধাপ 5-এ VPN চালু করুন।
.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows -IdentityFile "$HOME\.ssh\id_ed25519"PowerShell স্ক্রিপ্ট আটকালে
ফাইলে ডিজিটাল স্বাক্ষর নেই বললে একই ফোল্ডারে এই কমান্ড চালিয়ে সেটআপ আবার চেষ্টা করুন।
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1স্ক্রিপ্ট চালানো বন্ধ থাকলে কমান্ডগুলো চালিয়ে প্রশ্নে সম্মতি দিন, তারপর আবার চেষ্টা করুন। এই পরিবর্তন PowerShell উইন্ডো বন্ধ হওয়া পর্যন্ত থাকে।
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1নীতির ত্রুটি থাকলে থামুন এবং নির্ণয়ের জন্য বার্তাটি রাখুন।
4b. Mac থেকে সার্ভার সেটআপ
Terminal খুলুন। cd ও একটি স্পেস লিখে Finder থেকে wireguard-guide ফোল্ডার Terminal-এ টেনে Enter দিন।
শুরুর bash-সহ একটি কমান্ড চালান। SERVER_IP এবং কী-এর পাথ বদলান। mac প্রোফাইলের নাম; অন্য Mac-এ macbook-এর মতো আলাদা নাম দিন।
Finder-এ Command+Shift+H দিয়ে নিজের হোম ফোল্ডার খুলুন। WireGuard ও সার্ভার-ডিভাইস ফোল্ডারে mac.conf পাবেন। স্ক্রিপ্ট পুরো পাথও দেখায়।
bash ./connect-wireguard-server.sh SERVER_IP macbash ./connect-wireguard-server.sh SERVER_IP mac 22 ~/.ssh/id_ed255194c. Ubuntu Desktop থেকে সার্ভার সেটআপ
Ctrl+Alt+T চাপুন। cd ও স্পেস লিখে wireguard-guide ফোল্ডার Terminal-এ টেনে Enter দিন।
SERVER_IP বদলে একটি কমান্ড চালান। ubuntu প্রোফাইলের নাম। এই লঞ্চার বা SSH লগইনে sudo লাগে না।
ফাইল ম্যানেজারে Home, WireGuard ও সার্ভার-ডিভাইস ফোল্ডার খুলুন। আসল সার্ভার ঠিকানাসহ ~/WireGuard/SERVER_IP-ubuntu/ubuntu.conf-এ প্রোফাইল থাকে। সংযোগে NetworkManager ব্যবহার করব।
bash ./connect-wireguard-server.sh SERVER_IP ubuntubash ./connect-wireguard-server.sh SERVER_IP ubuntu 22 ~/.ssh/id_ed255195a. Windows বা macOS যুক্ত করুন
অফিশিয়াল WireGuard অ্যাপ বসান। তৈরি .conf ফাইল ইমপোর্ট করে VPN অনুমতি দিন এবং টানেল চালু করুন। ইমপোর্ট অপশনের নাম সংস্করণভেদে বদলাতে পারে।
প্রোফাইল IPv4 টানেলে পাঠায় এবং IPv6 বাইরে যাওয়া ঠেকাতে ডিফল্ট IPv6 রুট রাখে। সার্ভার IPv6 ইন্টারনেট দেয় না। নিচের পরীক্ষায় ডিভাইসের বাস্তব আচরণ দেখুন।
প্রোফাইলে ব্যক্তিগত কী থাকে। কপি থাকা ব্যক্তি ডিভাইসের VPN পরিচয় ব্যবহার করতে পারে। সহায়তার টিকিট, অনলাইন QR জেনারেটর বা অন্য ডিভাইসে এটি শেয়ার করবেন না।
5b. NetworkManager দিয়ে Ubuntu Desktop যুক্ত করুন
NetworkManager প্রোফাইল, DNS ও রুট সামলায়; গ্রাফিক্যাল ইমপোর্ট উইন্ডোর সংস্করণের ওপর নির্ভর করে না। কমান্ড নিজের ডেস্কটপে চালান, VPS-এর SSH-এ নয়। আগে nmcli আছে ও NetworkManager চলছে যাচাই করুন।
ubuntu.conf থেকে ubuntu নামের সংযোগ হয়। নাম আগে থাকলে অন্য ডিভাইস নাম দিয়ে কমান্ড মিলিয়ে নিন। একবার ইমপোর্ট করুন; পরে up ও down ব্যবহার করুন। নিচের সেটিং কম্পিউটার চালু হলে স্বয়ংক্রিয় VPN বন্ধ রাখে।
এই DNS সেটিং সংযোগ চালু থাকা অবস্থায় সব নামের জন্য VPN-কে অগ্রাধিকার দেয়। ব্রাউজারের নিরাপদ DNS আলাদা হতে পারে। ধাপ 7-এ IP, DNS ও IPv6 দেখুন। প্রকৃত Ubuntu Desktop-এ এই পদ্ধতি এখনও পরীক্ষিত নয়; কনটেইনার পরীক্ষা ডেস্কটপ DNS বা IPv6 প্রমাণ করে না।
একই প্রোফাইল একসঙ্গে wg-quick দিয়ে চালাবেন না; রুটের সংঘাত হতে পারে। গ্রাফিক্যাল দৃশ্য আলাদা হলেও nmcli দিয়ে যাচাই ও বিচ্ছিন্ন করা যায়।
nmcli --version
systemctl is-active NetworkManagersudo nmcli connection import type wireguard file "$HOME/WireGuard/SERVER_IP-ubuntu/ubuntu.conf"
sudo nmcli connection modify ubuntu connection.autoconnect no ipv4.dns-priority -50 ipv4.dns-search "~."sudo nmcli connection up ubuntu
nmcli connection show --activesudo nmcli connection down ubuntu6. QR দিয়ে iPhone বা Android যুক্ত করুন
নিচের App Store বা Google Play লিংক থেকে অফিশিয়াল WireGuard অ্যাপ বসান।
কম্পিউটার থেকে ssh root@SERVER_IP বা নিজের কী-এর কমান্ড দিয়ে VPS-এ আবার ঢুকুন। ফোনের কমান্ড প্রোফাইল বানিয়ে QR দেখায়।
ফোনের WireGuard-এ QR স্ক্যান করে টানেল যোগ করা বাছুন। কম্পিউটারের কোড স্ক্যান করে নাম দিন, VPN অনুমতি দিয়ে চালু করুন।
প্রতি ফোনে আলাদা প্রোফাইল। QR শেয়ার করবেন না: এতে VPN-এ প্রবেশ মেলে। কোডের লাইন ভেঙে গেলে Terminal বড় করে আবার দেখান।
python3 /root/internetspeed-wireguard/manage-client.py add iphone
qrencode -t ANSIUTF8 < /etc/wireguard/clients/iphone.confpython3 /root/internetspeed-wireguard/manage-client.py add android
qrencode -t ANSIUTF8 < /etc/wireguard/clients/android.conf7. ইন্টারনেট VPN দিয়ে যাচ্ছে যাচাই করুন
VPN চালুর আগে My IP খুলে ঠিকানা লিখে রাখুন। WireGuard চালিয়ে My IP রিফ্রেশ করে VPS-এর পাবলিক IPv4-এর সঙ্গে মিলান।
পাতা খুলে VPS ঠিকানা দেখালে সেই ব্রাউজারের সংযোগ VPN দিয়ে যাচ্ছে। পুরোনো ঠিকানা থাকলে সমস্যা সমাধান দেখুন।
এটি ব্রাউজার যাচাই, সব অ্যাপ বা VPN বিচ্ছিন্ন হলে সুরক্ষার নিশ্চয়তা নয়। বাড়তি পরীক্ষা DNS ও IPv6-এর জন্য।
ঐচ্ছিক: IPv6 ও DNS পরীক্ষা
IPv6: আগে Test IPv6 খুলে IPv6 ঠিকানা আছে কি না দেখুন। VPN চালিয়ে আবার করুন। এই IPv4 সেটআপে IPv6 ইন্টারনেট চলার কথা নয়। স্বাভাবিক IPv6 দেখা গেলে টানেলের বাইরে যাচ্ছে। আগে IPv6 না থাকলে এই পরীক্ষা IPv6 নেটওয়ার্কের আচরণ বলতে পারে না।
DNS: VPN চালু রেখে DNS Leak Test-এ Standard test করুন। প্রোফাইল Cloudflare DNS ব্যবহার করে। বাড়ির ইন্টারনেট সেবাদাতা দেখালে ডিভাইস DNS দেখুন। অন্য সেবাদাতা ব্রাউজারের Secure DNS থেকেও আসতে পারে; নিজে থেকেই লিকের প্রমাণ নয়। ফল সব অ্যাপ সুরক্ষিত থাকার নিশ্চয়তা দেয় না।
8. সংযোগের সমস্যা সমাধান
My IP-তে স্বাভাবিক ঠিকানা থাকলে WireGuard প্রোফাইল চালু আছে দেখুন। একবার বন্ধ-চালু করে My IP রিফ্রেশ করুন।
VPN চালু হলে সাইট না খুললে VPN বন্ধ করে একই পাতা দেখুন। তখনও না চললে আগে স্বাভাবিক ইন্টারনেট ঠিক করুন। শুধু VPN-এ সমস্যা হলে নিচে দেখুন।
তুলনার জন্য কম্পিউটার ফোনের হটস্পটে যুক্ত করুন। ফোনে Wi-Fi বন্ধ করে মোবাইল ডেটা ব্যবহার করুন; খরচ হতে পারে। এটি সাময়িক পরীক্ষা। শুধু মোবাইলে চললে সমস্যা ওই Wi-Fi সংযোগের সঙ্গে সম্পর্কিত, সঠিক কারণ এখনও জানা যায়নি।
সেটআপ ত্রুটিতে থামলে শেষ বার্তা রাখুন। কারণ ঠিক করে একই ডিভাইস নাম দিয়ে কমান্ড আবার চালান। পুরোনো প্রোফাইল থাকবে।
VPN সার্ভার চলছে যাচাই করুন
ধাপ 2-এর মতো SSH-এ ঢুকে কমান্ড চালান। ফল active হওয়া উচিত। inactive বা failed হলে রিস্টার্ট কমান্ড দিয়ে আবার দেখুন। active না হলে ত্রুটি রাখুন।
systemctl is-active wg-quick@wg0systemctl restart wg-quick@wg0
systemctl is-active wg-quick@wg0রিস্টার্টে যুক্ত ডিভাইস কিছুক্ষণের জন্য বিচ্ছিন্ন হয়।
ডিভাইস সার্ভারে পৌঁছাচ্ছে যাচাই করুন
VPN চালিয়ে My IP খুলুন এবং সার্ভারে wg show চালান। ডিভাইসের নিচে latest handshake খুঁজুন। 10 seconds ago মানে সদ্য এনক্রিপ্টেড সংযোগ হয়েছে। লাইন না থাকলে ওই ডিভাইসের সফল সংযোগ নথিভুক্ত হয়নি।
নতুন সংযোগ না থাকলে Endpoint-এ VPS ঠিকানা ও :51820 দেখুন। VPS প্যানেলে Firewall বা Security groups খুলুন। যুক্ত ফায়ারওয়াল থাকলে আগত UDP পোর্ট 51820 অনুমোদন দরকার। প্যানেল সেবাদাতাভেদে আলাদা; Ubuntu ফায়ারওয়াল স্ক্রিপ্ট সেট করে।
সাম্প্রতিক handshake থাকলেও সাইট না খুললে ফল ও অ্যাপের ত্রুটি বা লগ রাখুন। উন্নত নেটওয়ার্ক সেটিং এলোমেলো বদলালে নির্ণয় কঠিন হয়।
wg show9. কী গতি আশা করা যায়?
Windows পরীক্ষায় ডাউনলোড প্রায় 350–400 Mbps ও আপলোড 450–500 Mbps হয়েছে। প্রকল্পের অন্য VPN-এর মতো একই পদ্ধতি ব্যবহৃত হয়েছে। পথ: San Diego-র ব্যবহারকারী → San Francisco Bay Area-র VPN → Seattle-এর মাপার সার্ভার।
Vultr Shared CPU vc2-1c-1gb: 1 vCPU, 1 GB RAM, 25 GB SSD ও মাসে 1 TB ট্র্যাফিক; নেওয়ার সময় মাসে 5 মার্কিন ডলার।
এটি এই সেটআপের ফল। আপনার গতি ইন্টারনেট, সার্ভার ও অবস্থানের ওপর নির্ভর করে। অন্য VPS প্যাকেজ বা সেবাদাতার তুলনা এখনও হয়নি।
10. খরচ, গোপনীয়তা ও সেবাদাতার সীমা
নিজের VPN সেটিং ও একটি নির্বাচিত বের হওয়ার স্থান নিয়ন্ত্রণ করতে দেয়। আপডেট, বিল, ডিভাইসের প্রবেশ ও পুনরুদ্ধার নিজের দায়িত্ব। হোস্টিং সেবাদাতার কাছে বেনামি করে না বা HTTPS-এর বিকল্প নয়।
ব্রাউজিং, ভিডিও, ডাউনলোড, আপলোড ও গতি পরীক্ষা VPS ট্র্যাফিক কোটা খরচ করে। প্যানেলে বাকি কোটা দেখুন। অতিক্রম করলে প্যাকেজ অনুযায়ী বাড়তি ফি বা সীমাবদ্ধতা হতে পারে।
P2P-এর আগে সেবাদাতার বর্তমান শর্ত ও প্রযোজ্য আইন দেখুন। প্রোটোকল ও বিষয়বস্তুর অধিকার আলাদা। শুধু অধিকার আছে এমন কনটেন্ট ডাউনলোড ও শেয়ার করুন; সব হোস্ট সব P2P অনুমতি দেয় না।
ডেটা সেন্টার IP-তে CAPTCHA, পরিষেবা বা স্ট্রিমিং বাধা আসতে পারে। সাধারণ WireGuard সব ফিল্টার করা নেটওয়ার্কে প্রবেশ নিশ্চিত করে না। এক VPS একক ব্যর্থতার স্থান; বড় সেবাদাতার মতো বহু অঞ্চল ও বিকল্প সার্ভার নেই।
11. ডিভাইস যোগ, প্রবেশ বাতিল ও রক্ষণাবেক্ষণ
প্রতি ডিভাইসে এক প্রোফাইল। হারানো ফোনের নামের peer সার্ভার থেকে এবং বাকি প্রোফাইল কপি মুছে নতুন বানান। শুধু ফোনের ফাইল মুছলে সার্ভারের প্রবেশ বাতিল হয় না।
Ubuntu নিরাপত্তা আপডেট দিন ও রিবুট দরকার দেখুন। সুবিধাজনক সময় রিবুট করে VPN ফিরেছে নিশ্চিত করুন। হোস্টিং অ্যাকাউন্ট ও SSH রক্ষা করুন; SSH যাচাইকরণ আলাদা ধাপে পরীক্ষিত বিকল্প লগইন রেখে বদলান।
সরানোর স্ক্রিপ্ট এই VPN থামিয়ে নিজের সেটিং ও ফায়ারওয়াল নিয়ম মোছে। SSH, UFW ও প্যাকেজ থাকে। ফরওয়ার্ডিং রিবুটে সিস্টেম নীতি প্রয়োগ হওয়া পর্যন্ত চালু থাকে। VPN মোছা VPS বিল বন্ধ করে না; দরকারি ডেটা রেখে অপ্রয়োজনীয় সার্ভার সেবাদাতার প্যানেল থেকে মুছুন।
python3 /root/internetspeed-wireguard/manage-client.py remove iphoneapt update
apt list --upgradable
test ! -f /var/run/reboot-required || cat /var/run/reboot-requiredbash /root/internetspeed-wireguard/remove-server.sh --confirm