SSD Nodes Learn 8GB RAM — $66/বছর
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-08-01

WireGuard বনাম Tailscale বনাম Headscale: VPS-এ কোনটি?

Tailscale হলো WireGuard-এর সঙ্গে একটি control plane। coordination server কী সুবিধা ও খরচ আনে, আর VPS-এ WireGuard, Tailscale না Headscale বেছে নেবেন কেন, তা জানুন।

WireGuard বনাম Tailscale: সংক্ষিপ্ত উত্তর

WireGuard বনাম Tailscale দুটি প্রোটোকলের মধ্যে পছন্দ নয়, কারণ Tailscale নিজেই WireGuard। Tailscale একই এনক্রিপশন এবং একই টানেল ব্যবহার করে। এর সঙ্গে একটি control plane যোগ করে: একটি coordination server, যা public key বিনিময় করে, address বিতরণ করে, NAT (network address translation)-এর মধ্য দিয়ে সংযোগ স্থাপন করে এবং access policy প্রয়োগ করে। আপনি ঠিক করছেন, এই coordination-এর কতটা নিজে পরিচালনা করবেন।

এখানে তিনটি সরাসরি উত্তর আছে। আপনার একটি server এবং অল্প কয়েকটি client থাকলে, যেগুলো সব ওই server-এ সংযোগ করে, plain WireGuard ব্যবহার করুন। প্রতিটি machine-কে অন্য প্রতিটি machine-এ পৌঁছাতে দিতে চাইলে এবং কোনো config file রক্ষণাবেক্ষণ করতে না চাইলে, Tailscale ব্যবহার করুন। একই mesh চাইলে কিন্তু কোনো third party-র কাছে node list রাখতে না চাইলে, Headscale ব্যবহার করুন।

কন্ট্রোল প্লেন আসলে কী সুবিধা দেয়

সাধারণ WireGuard-এ কোনো discovery ব্যবস্থা নেই। প্রতিটি peer হলো হাতে লেখা একটি টেক্সট ব্লক: একটি public key, একটি AllowedIPs লাইন এবং peer-টি reachable হলে একটি Endpoint। দশটি মেশিনের নেটওয়ার্কে একটি মেশিন যোগ করতে হলে দশটি config file সম্পাদনা করতে হয়, কারণ প্রতিটি পাশে অপর পাশের key প্রয়োজন। এ কারণেই প্রায় সব self-hosted WireGuard setup hub-and-spoke পদ্ধতির: public IP-সহ একটি server থাকে, আর client-গুলো কেবল সেই server-এর সঙ্গেই যোগাযোগ করে।

একটি control plane এই সম্পাদনার প্রয়োজন দূর করে। প্রতিটি node একবার register করে, 100.64.0.0/10 CGNAT (carrier grade NAT) range থেকে একটি address পায় এবং যেসব node-এ তার reach করার অনুমতি আছে, সেসব node-এর public key পায়। Tunnel এখনও দুই peer-এর মধ্যে সরাসরি WireGuard connection থাকে, এবং আপনার traffic কখনও coordination server-এর মধ্য দিয়ে যায় না। Server যে তথ্য বহন করে তা হলো metadata: কোন node বিদ্যমান, কোন key কার এবং কে কার সঙ্গে যোগাযোগ করতে পারবে।

এতে তিনটি নির্দিষ্ট সুবিধা পাওয়া যায়।

NAT traversal। দুটি home router-এর পেছনে থাকা দুটি laptop-এর মধ্যে কোনো public IP থাকে না। Tailscale STUN (session traversal utilities for NAT) ব্যবহার করে উভয় পাশের বাইরের address এবং port শনাক্ত করে। এরপর উভয় পাশ একই সময়ে packet পাঠায়, যাতে প্রতিটি router প্রথমে একটি outgoing flow দেখে এবং reply গ্রহণ করে। এটি ব্যর্থ হলে traffic DERP relay-তে fallback করে। এটি Tailscale পরিচালিত একটি encrypted relay। Relay-এর মধ্য দিয়ে গেলেও আপনার data end-to-end encrypted থাকে, কারণ relay-এর কাছে key থাকে না। tailscale status চালালে প্রতিটি peer line-এ direct অথবা relay দেখা যায়। কোন relay সবচেয়ে কাছের এবং আপনার network আদৌ UDP অনুমতি দেয় কি না দেখতে tailscale netcheck চালান।

