SSD Nodes Learn Hosting plans →
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-08-27

VPS-কে Tailscale exit node বানানোর নিয়ম

VPS-এ Tailscale exit node চালু করুন: install ও advertise-এর পর IP forwarding সক্রিয় করুন, admin console-এ route approve করুন, তারপর DNS ও IPv6 সমস্যা ঠিক করুন।

Tailscale exit node কী করে

Tailscale exit node হলো আপনার tailnet-এর এমন একটি মেশিন, যা আপনার অন্য ডিভাইসগুলোর সব Internet traffic বহন করে। একটি VPS (virtual private server) এ কাজের জন্য উপযুক্ত, কারণ এর একটি স্থির public address থাকে এবং এটি সব সময় online থাকে। এটি সেট আপ করতে 5টি ধাপ লাগে: সার্ভারে Tailscale ইনস্টল করা, exit node advertise করা, IP forwarding চালু করা, admin console-এ route অনুমোদন করা, তারপর আপনার laptop-এ node নির্বাচন করা। চতুর্থ ধাপটি একটি web page-এর toggle, কোনো command নয়। বেশিরভাগ মানুষ এই ধাপেই আটকে যান।

এটি চালু হলে আপনার laptop প্রতিটি packet encrypt করে VPS-এ পাঠায়। VPS source NAT (network address translation) প্রয়োগ করে এবং নিজের public IP address ব্যবহার করে packet-টি বাইরে পাঠায়। Website-গুলো VPS-কে দেখতে পায়। Café Wi-Fi শুধু VPS-এর দিকে যাওয়া একটি encrypted UDP flow দেখতে পায়, আর কিছু নয়।

Tailscale data path-এর জন্য WireGuard ব্যবহার করে। এর সঙ্গে একটি coordination server থাকে, যা key বিতরণ করে এবং NAT-এর মাধ্যমে দুটি মেশিনকে একে অপরকে খুঁজে পেতে সহায়তা করে। এই coordination server থাকার কারণেই নিচের কোথাও key copy করতে হয় না। Trade-off-গুলো বিস্তারিতভাবে পড়তে Tailscale এবং সাধারণ WireGuard-এর তুলনা দেখুন। আপনি যদি tunnel-এর প্রতিটি অংশ নিজে পরিচালনা করতে চান, তার বদলে আপনার VPS-এ সাধারণ WireGuard VPN নিজে host করুন।

নিচের ধাপগুলো ধরে নেওয়া হয়েছে যে আপনার laptop-এ Tailscale আগে থেকেই চলছে এবং উভয় মেশিন একই tailnet-এ sign in করা আছে। tailnet হলো আপনার ব্যক্তিগত Tailscale network। এর প্রতিটি device 100.64.0.0/10-এর ভিতরে একটি স্থির address পায়।

VPS-এ Tailscale ইনস্টল করুন

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

ইনস্টল স্ক্রিপ্টটি আপনার distribution-এর জন্য package repository নির্বাচন করে এবং tailscaled daemon ইনস্টল করে। এরপর tailscale up একটি authentication URL দেখায়। এটি browser-এ খুলে আপনার laptop-এ ব্যবহৃত একই account দিয়ে sign in করুন। ভিন্ন tailnet-এ sign in করা VPS আপনার laptop-এর জন্য কোনো service দিতে পারবে না।

tailscale status
tailscale ip -4

এখন tailscale status-এ উভয় machine তালিকাভুক্ত হওয়ার কথা। tailscale ip -4 VPS-এর tailnet address দেখায়। পরে এটি client-কে দিতে হবে।

Tunnel তৈরি করতে Tailscale-এর একটি TUN device প্রয়োজন। KVM VPS-এ device-টি থাকে। Container virtualisation ব্যবহার করে তৈরি plan-এ host kernel shared থাকে। সেখানে /dev/net/tun অনুপস্থিত থাকতে পারে। ফলে tailscaled tailscale0 interface তৈরি করতে পারে না। এগিয়ে যাওয়ার আগে ls -l /dev/net/tun চালান।

IP forwarding চালু করুন, নইলে VPS প্রতিটি packet ফেলে দেবে

