VPS-কে Tailscale exit node হিসেবে সেটআপ করার নিয়ম
আপনার VPS-কে Tailscale exit node হিসেবে কনফিগার করার সম্পূর্ণ গাইড। IP forwarding সক্রিয় করা, রুট অনুমোদন এবং DNS সেটিংস ঠিক করার ধাপগুলো এখানে বিস্তারিত আলোচনা করা হয়েছে।
Tailscale exit node যা করে
Tailscale exit node হলো আপনার tailnet-এর এমন একটি মেশিন যা আপনার অন্যান্য ডিভাইসের সমস্ত ইন্টারনেট ট্রাফিক বহন করে। একটি VPS (virtual private server) এর জন্য বেশ উপযোগী, কারণ এর একটি নির্দিষ্ট পাবলিক অ্যাড্রেস থাকে এবং এটি সবসময় অনলাইনে থাকে। এটি সেটআপ করার পাঁচটি ধাপ রয়েছে: সার্ভারে Tailscale ইনস্টল করা, exit node হিসেবে বিজ্ঞাপন দেওয়া, IP forwarding সক্রিয় করা, অ্যাডমিন কনসোলে রুটটি অনুমোদন করা এবং সবশেষে আপনার ল্যাপটপে নোডটি নির্বাচন করা। চতুর্থ ধাপটি একটি ওয়েব পেজের টগল বাটন, কোনো কমান্ড নয়; আর এখানেই অধিকাংশ মানুষ আটকে যান।
একবার এটি চালু হলে, আপনার ল্যাপটপ প্রতিটি প্যাকেট এনক্রিপ্ট করে VPS-এ পাঠায়। VPS তখন source NAT (network address translation) প্রয়োগ করে এবং নিজের পাবলিক IP অ্যাড্রেস ব্যবহার করে প্যাকেটটি গন্তব্যে পাঠিয়ে দেয়। ওয়েবসাইটগুলো তখন VPS-কে দেখতে পায়। ক্যাফে ওয়াইফাই শুধু VPS-এর দিকে একটি এনক্রিপ্টেড UDP ফ্লো দেখতে পায়, এছাড়া অন্য কিছু নয়।
Tailscale হলো ডেটা পাথের জন্য WireGuard এবং একটি কোঅর্ডিনেশন সার্ভার, যা কি (key) বিতরণ করে এবং NAT-এর মাধ্যমে দুটি মেশিনকে একে অপরকে খুঁজে পেতে সাহায্য করে। এই কোঅর্ডিনেশন সার্ভারের কারণেই নিচে কোথাও কি (key) কপি করার প্রয়োজন হয় না। এর সুবিধা ও অসুবিধাগুলো বিস্তারিত জানতে Tailscale এবং সাধারণ WireGuard-এর তুলনা পড়ুন। আপনি যদি টানেলের প্রতিটি অংশ নিজে নিয়ন্ত্রণ করতে চান, তবে এর পরিবর্তে আপনার VPS-এ সাধারণ WireGuard VPN সেলফ-হোস্ট করুন।
নিচের ধাপগুলোতে ধরে নেওয়া হয়েছে যে আপনার ল্যাপটপে ইতিমধ্যে Tailscale চলছে এবং উভয় মেশিন একই tailnet-এ সাইন-ইন করা আছে। একটি tailnet হলো আপনার ব্যক্তিগত Tailscale নেটওয়ার্ক, এবং এর প্রতিটি ডিভাইস 100.64.0.0/10-এর ভেতরে একটি স্থিতিশীল অ্যাড্রেস পায়।
আপনার VPS-এ Tailscale ইনস্টল করুন
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale upইনস্টলেশন স্ক্রিপ্টটি আপনার ডিস্ট্রিবিউশনের জন্য সঠিক প্যাকেজ রিপোজিটরি নির্বাচন করে এবং tailscaled ডেমোনটি ইনস্টল করে। এরপর tailscale up একটি অথেন্টিকেশন URL প্রদর্শন করবে। এটি ব্রাউজারে ওপেন করুন এবং আপনার ল্যাপটপে যে অ্যাকাউন্ট ব্যবহার করছেন সেটি দিয়েই সাইন ইন করুন, কারণ ভিন্ন কোনো tailnet-এ সাইন ইন করা VPS আপনার ল্যাপটপের সাথে সংযোগ স্থাপন করতে পারবে না।
tailscale status
tailscale ip -4tailscale status কমান্ডটি এখন উভয় মেশিনকে তালিকাভুক্ত করবে। tailscale ip -4 কমান্ডটি VPS-এর tailnet অ্যাড্রেস প্রিন্ট করবে, যা পরবর্তীতে ক্লায়েন্টকে প্রদান করতে হবে।
টানেল তৈরির জন্য Tailscale-এর একটি TUN ডিভাইসের প্রয়োজন হয়। KVM VPS-এ এই ডিভাইসটি আগে থেকেই থাকে। যেসব প্ল্যান কন্টেইনার ভার্চুয়ালাইজেশনের মাধ্যমে তৈরি এবং হোস্ট কার্নেল শেয়ার করে, সেগুলোতে অনেক সময় /dev/net/tun অনুপস্থিত থাকে এবং tailscaled তখন tailscale0 ইন্টারফেস তৈরি করতে পারে না। পরবর্তী ধাপে যাওয়ার আগে ls -l /dev/net/tun কমান্ডটি চালিয়ে দেখুন।
IP forwarding সক্রিয় করুন, অন্যথায় VPS প্রতিটি প্যাকেট ড্রপ করবে
একটি Linux মেশিন এমন যেকোনো প্যাকেট ড্রপ করে যা সরাসরি তার নিজের উদ্দেশ্যে পাঠানো হয়নি, কারণ net.ipv4.ip_forward ডিফল্টভাবে 0 থাকে। আপনার exit node ট্র্যাফিক গ্রহণ করবে, ডিক্রিপ্ট করবে, কিন্তু তারপর তা ফেলে দেবে। এই সেটিংটি একটি ফাইলে লিখুন যাতে রিবুট করার পরেও এটি কার্যকর থাকে।
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.conftee -a কমান্ডটি ফাইলটিতে নতুন লাইন যুক্ত করে, তাই এই লাইনগুলো দ্বিতীয়বার চালালে উভয় সেটিং দুইবার লেখা হবে। ফলাফলটি তখনও কাজ করবে, কিন্তু cat /etc/sysctl.d/99-tailscale.conf দেখতে অদ্ভুত লাগবে। ফাইলের ওপর নির্ভর না করে সরাসরি লাইভ ভ্যালু নিশ্চিত করুন:
sysctl net.ipv4.ip_forwardএটি অবশ্যই net.ipv4.ip_forward = 1 প্রিন্ট করবে। আপনি যদি এটি এড়িয়ে যান এবং tailscale up --advertise-exit-node ব্যবহার করেন, তবে ক্লায়েন্ট আপনাকে বলবে:
Warning: IP forwarding is disabled, subnet routing/exit nodes will not work.tailscale set --advertise-exit-node সেই চেকটি চালায় না, তাই set থেকে কোনো আউটপুট না আসা মানেই এই নয় যে forwarding চালু আছে। নিজেই sysctl ভ্যালু পড়ে দেখুন।
আপনাকে হাতে কোনো masquerade রুল লিখতে হবে না। tailscaled তার নিজস্ব ফায়ারওয়াল চেইন ইনস্টল করে, যার নাম ts-input, ts-forward এবং ts-postrouting, এবং exit node ট্র্যাফিকের জন্য NAT রুলটি ts-postrouting-এ থাকে। sudo iptables-save | grep ts- দিয়ে সেগুলো দেখুন, অথবা nftables বক্সের ক্ষেত্রে sudo nft list ruleset ব্যবহার করুন।
VPS-কে exit node হিসেবে প্রচার করা
sudo tailscale set --advertise-exit-nodetailscale set একটি preference পরিবর্তন করে এবং বাকিগুলো অপরিবর্তিত রাখে। tailscale up --advertise-exit-node নোডটিকে প্রচারও করে, তবে এর একটি পার্শ্বপ্রতিক্রিয়া আছে: up তার কমান্ড লাইনের ফ্ল্যাগগুলোকে নন-ডিফল্ট সেটিংসের সম্পূর্ণ সেট হিসেবে গণ্য করে। ফলে পরবর্তীতে কোনো প্যারামিটার ছাড়া 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 ব্যবহার করুন, এতে আপনি কখনোই এই বার্তার সম্মুখীন হবেন না।
প্রচার করা মানে হলো একটি প্রস্তাব দেওয়া। VPS এখন coordination server-কে জানাচ্ছে যে এটি একটি exit node হিসেবে কাজ করতে ইচ্ছুক। কোনো ক্লায়েন্ট এখনো এটি ব্যবহার করতে পারবে না।
অ্যাডমিন কনসোলে Tailscale exit node অনুমোদন করুন
এই ধাপটির জন্য কোনো কমান্ডের প্রয়োজন নেই। অ্যাডমিন কনসোলের Machines পেজ খুলুন, VPS-টি খুঁজে বের করুন, এর সারির শেষে থাকা তিনটি ডট মেনু খুলুন, Edit route settings নির্বাচন করুন এবং Use as exit node চালু করুন।
যতক্ষণ না এই টগলটি চালু করা হচ্ছে, কন্ট্রোল প্লেন এই অফারটি ধরে রাখে এবং কাউকে দেয় না। আপনার ল্যাপটপে tailscale exit-node list চালালে কিছুই দেখা যাবে না এবং আপনার ট্রাফিক তার স্বাভাবিক রুটেই চলতে থাকবে। কোনো মেশিনে কোনো ত্রুটির বার্তা দেখা যাবে না। exit node-টি কেবল কখনোই প্রদর্শিত হবে না।
আপনি tailnet পলিসি ফাইলে একটি এন্ট্রির মাধ্যমে exit node-গুলোকে স্বয়ংক্রিয়ভাবে অনুমোদন করতে পারেন:
"autoApprovers": {
"exitNode": ["tag:exit"],
}--advertise-tags=tag:exit দিয়ে চালু করা একটি ডিভাইস নিজে থেকেই অনুমোদিত হয়ে যায়, যদি একই পলিসি ফাইলে tagOwners-এর অধীনে tag:exit সংজ্ঞায়িত থাকে। ট্যাগিং মালিকানা পরিবর্তন করে: একটি ট্যাগ করা ডিভাইস আপনার ইউজার অ্যাকাউন্টের পরিবর্তে tailnet-এর মালিকানাধীন হয় এবং এর সাথে প্রযোজ্য অ্যাক্সেস রুলগুলোও পরিবর্তিত হয়। একটি একক VPS-এর জন্য, টগল ব্যবহার করাই সহজ।
আপনার ল্যাপটপে এক্সিট নোড নির্বাচন করুন
Linux ক্লায়েন্টে:
tailscale exit-node list
sudo tailscale set --exit-node=vps.your-tailnet.ts.netexit-node list কমান্ডটি আপনার tailnet-এ অনুমোদিত এক্সিট নোডগুলো এবং তাদের ঠিকানা প্রদর্শন করে। তালিকাটি খালি থাকলে বুঝতে হবে যে অনুমোদনের ধাপটি সম্পন্ন হয়নি। macOS, Windows, iOS এবং Android-এ একই অপশনটি Tailscale অ্যাপের মধ্যে Exit Node মেনু আইটেমের অধীনে থাকে।
সার্ভার থেকে নয়, বরং ক্লায়েন্ট থেকে যাচাই করুন:
curl -4 https://ifconfig.meএক্সিট নোড নির্বাচন করার আগে একবার এবং পরে একবার এটি চালান। ঠিকানাটি আপনার লোকাল আইপি থেকে পরিবর্তিত হয়ে VPS-এর পাবলিক আইপিতে রূপান্তরিত হতে হবে। এক্সিট নোড ব্যবহার বন্ধ করতে:
sudo tailscale set --exit-node=প্রথম দিনে আরও একটি ফ্ল্যাগ গুরুত্বপূর্ণ। এক্সিট নোড নির্বাচন করা থাকলে, ক্লায়েন্ট 192.168.1.50-এর ঠিকানাসহ সমস্ত প্যাকেট টানেলের ভেতর দিয়ে পাঠায়, যার ফলে আপনার প্রিন্টার এবং নেটওয়ার্ক স্টোরেজ আর সাড়া দেয় না। লোকাল নেটওয়ার্ককে লোকাল রুটে রাখতে এটি ব্যবহার করুন:
sudo tailscale set --exit-node=<name> --exit-node-allow-lan-access=trueএক্সিট নোড চালু থাকা অবস্থায় কেন আপনার DNS পরিবর্তিত হয়
ডিফল্টভাবে, যে ডিভাইসটি এক্সিট নোড ব্যবহার করে, সেটি প্রতিটি ডোমেইনের জন্য সেই এক্সিট নোডকেই তার DNS (ডোমেইন নেম সিস্টেম) রেজলভার হিসেবে ব্যবহার করে। এটি আপনার টেলনেটের (tailnet) জন্য কনফিগার করা গ্লোবাল এবং স্প্লিট DNS নেমসার্ভারগুলোকে ওভাররাইড করে। এই আচরণটি ইচ্ছাকৃত। যদি কুয়েরিগুলো স্থানীয় নেটওয়ার্কের রেজলভারের কাছে যেতে থাকে, তবে ক্যাফে রাউটার আপনার ভিজিট করা প্রতিটি সাইটের নাম দেখতে পাবে, যদিও ট্রাফিকটি ব্যক্তিগত ছিল। নাম এবং প্যাকেট একই জায়গা থেকে বের হওয়া উচিত।
একটি অভ্যন্তরীণ রেজলভার ব্যবহারকারীদের ক্ষেত্রে এর একটি প্রভাব পড়ে: এক্সিট নোড চালু থাকলে আপনার প্রয়োজনীয় টেলনেট নেমসার্ভারটি আর ব্যবহৃত হয় না। এটিকে পুনরায় কার্যকর করতে অ্যাডমিন কনসোলের DNS পেজে গিয়ে সেই নেমসার্ভারের জন্য Use with exit node অপশনটি চালু করুন।
MagicDNS নামগুলো কাজ করতে থাকে, কারণ Tailscale ক্লায়েন্ট এক্সিট নোডে কিছু পৌঁছানোর আগেই 100.100.100.100-এ স্থানীয়ভাবে সেগুলোর উত্তর দেয়। এটি পরীক্ষা করতে dig @100.100.100.100 your-vps.your-tailnet.ts.net ব্যবহার করুন, অথবা systemd-resolved ক্লায়েন্টের ক্ষেত্রে resolvectl status ব্যবহার করুন, যেখানে Tailscale ইন্টারফেস তার DNS সার্ভার হিসেবে 100.100.100.100-কে তালিকাভুক্ত করে।
আপনি যদি --accept-dns=false দিয়ে Tailscale-এর DNS হ্যান্ডলিং নিষ্ক্রিয় করেন, তবে ক্লায়েন্ট স্থানীয় নেটওয়ার্ক থেকে পাওয়া রেজলভারটিই ধরে রাখে। এক্ষেত্রে ট্রাফিক টানেল করা হয় কিন্তু কুয়েরিগুলো করা হয় না, যা হাতে তৈরি WireGuard টানেলের ক্ষেত্রে যে DNS লিক দেখা দেয়, ঠিক সেটিই। কোনো সুনির্দিষ্ট কারণ ছাড়া --accept-dns পরিবর্তন করবেন না।
Exit node-এর মাধ্যমে IPv6
একটি exit node ডিফল্ট রুট হিসেবে 0.0.0.0/0 এবং ::/0 উভয়ই প্রচার করে। যদি VPS-এর ইন্টারনেটে কোনো কার্যকর IPv6 পাথ না থাকে, তবে IPv6 প্যাকেটগুলো টানেলের মাধ্যমে এসে সেখানেই আটকে যায়। তাই নিশ্চিত হওয়ার আগে VPS-এ পরীক্ষা করে নিন:
ip -6 addr show
curl -6 https://ifconfig.meঅনুরোধ ব্যর্থ হওয়ার অর্থ হলো VPS-এর কোনো IPv6 আপস্ট্রিম নেই। ডুয়াল স্ট্যাক ওয়েবসাইটগুলো সাধারণত তবুও লোড হয়, কারণ ক্লায়েন্ট IPv6-এ ব্যর্থ হয়ে IPv4-এ পুনরায় চেষ্টা করে। তবে এই পুনরায় চেষ্টার কারণে প্রতিটি সাইটে প্রথম সংযোগের সময় কিছুটা বিলম্ব হয়। শুধুমাত্র IPv6-ভিত্তিক গন্তব্যগুলো এক্ষেত্রে অচল থাকে।
এর অন্য অংশটি হলো ফরোয়ার্ডিং। net.ipv6.conf.all.forwarding-কে 0 রেখে net.ipv4.ip_forward = 1 ব্যবহার করলে আপনি একটি কার্যকর IPv4 পাথ পাবেন, কিন্তু IPv6-এর জন্য একটি ব্ল্যাক হোল তৈরি হবে। ব্যবহারকারী তখন এটিকে কোনো নির্দিষ্ট ত্রুটি হিসেবে না দেখে "কিছু সাইট ধীরগতিসম্পন্ন" হিসেবে অনুভব করবেন। এই দুটি লাইনই sysctl ফাইলে থাকা প্রয়োজন।
VPS-এর কি subnet route-ও advertise করা উচিত?
একটি exit node সমস্ত ইন্টারনেট ট্রাফিক বহন করে। একটি subnet route শুধুমাত্র একটি নির্দিষ্ট private range বহন করে যা সেই মেশিনটির পেছনে অবস্থিত। এগুলো আলাদা ফিচার এবং এদের জন্য আলাদা অনুমোদনের প্রয়োজন হয়, তবে একটি মেশিন একই সাথে উভয় কাজই করতে পারে।
sudo tailscale set --advertise-routes=10.0.0.0/24যখন আপনার VPS অন্য সার্ভারগুলোর সাথে একটি private network শেয়ার করে এবং আপনি সেই সার্ভারগুলোকে তাদের private address দিয়ে অ্যাক্সেস করতে চান, তখন একটি subnet advertise করুন। Edit route settings প্যানেলে গিয়ে আলাদা টগল ব্যবহার করে এটি অনুমোদন করুন।
IP range নির্বাচনের সময় সতর্ক থাকুন। একটি advertised route আপনার ল্যাপটপের ডিফল্ট রুটের চেয়ে বেশি সুনির্দিষ্ট, তাই VPS থেকে 192.168.1.0/24 advertise করলে তা আপনার বাসার নেটওয়ার্কের একই রেঞ্জের অ্যাড্রেসগুলোকে ওভাররাইড করে ফেলবে এবং আপনার ডেস্কের ডিভাইসগুলো নেটওয়ার্ক থেকে বিচ্ছিন্ন হয়ে যাবে। আপনার নিজের পছন্দ করা একটি রেঞ্জ ব্যবহার করুন, আপনার বাসার রাউটার যে রেঞ্জটি নির্ধারণ করেছে সেটি নয়।
UDP GRO forwarding ব্যবহার করে exit node-কে দ্রুত করা
Tailscale 1.54 এবং পরবর্তী ভার্সনগুলোতে, Linux 6.2 বা তার পরের কার্নেলে, একটি receive offload ব্যবহার করা যায় যা forwarded traffic-এর throughput বৃদ্ধি করে। GRO (generic receive offload) কার্নেল প্রতিটি প্যাকেট আলাদাভাবে প্রসেস করার আগেই সেগুলোকে একত্রিত করে। আগস্ট 2026 অনুযায়ী, এটি exit node-এ এখনো একটি ম্যানুয়াল ধাপ।
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 offip -o route get 8.8.8.8 সেই ইন্টারফেসটিকে রিপোর্ট করে যা সরাসরি ইন্টারনেটের সাথে যুক্ত, তাই আপনাকে eth0, ens3 এবং enp1s0-এর মধ্যে অনুমান করতে হবে না। ethtool -k $NETDEV | grep udp-gro-forwarding দিয়ে নিশ্চিত করুন, যা এখন on হিসেবে দেখানো উচিত।
reboot-এর পরে এই সেটিংটি মুছে যায়। networkd-dispatcher চালিত সিস্টেমে এটিকে স্বয়ংক্রিয় করতে নিচের ধাপটি অনুসরণ করুন:
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/ বিদ্যমান আছে কি না। যদি এটি না থাকে, তবে মেশিনটিতে networkd-dispatcher চলছে না। সেক্ষেত্রে একটি ছোট systemd unit যা boot-এর সময় ethtool লাইনটি রান করবে, সেটি একই কাজ করবে।
আপনার প্রোভাইডারের acceptable use policy আপনার exit traffic-এর জন্য যা নির্দেশ করে
ক্লায়েন্ট যখন exit node-এর মাধ্যমে কোনো প্যাকেট পাঠায়, তখন সেটি আপনার VPS-এর public IP address ব্যবহার করে ইন্টারনেটে যায়। ফলে এই ট্র্যাফিকের দায়ভার আপনার অ্যাকাউন্টের ওপর বর্তায়। কপিরাইট নোটিশ বা port scan-এর মতো অভিযোগগুলো সরাসরি আপনার ইনবক্সে আসবে। কোনো পরিবার বা পুরো টিমকে একটি সার্ভারের মাধ্যমে রাউট করার আগে আপনার প্রোভাইডারের AUP (acceptable use policy) ভালোভাবে পড়ে নিন। যাদের আপনি ব্যক্তিগতভাবে চেনেন না বা যাদের কাজের দায়ভার নিতে পারবেন না, তাদের জন্য exit node উন্মুক্ত করবেন না।
Bandwidth দ্বিগুণ হিসেবে গণ্য হয়। ট্র্যাফিক প্রথমে টানেলের মাধ্যমে VPS-এ পৌঁছায় এবং সেখান থেকে ইন্টারনেটে যায়। সাধারণত উভয় দিকের ট্র্যাফিকই আপনার প্ল্যানের নির্ধারিত transfer allowance থেকে কাটা হয়। exit node-এর মাধ্যমে ভিডিও স্ট্রিম করলে তা সাধারণ ব্যবহারের চেয়ে অনেক বেশি bandwidth খরচ করে।
Datacenter-এর IP address রেঞ্জের একটি নির্দিষ্ট reputation থাকে। অনেক ওয়েবসাইট এই IP-গুলোর ক্ষেত্রে বেশি CAPTCHA প্রদর্শন করে, আবার কিছু স্ট্রিমিং সার্ভিস সরাসরি এগুলোকে ব্লক করে দেয়। আপনার কনফিগারেশনে পরিবর্তন এনে এটি সমাধান করা সম্ভব নয়, কারণ এটি আপনার প্রোভাইডারের মালিকানাধীন address block-এর একটি বৈশিষ্ট্য।
কেন ট্রাফিক এখনও আপনার লোকাল কানেকশন দিয়ে যাচ্ছে
এক্সিট নোডটি অ্যাডভার্টাইজ করা হয়েছে কিন্তু অনুমোদিত নয়। ক্লায়েন্টে tailscale exit-node list চালালে কোনো আউটপুট দেখায় না এবং কোনো মেশিনের লগেই কোনো এরর পাওয়া যায় না। Machines পেজে যান এবং Use as exit node অপশনটি চালু করুন।
ক্লায়েন্ট এটি নির্বাচন করেনি। অনুমোদন দিলে নোডটি কেবল টেলনেটের (tailnet) জন্য উপলব্ধ হয়। প্রতিটি ডিভাইসে আলাদাভাবে এটি নির্বাচন করতে হয়। পুনরায় sudo tailscale set --exit-node=<name> চালান, তারপর আবার curl -4 https://ifconfig.me চেক করুন।
ফরোয়ার্ডিং বন্ধ আছে। এর লক্ষণটি সুনির্দিষ্ট: tailscale ping <vps> সফল হয়, টানেলটি সচল থাকে, কিন্তু বাইরের সব অ্যাড্রেস টাইম-আউট হয়ে যায়। sysctl net.ipv4.ip_forward এর মান 0 দেখায়। sysctl ফাইলটি ঠিক করুন, তারপর sudo sysctl -p /etc/sysctl.d/99-tailscale.conf চালান।
ফায়ারওয়াল ফরোয়ার্ড করা প্যাকেটগুলো ড্রপ করছে। tailscaled নিজস্ব ts-forward চেইন যুক্ত করে, একটি ক্লিন VPS-এর জন্য এটিই যথেষ্ট। যদি কোনো বক্সে আগে থেকেই ufw বা Docker চলতে থাকে, তবে FORWARD পলিসি DROP হয়ে থাকতে পারে অথবা টেলস্কেলের রুলগুলোর আগে অন্য রুল কার্যকর হতে পারে। অনুমান না করে ক্লায়েন্ট যখন কোনো পেজ লোড করার চেষ্টা করছে তখন sudo iptables -L FORWARD -n -v চালান এবং দেখুন কোন কাউন্টার বাড়ছে। ufw ব্যবহারকারী বক্সের ক্ষেত্রে সাধারণত /etc/default/ufw ফাইলে DEFAULT_FORWARD_POLICY="ACCEPT" যোগ করে তারপর sudo ufw reload চালানোই সমাধান। কন্ট্রোল প্যানেলে আপনার প্রোভাইডারের নেটওয়ার্ক ফায়ারওয়ালও চেক করুন, কারণ এটি সার্ভারে চলমান যেকোনো কিছুর চেয়ে আলাদা একটি নিয়ন্ত্রণ ব্যবস্থা।
এটি কাজ করছে, কিন্তু ধীরগতি। উভয় মেশিনে tailscale netcheck চালান। যদি এটি UDP ব্লকড দেখায়, তবে ডিভাইস দুটি সরাসরি পথ তৈরি করতে পারছে না এবং DERP রিলে ব্যবহার করছে, যা প্রতিটি কানেকশনে ল্যাটেন্সি বাড়িয়ে দেয়। প্রোভাইডারের নেটওয়ার্ক ফায়ারওয়ালে VPS-এর জন্য 41641 পোর্টে ইনবাউন্ড UDP ট্রাফিক অনুমতি দিলে সাধারণত সরাসরি পথটি পুনরুদ্ধার হয়।
কখন Tailscale-এর coordination server ব্যবহার বন্ধ করবেন
উপরের সবকিছুই key exchange এবং আপনার ক্লিক করা অনুমোদনের জন্য Tailscale-এর হোস্ট করা coordination server-এর ওপর নির্ভরশীল। আপনার ট্রাফিক সরাসরি ল্যাপটপ থেকে VPS-এ যায় এবং coordination server কখনোই তা বহন করে না, যদিও এটি নির্ধারণ করে কারা tailnet-এ যোগ দিতে পারবে এবং প্রতিটি ডিভাইস কী কী অ্যাক্সেস করতে পারবে। যদি আপনি এই নির্ভরতা দূর করতে চান, তবে আপনার নিজস্ব Tailscale control server হিসেবে Headscale চালান এবং উভয় ক্লায়েন্টকে সেটির দিকে নির্দেশ করুন। এরপর exit node-এর ধাপগুলো একই থাকে, শুধু রুট অনুমোদন হোস্ট করা কনসোলের পরিবর্তে Headscale-এর কমান্ড লাইনের মাধ্যমে সম্পন্ন করতে হয়।
FAQ
exit node নির্বাচন করার পরেও আমার ট্রাফিক কেন লোকাল কানেকশন ব্যবহার করছে?
এর দুটি সাধারণ কারণ রয়েছে। প্রথমত, exit node-এর বিজ্ঞাপন দেওয়া হয়েছে কিন্তু সেটি অনুমোদন করা হয়নি: অ্যাডমিন কনসোলে Machines পেজে যান, VPS-টি খুঁজে বের করুন, Edit route settings নির্বাচন করুন এবং Use as exit node অপশনটি চালু করুন। এই অনুমোদন শুধুমাত্র কনসোল থেকেই করা সম্ভব, সার্ভারের কোনো কমান্ড দিয়ে এটি করা যায় না। দ্বিতীয় কারণটি ভিন্ন: IP forwarding বন্ধ থাকায় টানেলটি চালু হয়, VPS-এর সাথে tailscale ping কাজ করে, কিন্তু বাইরের যেকোনো ঠিকানায় সংযোগ বিচ্ছিন্ন হয়ে যায়। sysctl net.ipv4.ip_forward কমান্ড দিয়ে এটি পরীক্ষা করুন, যার মান অবশ্যই 1 হতে হবে।
আমাকে কি প্রতিবার হাতে কলমে exit node অনুমোদন করতে হবে?
এই টগলটি প্রতিটি মেশিনের জন্য একবারই করতে হয়। আপনি যদি ঘনঘন VPS রিবিল্ড (rebuild) করেন, তবে আপনার tailnet পলিসি ফাইলে একটি autoApprovers ব্লক যোগ করুন যাতে "exitNode": ["tag:exit"] থাকে, tagOwners-এর অধীনে tag:exit নির্ধারণ করুন এবং --advertise-tags=tag:exit ব্যবহার করে নোডটি চালু করুন। একটি tagged ডিভাইস আপনার ইউজার অ্যাকাউন্টের পরিবর্তে tailnet-এর মালিকানাধীন থাকে, তাই এর ক্ষেত্রে প্রযোজ্য অ্যাক্সেস রুলগুলোও পরিবর্তিত হয়।
exit node চালু থাকা অবস্থায় আমার ল্যাপটপ কোন DNS সার্ভার ব্যবহার করে?
exit node নিজেই DNS সার্ভার হিসেবে কাজ করে। exit node ব্যবহারকারী যেকোনো ডিভাইস সমস্ত DNS কুয়েরি সেখানে পাঠায়, যা tailnet-এর জন্য নির্ধারিত গ্লোবাল এবং স্প্লিট DNS নেমসার্ভারগুলোকে ওভাররাইড করে। এটি আপনার লোকাল নেটওয়ার্ককে আপনার সার্চ করা নামগুলো দেখা থেকে বিরত রাখে। কোনো একটি নির্দিষ্ট tailnet নেমসার্ভার কার্যকর রাখতে চাইলে, অ্যাডমিন কনসোলের DNS পেজে গিয়ে সেটির জন্য Use with exit node অপশনটি চালু করুন। MagicDNS নামগুলো তখনও রেজলভ হয়, কারণ Tailscale ক্লায়েন্ট 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-এর অধীনে প্রতিটির জন্য আলাদা অনুমোদনের টগল রয়েছে। উভয় ক্ষেত্রেই VPS-এ IP forwarding চালু থাকা প্রয়োজন। আপনার ল্যাপটপের হোম নেটওয়ার্কের সাথে মিলে যায় এমন কোনো রেঞ্জের বিজ্ঞাপন দেওয়া থেকে বিরত থাকুন, কারণ বিজ্ঞাপিত রুটটি ডিফল্ট রুটের চেয়ে বেশি সুনির্দিষ্ট এবং এর ফলে আপনার লোকাল ডিভাইসগুলো আর নাগালের মধ্যে থাকবে না।
exit node কি আমার VPS প্রোভাইডারের কাছ থেকে আমার ট্রাফিক লুকিয়ে রাখতে পারে?
না। টানেলটি VPS-এ গিয়ে শেষ হয়, তাই ট্রাফিক সার্ভার থেকে এমনভাবে বের হয় যেভাবে গন্তব্যস্থল আশা করে। সাইটটি এনক্রিপ্ট করা না থাকলে আপনার প্রোভাইডার সেই ট্রাফিক পরিষ্কারভাবে দেখতে পাবে। exit node আপনার ট্রাফিক ইন্টারনেটে যুক্ত হওয়ার স্থানটিকে আপনার বর্তমান নেটওয়ার্ক থেকে সরিয়ে আপনার ভাড়া করা সার্ভারে নিয়ে যায়। এটি ক্যাফে ওয়াইফাই বা আপনার হোম ISP-এর কাছ থেকে আপনার ব্রাউজিং লুকিয়ে রাখে, কিন্তু আপনার VPS প্রোভাইডার আপনার অ্যাকাউন্টের নামসহ সেই ব্রাউজিং দেখতে পায়।