মেয়াদসহ key rotation। WireGuard key-এর কখনও expiry হয় না। তিন বছর আগে তৈরি করা একটি key আপনি হাতে peer block মুছে না দিলে চিরকাল কাজ করে। এর পরিবর্তে Tailscale node key-এর মেয়াদ শেষ করে। July 2026 অনুযায়ী, নতুন tailnet-এ default expiry period হলো 180 days। যে machine পুনরায় authenticate করেনি, সেটি connection করা বন্ধ করে দেয়। কোনো server বা subnet router-এ login করার জন্য কেউ উপস্থিত না থাকলে, সেই device-এর জন্য expiry বন্ধ করতে পারেন।

Routing-এর পরিবর্তে policy। সাধারণ WireGuard-এ AllowedIPs একই সঙ্গে routing table এবং access control list। তাই “alice database-এ পৌঁছাতে পারবে” কথাটি একটি IP range হিসেবে প্রকাশ করতে হয়। Tailscale একটি পৃথক policy file রাখে, যেখানে rule-এ user, group এবং tag-এর নাম ব্যবহার করা যায়। একটি rule বলতে পারে যে tag:laptop port 5432-এ tag:db-এ পৌঁছাতে পারবে, অন্য কোথাও নয়। কোনো machine নতুন address পেলেও সেই rule কার্যকর থাকে।

কন্ট্রোল প্লেনের খরচ

সমন্বয় সার্ভার আপনার নেটওয়ার্ক সম্পর্কে জানে। এতে প্রতিটি নোডের public key, প্রতিটি নোডের নাম, বরাদ্দ করা ঠিকানাগুলো এবং নীতি সংরক্ষিত থাকে। hosted Tailscale ব্যবহার করলে এই সার্ভার আপনার নিয়ন্ত্রণের বাইরের একটি কোম্পানি পরিচালনা করে। তারা আপনার প্যাকেটের বিষয়বস্তু পড়তে পারে না, কারণ WireGuard private key আপনার মেশিনগুলোতেই থাকে। তবে আপনার নেটওয়ার্কের কাঠামো তারা দেখতে পারে। তাদের service চালু থাকা এবং আপনার account বৈধ অবস্থায় থাকার ওপর আপনার সংযোগ স্থাপনের ক্ষমতাও নির্ভর করে।

আরেকটি খরচ সহজেই চোখ এড়িয়ে যায়। Tailscale প্রতিটি মেশিনে একটি daemon হিসেবে চলে। তাই প্রতিটি মেশিনে এই software-এর patch বজায় রাখতে হবে। Ubuntu 24.04-এর সাধারণ WireGuard distribution-এর সঙ্গে সরবরাহ করা একটি kernel module। এটি kernel-এর সঙ্গে update হয়।

তৃতীয় খরচ হলো billing। July 2026 অনুযায়ী, Personal plan বিনামূল্যে এবং এতে সর্বোচ্চ 6 জন user-এর জন্য unlimited device ব্যবহার করা যায়। Standard-এর মূল্য user-পিছু প্রতি মাসে $8। Premium-এর মূল্য user-পিছু প্রতি মাসে $18। একটি household বিনামূল্যেই থাকে। 10 জনের একটি team বিনামূল্যে থাকে না।

যখন সাধারণ WireGuard সঠিক সমাধান

টপোলজি যদি সত্যিই hub-and-spoke হয়, তাহলে সাধারণ WireGuard বেছে নিন। একটি public IP-সহ VPS থাকবে, তিন বা চারটি device সেটিতে সংযুক্ত হবে, এবং ওই device-গুলোর একে অপরের কাছে পৌঁছানোর প্রয়োজন থাকবে না। কনফিগারেশনটি এক স্ক্রিনে রাখা যায়। আপডেট করার জন্য কোনো daemon নেই, হারানোর মতো কোনো account নেই, এবং আপনার ও server-এর মাঝখানে কোনো বাইরের service থাকে না।