একটি Linux machine নিজের উদ্দেশে পাঠানো নয় এমন যেকোনো packet ফেলে দেয়, কারণ net.ipv4.ip_forward ডিফল্টভাবে 0 থাকে। Exit node আপনার traffic গ্রহণ করে decrypt করার পর ফেলে দেবে। Reboot-এর পরও সেটিংটি বজায় রাখতে এটি একটি file-এ লিখুন।

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

tee -a বিষয়বস্তু শেষে যোগ করে। তাই এই line-গুলো দ্বিতীয়বার চালালে উভয় setting দুইবার লেখা হবে। তবু ফলাফল কাজ করবে, এবং cat /etc/sysctl.d/99-tailscale.conf অস্বাভাবিক দেখাবে। File-এর ওপর নির্ভর না করে কার্যকর value যাচাই করুন:

sysctl net.ipv4.ip_forward

এতে net.ipv4.ip_forward = 1 প্রিন্ট হতে হবে। এটি বাদ দিয়ে tailscale up --advertise-exit-node ব্যবহার করলে client আপনাকে জানাবে:

Warning: IP forwarding is disabled, subnet routing/exit nodes will not work.

tailscale set --advertise-exit-node এই পরীক্ষা চালায় না। তাই set থেকে কোনো output না পাওয়া forwarding চালু থাকার প্রমাণ নয়। নিজে sysctl value পড়ুন।

আপনাকে হাতে masquerade rule লিখতে হবে না। tailscaled নিজস্ব firewall chain ইনস্টল করে। এগুলোর নাম ts-input, ts-forward এবং ts-postrouting। Exit node traffic-এর NAT rule ts-postrouting-এ থাকে। এগুলো sudo iptables-save | grep ts- দিয়ে দেখুন, অথবা nftables ব্যবহার করা system-এ sudo nft list ruleset দিয়ে দেখুন।

VPS-কে exit node হিসেবে বিজ্ঞাপন দিন

sudo tailscale set --advertise-exit-node

tailscale set একটি preference পরিবর্তন করে এবং অন্যগুলো অপরিবর্তিত রাখে। tailscale up --advertise-exit-node node-টিকেও advertise করে, তবে এর একটি পার্শ্বপ্রতিক্রিয়া আছে: up command line-এ দেওয়া flag-গুলোকে non-default setting-এর সম্পূর্ণ তালিকা হিসেবে ধরে। তাই পরে কোনো argument ছাড়া sudo tailscale up চালালে তা ব্যর্থ হয় এবং নিচের বার্তা দেখায়:

changing settings via 'tailscale up' requires mentioning all
non-default flags. To proceed, either re-run your command with --reset or
use the command below to explicitly mention the current value of
all non-default settings:

চলমান পরিবর্তনের জন্য set ব্যবহার করুন। তাহলে এই বার্তার মুখোমুখি হতে হবে না।

Advertising একটি প্রস্তাব। VPS এখন coordination server-কে জানাচ্ছে যে এটি exit node হিসেবে কাজ করতে প্রস্তুত। তবে কোনো client এখনও এটি ব্যবহার করতে পারবে না।

Tailscale exit node-কে admin console-এ অনুমোদন করুন

এই ধাপটির জন্য কোনো command নেই। admin console-এর Machines page খুলুন। VPS-টি খুঁজে বের করুন। তার row-এর শেষে থাকা three dot menu খুলুন। Edit route settings নির্বাচন করুন এবং Use as exit node চালু করুন।

এই toggle চালু না করা পর্যন্ত control plane প্রস্তাবটি ধরে রাখে, কিন্তু কাউকে দেয় না। আপনার laptop-এ tailscale exit-node list কোনো output দেখায় না এবং আপনার traffic স্বাভাবিক route-ই ব্যবহার করে। কোনো machine-এই error message দেখা যায় না। Exit node-টি শুধু কখনো উপস্থিত হয় না।

tailnet policy file-এ একটি entry যোগ করে exit node স্বয়ংক্রিয়ভাবে অনুমোদন করতে পারেন:

"autoApprovers": {
  "exitNode": ["tag:exit"],
}

--advertise-tags=tag:exit দিয়ে চালু করা কোনো device নিজে থেকেই অনুমোদিত হয়, যদি একই policy file-এর tagOwners-এর অধীনে tag:exit সংজ্ঞায়িত থাকে। Tag ব্যবহারে ownership পরিবর্তিত হয়: tagged device আপনার user account-এর পরিবর্তে tailnet-এর অধীনে থাকে, এবং সেটির ওপর প্রযোজ্য access rule-ও পরিবর্তিত হয়। একটি VPS-এর জন্য toggle ব্যবহার করাই সহজ।

ল্যাপটপে exit node নির্বাচন করুন

Linux client-এ:

tailscale exit-node list
sudo tailscale set --exit-node=vps.your-tailnet.ts.net

exit-node list আপনার tailnet-এ অনুমোদিত exit node-গুলোর ঠিকানা সহ তালিকা দেখায়। তালিকা খালি থাকলে approval ধাপটি সম্পন্ন হয়নি। macOS, Windows, iOS এবং Android-এ Tailscale app-এর Exit Node-এর অধীনে একই নির্বাচন menu item হিসেবে থাকে।

Client থেকে যাচাই করুন, server থেকে নয়:

curl -4 https://ifconfig.me

Exit node নির্বাচন করার আগে একবার এবং পরে একবার এটি চালান। ঠিকানাটি আপনার স্থানীয় ঠিকানা থেকে পরিবর্তিত হয়ে VPS-এর public IP হতে হবে। Exit node ব্যবহার বন্ধ করতে:

sudo tailscale set --exit-node=

প্রথম দিনেই আরেকটি flag গুরুত্বপূর্ণ। Exit node নির্বাচিত থাকলে client সবকিছু tunnel-এর মধ্যে পাঠায়, যার মধ্যে 192.168.1.50-এ নির্দেশিত packet-ও থাকে। ফলে আপনার printer এবং network storage আর সাড়া দেয় না। স্থানীয় network-কে local route-এ রাখুন:

sudo tailscale set --exit-node=<name> --exit-node-allow-lan-access=true

exit node চালু থাকলে DNS কেন সঙ্গে সঙ্গে বদলে যায়

ডিফল্টভাবে, exit node ব্যবহার করা কোনো device প্রতিটি domain-এর জন্য সেই exit node-কেই DNS (domain name system) resolver হিসেবে ব্যবহার করে। এর ফলে আপনার tailnet-এর জন্য configured global এবং split DNS nameserver override হয়। এই আচরণটি ইচ্ছাকৃত। Query যদি local network-এর resolver-এ যেতে থাকত, তাহলে traffic private থাকলেও café router আপনি কোন কোন site visit করছেন, সেগুলোর নাম দেখতে পেত। নাম এবং packet একই স্থান থেকে বের হওয়া উচিত।

এর একটি প্রভাব internal resolver চালানো ব্যবহারকারীদের সমস্যায় ফেলে। exit node চালু থাকলে আপনি যে tailnet nameserver-এর ওপর নির্ভর করেন, সেটি আর ব্যবহার করা হয় না। সেটিকে আবার সক্রিয় করতে admin console-এর DNS page-এ ওই nameserver-এর জন্য Use with exit node চালু করুন।

MagicDNS name কাজ করতে থাকে, কারণ exit node-এ কিছু পৌঁছানোর আগেই Tailscale client 100.100.100.100-এ সেগুলোর উত্তর locally দেয়। dig @100.100.100.100 your-vps.your-tailnet.ts.net দিয়ে এটি পরীক্ষা করুন। systemd-resolved client হলে resolvectl status ব্যবহার করুন; সেখানে Tailscale interface 100.100.100.100-কে DNS server হিসেবে দেখায়।

--accept-dns=false দিয়ে Tailscale-এর DNS handling disable করলে client local network থেকে পাওয়া resolver-টিই ব্যবহার করতে থাকে। Traffic tunnelled হয়, কিন্তু query tunnelled হয় না। এটি hand-built WireGuard tunnel-এ দেখা একই DNS leak। পরিবর্তনের নির্দিষ্ট কারণ না থাকলে --accept-dns অপরিবর্তিত রাখুন।