সবকিছুর ভিত্তিতে থাকা স্তরটি বুঝতে চাইলে এটিও সঠিক সমাধান। VPS-এ WireGuard VPN নিজে host করা-এ key generation, wg0.conf, IP forwarding, NAT এবং handshake failure নিয়ে ধাপে ধাপে আলোচনা করা হয়েছে। এই প্রতিটি প্রক্রিয়া tailnet-এর নিচেও চলতে থাকে। আপনি যদি এখনও পুরোনো বিকল্পটি বিবেচনা করেন, তাহলে WireGuard বনাম OpenVPN-এ সেই চারটি পরিস্থিতি ব্যাখ্যা করা হয়েছে যেখানে OpenVPN এখনও সুবিধা ধরে রেখেছে।

ইনস্টলেশন সংক্ষিপ্ত:

sudo apt update && sudo apt install -y wireguard
sudo modprobe wireguard && echo ok

প্রতিটি device-কে অন্য প্রতিটি device-এ পৌঁছাতে হলে সাধারণ WireGuard ব্যবহার করা আর সুবিধাজনক থাকে না। Nটি node-এর একটি full mesh-এর জন্য N times N minus one peer block প্রয়োজন। ছয়টি device-এ হাতে সমন্বয় করে রাখার মতো ত্রিশটি block হয়। কোনো AllowedIPs entry দ্বৈতভাবে থাকলে সেটি কোনো error না দেখিয়েই সেই peer-এর traffic নিজের দিকে নিয়ে নেয়, যে peer-এর কাছে entryটি আগে ছিল।

Tailscale কখন সঠিক সমাধান

মেশিনগুলো স্থান পরিবর্তন করলে Tailscale বেছে নিন। হোটেলের নেটওয়ার্কে থাকা ল্যাপটপ, মোবাইল ডেটা ব্যবহার করা ফোন, অথবা এমন রাউটারের পেছনে থাকা হোম সার্ভার যেটি আপনার নিয়ন্ত্রণে নেই—এগুলোই সেই পরিস্থিতি যেখানে সাধারণ WireGuard ভালোভাবে কাজ করে না। কারণ কোনো পাশেই Endpoint-এ দেওয়ার মতো স্থিতিশীল public endpoint থাকে না।

অফিশিয়াল installer থেকে একটি command ব্যবহার করে client ইনস্টল করুন:

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
tailscale status

tailscale up একটি URL দেখায়। এটি খুলুন, লগ ইন করুন, এবং মেশিনটি network-এ যুক্ত হবে। কোনো key কপি করতে হবে না এবং কোনো inbound port খুলতে হবে না। কারণ daemon coordination server-এ একটি outbound connection তৈরি করে এবং সেটি খোলা রাখে। এ কারণেই এমন network-এও Tailscale node কাজ করে যেখানে কোনো firewall আপনার নিয়ন্ত্রণে নেই।

এরপর দুটি setting বেশিরভাগ প্রয়োজনীয় কাজ করে। একটি subnet router পুরো LAN-কে network-এ advertise করে, তাই প্রতিটি device-এ client ইনস্টল করতে হয় না:

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
sudo tailscale set --advertise-routes=192.0.2.0/24

আপনি admin console-এ অনুমোদন না করা পর্যন্ত route-টি inactive থাকে। এটি ইচ্ছাকৃত: কোনো node নিজে থেকে আপনার network-এ route inject করতে পারে না। Linux client-এরও sudo tailscale set --accept-routes প্রয়োজন। কারণ Linux ডিফল্টভাবে advertised route গ্রহণ করে না। তাই server side-এ route-টি অনুমোদিত দেখালেও sudo tailscale set --accept-routes সেট না করা পর্যন্ত Linux laptop-এ এটি কোনো কাজ করবে না।

একটি exit node কোনো client-এর সব traffic একটি মেশিনের মাধ্যমে পাঠায়। সাধারণত "VPN" বলতে মানুষ full tunnel আচরণকেই বোঝায়:

sudo tailscale set --advertise-exit-node

কখন Headscale উপযুক্ত

Headscale হলো coordination server-এর একটি open source implementation। এটি আপনার মালিকানাধীন একটি VPS-এ চলে। Official Tailscale clients hosted service-এর পরিবর্তে এতে সংযোগ করে:

sudo tailscale up --login-server https://headscale.example.com