IPv6 exit node-এর মাধ্যমে

একটি exit node উভয় default route, 0.0.0.0/0 এবং ::/0, বিজ্ঞাপন করে। VPS-এর Internet-এ কোনো কার্যকর IPv6 path না থাকলে IPv6 packet tunnel-এর মাধ্যমে এসে সেখানেই থেমে যায়। বিশ্বাস করার আগে VPS-এ পরীক্ষা করুন:

ip -6 addr show
curl -6 https://ifconfig.me

অনুরোধ ব্যর্থ হলে VPS-এর কোনো IPv6 upstream নেই। Dual-stack website সাধারণত তবুও লোড হয়, কারণ client IPv6-এর চেষ্টা বাতিল করে IPv4-এর মাধ্যমে আবার চেষ্টা করে। তবে প্রতিটি site-এ প্রথম সংযোগের সময় এই retry অতিরিক্ত বিলম্ব তৈরি করে। শুধু IPv6 ব্যবহার করা destination-গুলোতে পৌঁছানো যায় না।

অন্য অংশটি হলো forwarding। net.ipv4.ip_forward = 1-এর সঙ্গে net.ipv6.conf.all.forwarding-এর মান 0 থাকলে IPv4 path কার্যকর থাকে, কিন্তু IPv6-এর জন্য একটি black hole তৈরি হয়। পাঠকের কাছে এটি error হিসেবে নয়, বরং “কিছু site ধীরে লোড হয়” হিসেবে দেখা দেয়। উভয় line-ই sysctl file-এ রাখতে হবে।

VPS কি subnet route-ও advertise করবে?

একটি exit node সব Internet traffic বহন করে। একটি subnet route সেই মেশিনের পেছনে থাকা একটি private range বহন করে, যে মেশিনটি route-টি advertise করছে। এগুলো আলাদা feature এবং প্রতিটির approval আলাদা। একটি মেশিন উভয় কাজই করতে পারে। কোনোটিই VPS-এ চলমান service-কে সরাসরি expose করে না। তাই আপনার প্রকৃত প্রয়োজন যদি ওই server-এর কোনো app-এর জন্য একটি HTTPS URL হয়, তাহলে serve এবং funnel feature ব্যবহার করুন।

sudo tailscale set --advertise-routes=10.0.0.0/24

VPS যদি অন্য server-গুলোর সঙ্গে private network share করে এবং আপনি সেগুলোতে private address ব্যবহার করে পৌঁছাতে চান, তখন subnet advertise করুন। একই Edit route settings panel-এ, আলাদা toggle ব্যবহার করে route-টি approve করুন। Linux client-গুলোতে advertised route কার্যকর হবে না, যতক্ষণ না আপনি --accept-routes pass করেন। এটি subnet router walkthrough-এ বিস্তারিত ব্যাখ্যা করা পার্থ্যগুলোর একটি।

Range নির্বাচন করার সময় সতর্ক থাকুন। Advertised route আপনার laptop-এর default route-এর চেয়ে বেশি নির্দিষ্ট। তাই VPS থেকে 192.168.1.0/24 advertise করলে একই range ব্যবহার করা কোনো home network-এর address-গুলোর নিয়ন্ত্রণ এটি নিয়ে নেবে। ফলে আপনার ডেস্কের device-গুলোতে আর network connectivity থাকবে না। আপনি নিজে নির্ধারণ করেছেন এমন range ব্যবহার করুন। Home router স্বয়ংক্রিয়ভাবে যে range বেছে নিয়েছে, সেটি ব্যবহার করবেন না।

UDP GRO forwarding ব্যবহার করে exit node দ্রুত করুন

Linux 6.2 বা পরবর্তী kernel-এ Tailscale 1.54 এবং পরবর্তী সংস্করণ forwarded traffic-এর throughput বাড়াতে একটি receive offload ব্যবহার করতে পারে। GRO (generic receive offload) kernel প্রতিটি incoming packet আলাদাভাবে প্রক্রিয়া করার আগে সেগুলো একত্র করে। August 2026 অনুযায়ী exit node-এ এটি এখনও manual step হিসেবে করতে হয়।

sudo apt install -y ethtool
NETDEV=$(ip -o route get 8.8.8.8 | cut -f 5 -d " ")
sudo ethtool -K $NETDEV rx-udp-gro-forwarding on rx-gro-list off

ip -o route get 8.8.8.8 Internet-এ পৌঁছানো প্রকৃত interface-এর নাম দেখায়। তাই eth0, ens3 এবং enp1s0-এর মধ্যে অনুমান করতে হয় না। ethtool -k $NETDEV | grep udp-gro-forwarding দিয়ে নিশ্চিত করুন। সেখানে এখন on দেখা উচিত। GRO কেবল এমন path-এ উপকার করে, যেটি অন্যথায় সঠিকভাবে কাজ করছে। তাই এর পরেও exit node ধীর থাকলে path নিজেই পরিমাপ করুন, যেমন নিচের link-এর তুলনায় ধীর plain WireGuard tunnel-এর ক্ষেত্রে করবেন।

Reboot-এর পরে এই setting হারিয়ে যায়। networkd-dispatcher চালানো system-এ এটিকে স্বয়ংক্রিয় করুন:

printf '#!/bin/sh\n\nethtool -K %s rx-udp-gro-forwarding on rx-gro-list off \n' "$(ip -o route get 8.8.8.8 | cut -f 5 -d " ")" | sudo tee /etc/networkd-dispatcher/routable.d/50-tailscale
sudo chmod 755 /etc/networkd-dispatcher/routable.d/50-tailscale

প্রথমে পরীক্ষা করুন যে /etc/networkd-dispatcher/routable.d/ আছে কি না। এটি না থাকলে machine-এ networkd-dispatcher চলছে না। সে ক্ষেত্রে boot-এর সময় ethtool line চালায় এমন একটি ছোট systemd unit একই কাজ করবে।

আপনার provider-এর acceptable use policy exit traffic সম্পর্কে কী বলে

কোনো client exit node-এর মাধ্যমে packet পাঠালে, তা VPS-এর public IP address নিয়ে বের হয়। তাই traffic আপনার account-এর সঙ্গে যুক্ত হয়। Abuse report আপনার inbox-এ আসে। এর মধ্যে copyright notice এবং port scan-এর অভিযোগ থাকতে পারে। কোনো household বা team-এর traffic একটি server-এর মাধ্যমে route করার আগে provider-এর AUP (acceptable use policy) পড়ুন। যাদের বিষয়ে আপনি নিশ্চিত নন, তাদের জন্য exit node উন্মুক্ত করবেন না।

Bandwidth দুবার গণনা হয়। Traffic tunnel-এর মাধ্যমে VPS-এ আসে এবং পরে আবার Internet-এ যায়। Plan-এর transfer allowance-এ সাধারণত উভয় দিকের traffic-ই গণনা হয়। Exit node-এর মাধ্যমে দেখা একটি video stream-এর খরচ অধিকাংশ মানুষের ধারণার চেয়ে বেশি হতে পারে।

Datacenter-এর address range-এর নিজস্ব reputation থাকে। কিছু site এই address range-এর জন্য বেশি CAPTCHA দেখায়। কিছু streaming service সরাসরি এগুলো প্রত্যাখ্যান করে। আপনার configuration-এর কোনো পরিবর্তন এতে প্রভাব ফেলবে না, কারণ এটি আপনার provider-এর মালিকানাধীন address block-এর বৈশিষ্ট্য।

আপনার local connection দিয়েই network traffic কেন বের হচ্ছে

Exit node বিজ্ঞাপিত হয়েছে, কিন্তু অনুমোদিত নয়। Client-এ tailscale exit-node list চালালে কিছুই দেখায় না, এবং কোনো machine-ই error log করে না। Machines page-এ যান এবং Use as exit node চালু করুন।

Client এটি নির্বাচন করেনি। অনুমোদন node-টিকে tailnet-এর জন্য উপলভ্য করে। প্রতিটি device-এ নির্বাচন করা আলাদা কাজ। আবার sudo tailscale set --exit-node=<name> চালান, তারপর curl -4 https://ifconfig.me দিয়ে যাচাই করুন।