Data path-এর কোনো পরিবর্তন হয় না। এটি এখনও WireGuard ব্যবহার করে এবং network-এর অনুমতি থাকলে peers-এর মধ্যে সরাসরি সংযোগ বজায় থাকে। পরিবর্তনটি হলো node list, cryptographic keys এবং policy আপনার মালিকানাধীন disk-এর একটি SQLite file-এ থাকে। বাইরের কেউ আপনার network-এর গঠন দেখতে, আপনার account নিষ্ক্রিয় করতে বা প্রতি user অনুযায়ী আপনাকে bill করতে পারে না।

এই ব্যবস্থার জন্য বাস্তব প্রশাসনিক কাজ করতে হয়। এখন আপনাকে একটি public HTTPS service চালাতে হবে। এর জন্য একটি DNS name, একটি certificate এবং এমন একটি reverse proxy দরকার, যা WebSocket upgrades সঠিকভাবে forward করে। এর uptime-এর দায়িত্ব আপনার। Coordination server বন্ধ থাকলে নতুন nodes register করতে পারে না এবং বিদ্যমান nodes পরিবর্তন সম্পর্কে জানতে পারে না। Headscale এখনও version 1.0-এর নিচে, এবং এর minor releases-এ breaking changes হয়েছে। তাই প্রতিটি upgrade-এর আগে changelog পড়ুন। নিজের Tailscale control server হিসেবে Headscale চালানো-এ installation, config.yaml, preauth keys এবং যে ports খুলতে হবে তা ব্যাখ্যা করা হয়েছে।

একটি সীমাবদ্ধতা অনেকেই দেরিতে বুঝতে পারেন। Headscale-এর সঙ্গে Tailscale-এর global relay network থাকে না। দুটি peer সরাসরি সংযোগ করতে না পারলে, আপনাকে নিজের server-এ embedded relay চালু করতে হবে অথবা config-এ অন্য একটি relay নির্দিষ্ট করতে হবে। সেই relay একটি single region-এর single box, বিশ্বব্যাপী fleet নয়। পৃথিবীর দূর প্রান্তে থাকা peers এই পার্থক্য অনুভব করবে।

এক ধাপে কীভাবে সিদ্ধান্ত নেবেন

কতগুলো মেশিনকে একে অপরের সঙ্গে যোগাযোগ করতে হবে, তা নির্ধারণ করুন। যদি উত্তর হয় যে সব মেশিন শুধু server-এর সঙ্গে যোগাযোগ করবে, তাহলে একই ফলের জন্য সাধারণ WireGuard-এ কম software লাগে।

মেশিনগুলোর স্থিতিশীল public address আছে কি না দেখুন। বেশিরভাগ মেশিন যদি আপনার নিয়ন্ত্রণের বাইরে থাকা NAT-এর পেছনে থাকে, তাহলে আপনার একটি control plane দরকার। কারণ hole punching-ই কঠিন অংশ, আর এটি নতুন করে তৈরি করার মতো কাজ নয়।

আপনার network-এর কাঠামো কে জানতে পারবে, তা নির্ধারণ করুন। যদি বাইরের কোম্পানিগুলোকে এই তথ্য জানানো গ্রহণযোগ্য না হয়, অথবা user-এর সংখ্যা per-seat billing-কে ব্যয়বহুল করে তোলে, তাহলে Headscale চালান। তবে এতে আপনাকেই control server পরিচালনা করতে হবে।

আপনি কম খরচে সিদ্ধান্ত পরিবর্তন করতে পারেন। তিন ক্ষেত্রেই data plane একই protocol ব্যবহার করে। তাই সাধারণ WireGuard থেকে coordinated mesh-এ যেতে client install করলেই হয়; redesign করার প্রয়োজন নেই। Tailscale থেকে Headscale-এ যেতে প্রতিটি node-কে আলাদা login server-এর বিরুদ্ধে পুনরায় নিবন্ধন করতে হয়।

তিনটির কোনোটিই যে সুবিধা দেয় না

তিনটির কোনোটিই firewall নয়। একটি tunnel নির্ধারণ করে কোন packet পরিবাহিত হবে, কোন service listen করবে তা নয়। tunnel-এর মাধ্যমে reachable একটি server আপনার খোলা রাখা যেকোনো port-এ internet থেকেও reachable থাকে। তাই VPS-এ UFW firewall rules চালু রাখুন এবং সেগুলোকে তাদের কাজ করতে দিন। Tailscale-এর policy file অন্য node-গুলো কোন resource-এ পৌঁছাতে পারবে তা সীমিত করে, তবে public interface-এর ক্ষেত্রে এটি কোনো পরিবর্তন করে না।