Forwarding বন্ধ। লক্ষণটি নির্দিষ্ট: tailscale ping <vps> সফল হয়, tunnel যে চালু আছে তা স্পষ্ট, কিন্তু বাইরের প্রতিটি address timeout হয়। sysctl net.ipv4.ip_forward-এর মান 0 দেখায়। sysctl file ঠিক করুন, তারপর sudo sysctl -p /etc/sysctl.d/99-tailscale.conf চালান।

Firewall forwarded packet বাদ দিচ্ছে। tailscaled নিজস্ব ts-forward chain যোগ করে, এবং clean VPS-এ এটিই যথেষ্ট। আগে থেকেই ufw বা Docker চলা machine-এ FORWARD policy DROP হতে পারে এবং Tailscale-এর rule-এর আগে অন্য rule থাকতে পারে। অনুমান করবেন না: Client কোনো page load করার সময় sudo iptables -L FORWARD -n -v চালান এবং কোন counter-এর মান বাড়ছে তা monitor করুন। ufw চালানো machine-এ সাধারণ সমাধান হলো /etc/default/ufw-এ DEFAULT_FORWARD_POLICY="ACCEPT" যোগ করা, তারপর sudo ufw reload চালানো। Provider-এর control panel-এ network firewall-ও পরীক্ষা করুন, কারণ এটি server-এ চলা firewall থেকে আলাদা নিয়ন্ত্রণব্যবস্থা।

কাজ করে, কিন্তু ধীর। উভয় machine-এ tailscale netcheck চালান। এটি যদি UDP blocked দেখায়, তাহলে দুই device সরাসরি path তৈরি করতে পারে না এবং DERP relay ব্যবহার করে। এতে প্রতিটি connection-এ latency বাড়ে। Provider-এর network firewall-এ VPS-এর জন্য inbound UDP port 41641 অনুমোদন করলে সাধারণত direct path ফিরে আসে।

Tailscale-এর coordination server কখন ব্যবহার না করার কথা ভাববেন

উপরের সবকিছুই key exchange এবং আপনি যে approval-এ click করেছেন, তার জন্য Tailscale-এর hosted coordination server-এর ওপর নির্ভর করে। আপনার traffic এখনও সরাসরি laptop থেকে VPS-এ যায়, এবং coordination server কখনও এটি বহন করে না। তবে কোন ব্যক্তি tailnet-এ যোগ দিতে পারবেন এবং প্রতিটি device কোন resource-এ পৌঁছাতে পারবে, তা coordination server নির্ধারণ করে। খরচের কারণে পরিবর্তন করার প্রয়োজন সাধারণত হয় না, কারণ free plan-এ ছয়জন user-এর জন্য তাদের নিজেদের unlimited device থাকে। তাই bill-এর বদলে এই dependency-টি বিবেচনা করুন। সপ্তম ব্যক্তি যোগ হলে বিষয়টি পরিবর্তিত হয়। Tailscale device নয়, user অনুযায়ী bill করে। তাই খরচের ভিত্তিতে সিদ্ধান্ত নেওয়ার আগে একটি household বা পাঁচজনের team-এর প্রকৃত খরচ কত হয় তা হিসাব করুন। সঠিকভাবে মূল্যায়ন করতে হলে জানতে হবে, কোনো compromised coordination server বা চুরি হওয়া identity account বাস্তবে কোন resource-এ পৌঁছাতে পারে। Tailscale-এর trust model-এ বিষয়টি ব্যাখ্যা করা হয়েছে। এই dependency-টি সরাতে চাইলে নিজের Tailscale control server হিসেবে Headscale চালান এবং উভয় client-কে সেটির দিকে point করুন। এরপর exit node-এর ধাপ একই থাকবে। তবে route approval hosted console-এর বদলে Headscale-এর command line-এর মাধ্যমে দিতে হবে। Headscale control plane পরিবর্তন করে, কিন্তু আপনাকে Tailscale client-এই রাখে। তাই পুরো stack নিজে চালাতে চাইলে NetBird নিজস্ব coordination server এবং client release করে, যেগুলো আপনি একটি VPS-এ host করতে পারেন।

FAQ

Exit node নির্বাচন করার পরও কেন আমার network traffic local connection ব্যবহার করছে?

এর দুটি সাধারণ কারণ আছে। Exit node advertise করা হয়েছিল, কিন্তু অনুমোদন করা হয়নি: admin console-এর Machines page খুলুন, VPS খুঁজে বের করুন, Edit route settings নির্বাচন করুন এবং Use as exit node চালু করুন। অনুমোদন console-এর একটি toggle; server-এ কোনো command চালিয়ে এটি করা যায় না। দ্বিতীয় কারণটি আলাদা: IP forwarding বন্ধ আছে। তাই tunnel চালু হয়, tailscale ping দিয়ে VPS-এ সংযোগ করা যায়, কিন্তু সব external address-এ সংযোগ timeout হয়। sysctl net.ipv4.ip_forward দিয়ে পরীক্ষা করুন। এর output অবশ্যই 1 হতে হবে।

আমাকে কি প্রতিবার হাতে exit node অনুমোদন করতে হবে?

প্রতিটি machine-এর জন্য এই toggle একবারই চালু করতে হয়। আপনি যদি প্রায়ই VPS rebuild করেন, tailnet policy file-এ "exitNode": ["tag:exit"]-সহ একটি autoApprovers block যোগ করুন, tagOwners-এর অধীনে tag:exit নির্ধারণ করুন এবং --advertise-tags=tag:exit দিয়ে node চালু করুন। Tagged device আপনার user account-এর পরিবর্তে tailnet-এর অধীনে থাকে। তাই ওই device-এ প্রযোজ্য access rule-ও পরিবর্তিত হয়।

Exit node চালু থাকলে আমার laptop কোন DNS server ব্যবহার করে?

Exit node-টিই ব্যবহার করে। Exit node ব্যবহারকারী device সব DNS query সেখানে পাঠায়। এতে tailnet-এর জন্য নির্ধারিত global ও split DNS nameserver-এর configuration override হয়। ফলে আপনি যে নামগুলো resolve করেন, local network সেগুলো দেখতে পায় না। একটি tailnet nameserver চালু রাখতে চাইলে admin console-এর DNS page-এ সেটির জন্য Use with exit node enable করুন। MagicDNS name-গুলো তবুও resolve হয়, কারণ Tailscale client সেগুলোর উত্তর localভাবে 100.100.100.100-এ দেয়।

একটি VPS কি একই সময়ে exit node এবং subnet router হতে পারে?

হ্যাঁ। sudo tailscale set --advertise-exit-node এবং sudo tailscale set --advertise-routes=10.0.0.0/24 স্বাধীনভাবে কাজ করে। Edit route settings-এর অধীনে প্রতিটির জন্য আলাদা approval toggle আছে। VPS-এ উভয়ের জন্য IP forwarding enable করতে হবে। আপনার laptop-এর home network-এর সঙ্গে মিলে যায় এমন কোনো range advertise করা এড়িয়ে চলুন। কারণ advertised route default route-এর চেয়ে বেশি specific হওয়ায় আপনার local device-গুলোতে আর পৌঁছানো যাবে না।

Exit node কি আমার VPS provider-এর কাছ থেকে আমার network traffic গোপন করে?

না। Tunnel VPS-এ শেষ হয়। তাই destination যে format প্রত্যাশা করে, server থেকে traffic সেই format-এই বের হয়। Site নিজে encrypted না হলে provider traffic clear অবস্থায় বহন করে। Exit node আপনার traffic internet-এ যুক্ত হওয়ার স্থানটি পরিবর্তন করে: আপনি যে network-এ বসে আছেন, তার পরিবর্তে আপনি যে server ভাড়া নিয়েছেন, সেটি ব্যবহার হয়। এটি café Wi-Fi এবং home ISP-এর কাছ থেকে আপনার browsing গোপন করে। তবে একই browsing আপনার VPS provider-এর কাছে আপনার account name-সহ দৃশ্যমান থাকে।