তিনটির কোনোটিই প্রতি-service authentication দেয় না। সংযুক্ত হওয়ার পর কোনো user কী করেছে, তার audit trail-ও কোনোটিই দেয় না। তিনটিকেই transport হিসেবে বিবেচনা করুন। Login checks application-এ রাখুন।

FAQ

Tailscale কি অতিরিক্ত ধাপসহ শুধু WireGuard?

Tailscale ডেটা পাথের জন্য WireGuard প্রোটোকল ব্যবহার করে। তাই encryption এবং tunnel একই থাকে। অতিরিক্ত সুবিধা হিসেবে এটি coordination প্রদান করে: key exchange, address assignment, STUN এবং DERP relay ব্যবহার করে NAT traversal, key expiry, এবং এমন একটি policy file যাতে IP range-এর বদলে user-এর নাম উল্লেখ করা হয়। Plain WireGuard-এর ক্ষেত্রে এই কাজগুলো আপনাকেই করতে হয়। মেশিনগুলো বিভিন্ন network-এর মধ্যে স্থানান্তরিত হলে এই কাজগুলোই জটিল হয়ে ওঠে।

আমার network traffic কি Tailscale-এর server-এর মধ্য দিয়ে যায়?

সাধারণত যায় না। Coordination server peer-গুলোকে পরিচয় করিয়ে দেওয়ার পর peer-গুলো সাধারণত সরাসরি একে অপরের সঙ্গে সংযুক্ত হয়। tailscale status সেই peer line-গুলোতে direct দেখায়। সরাসরি path স্থাপন করা না গেলে traffic DERP relay-তে fallback করে এবং line-এ relay দেখা যায়। তখনও relay encrypted packet বহন করে এবং আপনার WireGuard private key সংরক্ষণ করে না। তাই এটি packet-এর বিষয়বস্তু পড়তে পারে না। আপনার network সরাসরি connection-এর জন্য প্রয়োজনীয় UDP block করছে কি না দেখতে tailscale netcheck চালান।

আমি কি official Tailscale app-এর সঙ্গে Headscale ব্যবহার করতে পারি?

হ্যাঁ। Headscale একই control protocol ব্যবহার করে। তাই official client-গুলো sudo tailscale up --login-server https://headscale.example.com দিয়ে যুক্ত হয়। Desktop এবং mobile app-গুলোকে custom login server-এ নির্দেশ করা যায়। তবে প্রতিটি platform-এ এই setting-এর অবস্থান আলাদা। নির্দিষ্ট version-এর প্রয়োজন হওয়ার সম্ভাবনা mobile app-গুলোর ক্ষেত্রে বেশি। পুরো network migrate করার আগে একটি phone-এ পরীক্ষা করুন।

Tailscale বা Headscale-এর জন্য কি এখনও port খুলতে হবে?

Tailscale client-এর কোনো inbound port প্রয়োজন হয় না। কারণ এটি coordination server-এ outbound connection তৈরি করে এবং সেই connection খোলা রাখে। Self-hosted Headscale server-এর inbound port প্রয়োজন: control protocol-এর জন্য 443, HTTP-01 certificate challenge ব্যবহার করলে 80, এবং embedded relay enable করলে শুধুমাত্র 3478/udp। Plain WireGuard-এর UDP listen port, সাধারণত 51820, server-এ এবং provider পরিচালিত পৃথক network firewall-এ open রাখতে হয়।

তিনটির মধ্যে কোনটি দ্রুততম?

Throughput একই, কারণ তিনটিই WireGuard ব্যবহার করে packet পাঠায়। পার্থক্য দেখা যায় connection setup এবং path quality-তে। সঠিক Endpoint সহ Plain WireGuard প্রতিবার সরাসরি সংযুক্ত হয়। Tailscale এবং Headscale বেশিরভাগ সময় সরাসরি সংযুক্ত হয়। Network hole punching block করলে এগুলো relay-তে fallback করে। Relayed path-এ latency বেশি হয়। tailscale ping <node> দিয়ে নিজের path পরিমাপ করুন। এটি route direct নাকি relayed তা জানায়। অথবা tunnel-এর মধ্য দিয়ে iperf3 ব্যবহার করুন।