SSD Nodes Learn 🎉 VPS $5.50/মাস থেকে
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-08-13

Ubuntu-তে Tailscale ইনস্টল ত্রুটি ঠিক করার উপায়

Ubuntu-তে Tailscale ইনস্টলের সময় apt যে status code দেখায়, তা দেখে release codename ভুল নাকি signing keyring সমস্যা, দ্রুত শনাক্ত করে সমাধান করুন।

Ubuntu-তে Tailscale ইনস্টলেশনের ত্রুটি কেন apt-এর ত্রুটি

Ubuntu-তে Tailscale ইনস্টলেশনের ত্রুটি প্রায় সব সময় Tailscale-এর কোনো code চলার আগেই ঘটে। এগুলো apt-এর ত্রুটি। Ubuntu নিজস্ব কোনো tailscale package সরবরাহ করে না: August 2026-এ Ubuntu package archive পরীক্ষা করে দেখা গেছে, একমাত্র মেলাগুলো হলো Go helper library এবং python3-tailscale। তাই daemon-টি pkgs.tailscale.com-এ থাকা Tailscale-এর নিজস্ব apt repository থেকে আসতে হয়।

ওই repository যোগ করলে দুটি file লেখা হয়। একটি file apt-কে package-গুলোর অবস্থান জানায়। অন্যটি public key ধারণ করে, যা apt repository index-এর signature যাচাই করতে ব্যবহার করে। নিচের প্রায় প্রতিটি failure-এর কারণ হলো এই দুটি file-এর কোনো একটি ভুল, অথবা apt ও repository-এর মধ্যবর্তী কোনো device request প্রত্যাখ্যান করছে।

Ubuntu 24.04-এর জন্য Tailscale এই command-গুলো প্রকাশ করে:

sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
sudo apt-get update && sudo apt-get install tailscale

noble হলো Ubuntu 24.04-এর codename, এবং এটি উভয় URL-এই থাকে। দ্বিতীয় command-টি /etc/apt/sources.list.d/tailscale.list-এর মধ্যে একটি comment line এবং একটি deb line লেখে, আর cat সেখানে ঠিক কী লেখা হয়েছে তা দেখায়।

cat /etc/apt/sources.list.d/tailscale.list

ওই deb line-টিকে চারটি field-সম্বলিত একটি address হিসেবে পড়ুন: প্রথমে bracket-এর মধ্যে থাকা option [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg], তারপর repository base, যা https-এর মাধ্যমে পৌঁছানো pkgs.tailscale.com/stable/ubuntu, এরপর suite noble, এবং শেষে component main। apt base ও suite একত্র করে একটি URL তৈরি করে এবং সেটি fetch করে: https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InRelease। আপনি যদি হাতে ওই URL fetch করতে পারেন, তাহলে apt-ও সেটি fetch করতে পারবে। এটাই সম্পূর্ণ diagnostic.

কোনো পরিবর্তন করার আগে apt-এর error পড়ুন

এমনভাবে update চালান যাতে error-টি অন্য কোনো output-এ স্ক্রল হয়ে হারিয়ে না যায়।

sudo apt update

ব্যর্থ third-party repository দেখতে এমন হয়। আপনার মেশিনে codename এবং IP address ভিন্ন হবে।

E: Failed to fetch https://pkgs.tailscale.com/stable/ubuntu/dists/wilma/InRelease  404  Not Found [IP: 203.0.113.9 443]
E: Some index files failed to download. They have been ignored, or old ones used instead.

ওই output-এর দুটি বিষয় পরবর্তী পদক্ষেপ নির্ধারণ করে: status code এবং E: Failed to fetch লাইনে থাকা সম্পূর্ণ URL। নিচের summary line দেখে অনুমান করবেন না। URL কপি করে নিজেই server-কে অনুরোধ পাঠান।

curl -sS -o /dev/null -w '%{http_code}\n' https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InRelease

এটি এমন একটি codename-এর জন্য 200 দেখায়, যার জন্য Tailscale package প্রকাশ করে। August 2026-এ পরীক্ষা করে দেখা গেছে, noble একটি signed index ফেরত দেয়, যাতে Origin: Tailscale এবং Codename: noble থাকে। নিজের error থেকে পাওয়া codename দিয়ে noble প্রতিস্থাপন করে আবার চালান। apt error দেখানোর জায়গায় curl যদি 200 পায়, তবে repository ঠিক আছে এবং সমস্যাটি apt-এর নিজস্ব configuration-এ।

স্ট্যাটাস কোড যা জানায়

  • 404 Not Found মানে repository-তে ওই path-এ কোনো file নেই। pkgs.tailscale.com-এর ক্ষেত্রে URL-এ থাকা codename-ই প্রায় সব সময় এর কারণ।
  • 403 Forbidden মানে কোনো endpoint উত্তর দিয়েছে এবং অনুরোধ প্রত্যাখ্যান করেছে। August 2026 অনুযায়ী, এই repository-তে না থাকা কোনো path-এর জন্য 404 ফেরত আসে। তাই 403 হলে আপনার server এবং Tailscale-এর মাঝখানে থাকা proxy, filtering appliance বা firewall-এর দিকে নজর দিন।
  • 401 Unauthorized বা 407 Proxy Authentication Required মানে কোনো proxy এমন credentials চাইছে, যা apt পাঠাচ্ছে না।
  • connect error বা name resolution error মানে কোনো HTTP conversation একেবারেই শুরু হয়নি। IPv6 section-এ যান।

URL-এ থাকা codename Tailscale প্রকাশ করে না

Tailscale প্রতিটি Ubuntu codename-এর জন্য আলাদা directory তৈরি করে। সেখানে নেই এমন codename চাইলে 404 পাওয়া যায়, কারণ সার্ভারে পরিবেশন করার মতো কোনো dists/<codename> নেই। vendor-এর নিজস্ব তালিকা pkgs.tailscale.com/stable-এ কোনগুলো আছে তা দেখানো হয়। August 2026-এ তালিকাটি 16.04 থেকে resolute পর্যন্ত, যা Ubuntu 26.04।

ভুল codename যুক্ত হওয়ার সাধারণ কারণ হলো Ubuntu-ভিত্তিক, কিন্তু Ubuntu নয়—এমন distribution-এ lsb_release -cs চালানো। Linux Mint 22-এ এই command wilma দেখায়, যা Mint-এর নিজস্ব codename; Tailscale সেটির জন্য কিছু প্রকাশ করে না। পরিবর্তে Ubuntu base-এর codename দেখুন।

. /etc/os-release
echo "$VERSION_CODENAME $UBUNTU_CODENAME"

Ubuntu-তে দুটি value একই। derivative-এ VERSION_CODENAME হলো derivative-এর নাম এবং UBUNTU_CODENAME হলো যে Ubuntu release-এর ওপর এটি তৈরি। উভয় URL-এ UBUNTU_CODENAME ব্যবহার করুন।

দ্বিতীয় কারণ হলো release upgrade। Ubuntu upgrade tool চলার সময় third-party source নিষ্ক্রিয় করে। তাই Ubuntu 24.04 থেকে 26.04-এ upgrade করার পরে এমন একটি মেশিনে /etc/apt/sources.list.d/tailscale.list হয় comment করা থাকবে, নয়তো এখনও noble উল্লেখ করবে, যদিও মেশিনটি এখন resolute। নতুন codename দিয়ে দুটি curl command আবার চালিয়ে এটি ঠিক করুন। এতে উভয় file overwrite হবে।

তৃতীয় কারণ হলো সময়ের ব্যবধান। নতুন Ubuntu release-এর পরের কয়েক সপ্তাহে codename Canonical-এর কাছে থাকলেও Tailscale-এ নাও থাকতে পারে। আগের LTS codename দিয়ে file নির্ধারণ করলে সাধারণত installation সফল হয়, কারণ এই package-গুলোর dependency কম। তবে তখন আপনি পুরোনো release-এর জন্য তৈরি build চালাচ্ছেন। apt policy tailscale দিয়ে বাস্তবে কী install হয়েছে তা পরীক্ষা করুন। প্রকৃত codename প্রকাশিত হলে file-এ সেটি আবার ব্যবহার করুন।

Keyring খালি, কিন্তু এটি লেখার command কোনো বার্তা দেয়নি

এটি নীরবে ঘটে এবং এই সমস্যাগুলোর বেশিরভাগ এখানেই শেষ হয়। আবার keyring command-টি দেখুন:

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null

Shell কোনো program চালানোর আগে পুরো pipeline তৈরি করে। তাই sudo tee অবিলম্বে keyring path খুলে সেটিকে zero bytes-এ truncate করে। এরপর curl ব্যর্থ হলে, আর -f-এর কারণে HTTP error হলেই curl ব্যর্থ হওয়ায়, curl কিছু লেখে না এবং nonzero exit status দিয়ে বন্ধ হয়। ফাইলটি zero bytes-এই থাকে। Pipeline-এর exit status হলো তার শেষ command-এর status। শেষ command হলো tee, এবং সেটি সফল হয়। কিছুই প্রদর্শিত হয় না। আপনি পরের command-এ চলে যান এবং মনে করেন key install হয়েছে।

যে command ফাইলটি তৈরি করেছে সেটি নয়, ফাইলটি পরীক্ষা করুন।

ls -l /usr/share/keyrings/tailscale-archive-keyring.gpg
gpg --show-keys /usr/share/keyrings/tailscale-archive-keyring.gpg

একটি সঠিক keyring-এ pub line এবং Tailscale-এর নামযুক্ত uid line প্রদর্শিত হয়। zero byte file-এ gpg: no valid OpenPGP data found. প্রদর্শিত হয়, আর কিছু নয়। HTML error page লেখা ফাইলেও একই ফল দেখা যায়। সেই ফাইলের ওপর head -c 80 চালালে binary key data-এর বদলে web page-এর শুরু দেখা যায়।

কোনো ব্যবহারযোগ্য key না থাকা keyring দিয়ে sudo apt update index download করে, তারপর তা প্রত্যাখ্যান করে। আপনি Tailscale repository এবং তার suite-এর নামযুক্ত W: GPG error line দেখতে পাবেন। তার নিচে The following signatures couldn't be verified because the public key is not available: NO_PUBKEY text-এর পরে 16 character-এর key id থাকবে। এরপর একটি error দেখাবে যে repository-টি signed নয়। apt কী জানাচ্ছে তা লক্ষ্য করুন: এটি index সফলভাবে download করেছে, কিন্তু signature যাচাই করতে পারেনি। এটি key সমস্যা, network সমস্যা নয়। keyring file পুরোপুরি অনুপস্থিত হলে বার্তাটি আবার ভিন্ন হয় এবং Could not open file /usr/share/keyrings/tailscale-archive-keyring.gpg দিয়ে সরাসরি path-এর নাম উল্লেখ করে।

Failed download যাতে কার্যকর keyring নষ্ট করতে না পারে, তাই key-টি দুই ধাপে লিখুন।

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg -o /tmp/tailscale.gpg
gpg --show-keys /tmp/tailscale.gpg
sudo install -m 0644 -o root -g root /tmp/tailscale.gpg /usr/share/keyrings/tailscale-archive-keyring.gpg

মাঝের line-টিই gate। এটি Tailscale uid না দেখালে থামুন এবং ফাইলটি copy করবেন না। 0644 mode গুরুত্বপূর্ণ, কারণ fetch ও verify করার সময় apt unprivileged _apt user-এ নেমে যায়। তাই যে keyring শুধু root পড়তে পারে, apt সেটি ব্যবহার করতে পারে না।

একটি .list এবং একটি .sources ফাইল একই repository বর্ণনা করছে

Ubuntu 24.10-এ নিজস্ব source-গুলোকে deb822 format-এ সরিয়ে নিয়েছে, যেখানে /etc/apt/sources.list হয়ে /etc/apt/sources.list.d/ubuntu.sources হয়েছে। Tailscale এখনও one line format প্রকাশ করে। August 2026-এ পরীক্ষা করে দেখা গেছে, pkgs.tailscale.com থেকে ডাউনলোড করার জন্য কোনো .sources ফাইল নেই: ওই URL 404 ফেরত দেয়। তাই আপনার মেশিনে tailscale.sources থাকলে সেটি আপনি বা কোনো guide হাতে লিখে তৈরি করেছেন। আর tailscale.list-ও থাকলে apt এখন একই repository দুবার বর্ণনা করছে।

কম গুরুতর ক্ষেত্রে প্রতিটি update-এর সময় একটি warning দেখা যায়:

W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/tailscale.list:1 and /etc/apt/sources.list.d/tailscale.sources:1

দুটি ফাইলে ভিন্ন keyring path উল্লেখ থাকলে গুরুতর সমস্যাটি দেখা দেয়, কারণ কোন key repository নিয়ন্ত্রণ করবে তা apt নির্ধারণ করতে পারে না। এটি E: Conflicting values set for option Signed-By regarding source প্রিন্ট করে, এরপর repository ও তার suite, তারপর != দিয়ে আলাদা করা দুটি keyring path দেখায় এবং এরপর আর এগোয় না:

E: The list of sources could not be read.

একটি ফাইল সরানো না পর্যন্ত এই সমস্যা শুধু update নয়, প্রতিটি apt command আটকে দেয়। Ubuntu-এর নিজস্ব repository-তেও একই failure দেখা যায়। deb822 migration-এর পরে duplicate apt source error-এ সাধারণ পরিস্থিতিটি ধাপে ধাপে ব্যাখ্যা করা হয়েছে।

কোনো ফাইল মুছে ফেলার আগে Tailscale উল্লেখ করা প্রতিটি ফাইল খুঁজে বের করুন।

grep -RIn tailscale /etc/apt/sources.list /etc/apt/sources.list.d/

একটি ফাইল রেখে দিন। অন্যটিকে মুছে না ফেলে নিষ্ক্রিয় করতে সেটির নাম পরিবর্তন করুন: apt শুধু .list বা .sources দিয়ে শেষ হওয়া ফাইল পড়ে। তাই tailscale.list.bak এড়িয়ে যায় এবং reference-এর জন্য disk-এ থেকে যায়।

deb822 source ফাইল সঠিকভাবে লেখা

আপনি যদি নতুন format ব্যবহার করতে চান, তাহলে repository address আবার টাইপ না করে আগে থাকা ফাইলটি convert করুন। কারণ ওই address-এ একটি typo থেকেই ওপরের error শুরু হয়। সাম্প্রতিক apt release-এ একটি converter রয়েছে, যা .list ফাইলকে deb822 stanza-এ রূপান্তর করে এবং signed-by option-কে Signed-By হিসেবে স্থানান্তর করে।

apt modernize-sources --help
sudo apt modernize-sources

Ubuntu 24.04-এ এমন apt রয়েছে যা ওই subcommand-এর আগের version-এর। তাই আপনার apt-এ এটি আছে কি না, help line দেখলেই দ্রুত বোঝা যায়। এটি না থাকলে disk-এ থাকা line থেকেই stanza তৈরি করুন। এতে base আপনার keyboard-এর input থেকে নয়, vendor-এর ফাইল থেকে নেওয়া হবে।

. /etc/os-release
{
  echo 'Types: deb'
  echo "URIs: $(awk '/^deb /{print $3}' /etc/apt/sources.list.d/tailscale.list)"
  echo "Suites: $UBUNTU_CODENAME"
  echo 'Components: main'
  echo 'Signed-By: /usr/share/keyrings/tailscale-archive-keyring.gpg'
} | sudo tee /etc/apt/sources.list.d/tailscale.sources
sudo rm /etc/apt/sources.list.d/tailscale.list

এটি যে stanza লিখেছে সেটিই দেখায়। তাই পরবর্তী apt update-এর আগে field-গুলো পড়ে যাচাই করতে পারবেন। এর মধ্যে চারটি field বিস্তারিতভাবে জানা দরকার, কারণ প্রতিটি ভিন্নভাবে ব্যর্থ হয়:

  • URIs repository-এর base পর্যন্ত রাখুন। এর মধ্যে dists/noble অংশ paste করলে 404 হবে, কারণ apt নিজেই dists/<suite> যোগ করে এবং dists/noble/dists/noble-এর জন্য request পাঠায়।
  • Suites হলো codename। এটি one-line format-এর মাঝখানে থাকা value-এর সঙ্গে হুবহু মিলে।
  • Signed-By একটি keyring ফাইলের absolute path গ্রহণ করে। এর নিচে inline armored key-ও দেওয়া যায়। সে ক্ষেত্রে key-এর প্রতিটি line-এর শুরুতে একটি space indent দিতে হবে এবং key-এর ভেতরের প্রতিটি blank line একটি dot দিয়ে লিখতে হবে।
  • Enabled: no source মুছে না ফেলে বন্ধ করে দেয়। Rename করার চেয়ে এটি আবার চালু করা সহজ এবং পরবর্তী administrator-কে বিষয়টি ব্যাখ্যা করাও সহজ।

Third-party repository-এর জন্য প্রতি ফাইলে একটি করে stanza রাখুন। একাধিক stanza একই ফাইলে রাখলে তাদের মধ্যে একটি blank line দিন। Repository index-এ amd64 এবং arm64 architecture হিসেবে তালিকাভুক্ত আছে। তাই ARM VPS-এর জন্য অতিরিক্ত Architectures field দরকার নেই।

মাঝের একটি proxy 403 ফিরিয়ে দেয়

এই repository-তে কোনো path না থাকলে 404 দেখা যায়। তাই 403-এর অর্থ হলো অন্য কোনো উপাদান ওই repository-এর হয়ে উত্তর দিয়েছে। প্রথমে apt-এর নিজস্ব configuration পরীক্ষা করুন। সেখানে নির্ধারিত proxy শুধু apt-এর ক্ষেত্রে প্রযোজ্য, আপনার interactive curl-এর ক্ষেত্রে নয়।

grep -RIn -i proxy /etc/apt/apt.conf.d/ /etc/apt/apt.conf
sudo apt-config dump | grep -i 'acquire::http'

এরপর apt আসলে কী পাঠাচ্ছে তা monitor করুন।

sudo apt -o Debug::Acquire::http=1 update

এতে request line, apt যে header পাঠিয়েছে এবং apt যে proxy-এর মাধ্যমে সংযোগ করেছে তা দেখা যায়, যদি কোনো proxy ব্যবহৃত হয়ে থাকে। একই URL-এ সাধারণ curl চালিয়ে ফলাফলের সঙ্গে তুলনা করুন। curl যদি 200 ফেরত দেয় এবং apt যদি 403 ফেরত দেয়, তাহলে মাঝের উপাদানটি গুরুত্ব দেয় এমন কোনো বিষয়ে দুটি request আলাদা। সাধারণত user agent-ই এর কারণ:

curl -sS -o /dev/null -w '%{http_code}\n' -A 'Debian APT-HTTP/1.3' https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InRelease

এটি 403 ফেরত দিলেও default curl যদি 200 ফেরত দেয়, তাহলে কোনো filtering device নাম দেখে apt-এর request প্রত্যাখ্যান করছে। সমাধানটি সেই device-এ করতে হবে, আপনার server-এ নয়। TLS পরিদর্শনকারী corporate proxy-এর আচরণ আবার ভিন্ন। সেখানে apt status code-এর বদলে certificate verification failure দেখায়, কারণ apt যে certificate পেয়েছে সেটি Tailscale-এর certificate authority নয়, proxy issue করেছে। শুধু Ubuntu mirror অনুমোদন করা cloud egress firewall-ও এর একটি সাধারণ কারণ। সে ক্ষেত্রে firewall-এ pkgs.tailscale.com অনুমোদন করতে হবে।

শুধু IPv6 দিয়ে বহির্মুখী সংযোগ এবং status code নয় এমন error

apt কোনো HTTP response না পেলে প্রতিটি protocol আলাদাভাবে পরীক্ষা করুন।

curl -4 -sS -o /dev/null -w 'v4 %{http_code}\n' https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InRelease
curl -6 -sS -o /dev/null -w 'v6 %{http_code}\n' https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InRelease

IPv4 response দিলে কিন্তু IPv6-এ connection ঝুলে থাকলে বা Network is unreachable দেখালে, resolver library IPv6-কে অগ্রাধিকার দেওয়ায় এবং এই server-এ কার্যকর IPv6 path না থাকায় apt ব্যর্থ হচ্ছে। বিষয়টি নিশ্চিত করতে একবার IPv4 ব্যবহার করে চালান:

sudo apt -o Acquire::ForceIPv4=true update

এই update সফল হলে পরিবর্তনটি স্থায়ী করুন।

echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4

উল্টো পরিস্থিতিটিও বিবেচনা করুন। কোনো VPS-এ একেবারেই IPv4 address না থাকলে IPv4 জোর করে ব্যবহার করলেও কোনো ফল হবে না, কারণ traffic পাঠানোর মতো IPv4 route নেই। সে ক্ষেত্রে provider-এর কাছ থেকে NAT64 এবং DNS64 প্রয়োজন, অথবা এমন একটি proxy প্রয়োজন যার IPv4 address আছে। লক্ষণটি হলো IPv6 address উল্লেখ করা একটি connect error; তাই curl -6 line-টিই প্রকৃত কারণ নির্দেশ করে।

ফলব্যাকগুলো এবং প্রতিটির খরচ

Vendor install script। curl -fsSL https://tailscale.com/install.sh | sh হলো Tailscale যে কমান্ডটি প্রচার করে। Scriptটি পড়লে দেখা যায়, এটি /etc/os-release থেকে আপনার distribution শনাক্ত করে এবং তারপর এই guide-এ যেসব দুটি path ঠিক করা হয়েছে, /usr/share/keyrings/tailscale-archive-keyring.gpg/etc/apt/sources.list.d/tailscale.list, সেগুলো একই URL থেকে লেখে। আপনার প্রত্যাশার জন্য এটি গুরুত্বপূর্ণ: proxy যে repository block করছে, এই script সেটিকে পাশ কাটায় না। এটি একইভাবে ব্যর্থ হয়, শুধু output কম থাকে। Download করা script root হিসেবে shell-এ pipe করা একটি আপস, সমাধান নয়। কারণ ওই মুহূর্তে server যা ফেরত দেয়, আপনি সেটিকেই বিশ্বাস করছেন এবং কী চালানো হয়েছে তার কোনো copy রাখছেন না। এই আপস করলে ঝুঁকিটি বুঝে করুন:

curl -fsSL https://tailscale.com/install.sh -o install.sh
less install.sh
sh install.sh

Static binaries। একই server pkgs.tailscale.com/stable-এর static binaries section-এর অধীনে সাধারণ tarball প্রকাশ করে। August 2026 অনুযায়ী stable release হলো 1.102.2 এবং 64 bit x86 file হলো tailscale_1.102.2_amd64.tgz। আপনি নিজেই tailscale client এবং tailscaled daemon স্থাপন করবেন, এবং daemon নিজেই supervise করবেন। তাই কোনো apt upgrade path থাকবে না, এবং ভবিষ্যতের প্রতিটি update আপনাকেই download করার কথা মনে রাখতে হবে। Air-gapped host-এ, অথবা একটি নির্দিষ্ট exact version pin করা বাধ্যতামূলক হলে, এই পদ্ধতির ব্যবহার যুক্তিযুক্ত।

Ubuntu-এর নিজস্ব package। এমন কোনো package নেই। Vendor repository configure না করে sudo apt install tailscale চালালে E: Unable to locate package tailscale-এ গিয়ে থামবে, এবং apt update যতই পরিবর্তন করুন, এতে ফল বদলাবে না। আপনি যদি আসলে Tailscale-এর hosted server-এর পরিবর্তে নিজের নিয়ন্ত্রণে থাকা একটি coordination server চান, তাহলে সেটি আলাদা সিদ্ধান্ত: নিজের control server হিসেবে Headscale চালানো বিষয়টি সেখানে আলোচনা করা হয়েছে, আর Tailscale এবং সাধারণ WireGuard-এর তুলনা থেকে বোঝা যাবে আপনার এই পুরো ব্যবস্থা প্রয়োজন কি না।

প্যাকেজ ইনস্টল হয়েছে, কিন্তু tailscaled চালু হচ্ছে না

apt-এর কাজ ঠিকমতো শেষ হলে সমস্যা daemon পর্যায়ে দেখা দিতে পারে।

systemctl status tailscaled
sudo journalctl -u tailscaled -n 50

LXC বা OpenVZ-এর মতো host kernel ভাগ করে নেওয়া container virtualisation ব্যবহার করা VPS-এ লগে /dev/net/tun না থাকার একটি বার্তা দেখা যায়। tailscale0 interface তৈরি করতে daemon-এর একটি TUN device প্রয়োজন, কিন্তু container-এ সেটি দেওয়া হয়নি। আপনার provider-কে container-এ TUN সক্রিয় করতে বলুন, অথবা KVM plan-এ স্থানান্তর করুন, যেখানে আপনি নিজস্ব kernel পান। KVM-এ অতিরিক্ত কোনো setup ছাড়াই এটি কাজ করে।

এরপর sudo tailscale up একটি login URL দেখাবে, এবং tailscale status-এর output-এ 100.64.0.0/10 range-এর একটি address-সহ আপনার machine তালিকাভুক্ত হওয়া উচিত। সেখানে তালিকাভুক্ত machine-কে ভিত্তি করে আপনি কাজ করতে পারবেন। যেমন, আপনার VPS থেকে একটি private subnet advertise করা অথবা VPS-কে exit node হিসেবে ব্যবহার করা

FAQ

কেন apt বলছে Tailscale repository স্বাক্ষরিত নয়?

apt repository index ডাউনলোড করেছে, কিন্তু /usr/share/keyrings/tailscale-archive-keyring.gpg-এর সঙ্গে মিলিয়ে এর স্বাক্ষর যাচাই করতে পারেনি। সাধারণ কারণ হলো keyring ফাইলটির আকার শূন্য byte: curl কোনো তথ্য ডাউনলোড করার আগেই sudo tee ফাইলটি truncate করেছে, এবং pipeline সফল হয়েছে কারণ tee সফলভাবে শেষ হয়েছে। gpg --show-keys /usr/share/keyrings/tailscale-archive-keyring.gpg চালান। একটি কার্যকর keyring-এ Tailscale-এর নামসহ একটি pub line এবং একটি uid line দেখা যায়, আর খালি বা নষ্ট keyring-এ gpg: no valid OpenPGP data found. দেখা যায়। Key-টি একটি অস্থায়ী ফাইলে ডাউনলোড করে সেখানে যাচাই করুন। এরপর mode 0644 দিয়ে সেটিকে নির্দিষ্ট স্থানে কপি করুন, যাতে _apt user এটি পড়তে পারে।

Tailscale URL-এ কোন Ubuntu codename ব্যবহার করব?

/etc/os-release থেকে UBUNTU_CODENAME-এর মান ব্যবহার করুন। Ubuntu 24.04-এ এটি noble এবং Ubuntu 26.04-এ resolute। Ubuntu-ভিত্তিক কোনো distribution-এ lsb_release -cs ব্যবহার করবেন না। Linux Mint 22-এ এটি wilma প্রিন্ট করে, Tailscale ওই নামে কোনো package প্রকাশ করে না, এবং apt dists/wilma/InRelease-এ 404 error দেখায়। কোনো কিছু সম্পাদনা করার আগে https://pkgs.tailscale.com/stable/ubuntu/dists/<codename>/InRelease-এর বিরুদ্ধে curl -sS -o /dev/null -w '%{http_code}\n' ব্যবহার করে হাতে index fetch করে আপনার নির্বাচন নিশ্চিত করুন।

Shell-এ pipe করে Tailscale install script চালানো কি নিরাপদ?

এই সিদ্ধান্তটি ভেবেচিন্তে নিন। Script-টি Tailscale থেকে আসে এবং manual ধাপগুলোর মতোই কাজ করে: এটি /etc/os-release পড়ে, একই keyring এবং একই /etc/apt/sources.list.d/tailscale.list লেখে, তারপর package install করে। ঝুঁকি হলো, সেই মুহূর্তে server যা ফেরত দেয় তা root privilege-এ চালানো হয় এবং এর কোনো record রাখা হয় না। -o install.sh দিয়ে script-টি ডাউনলোড করে পড়ুন। এরপর সুবিধার জন্য এটি চালাতে পারেন, যাতে অন্ধভাবে চালানোর ঝুঁকি কমে। Repository blocked থাকলে এটিও সাহায্য করতে পারবে না, কারণ এটি আগেই ব্যর্থ হওয়া একই URL ব্যবহার করে।

apt repository ছাড়া Ubuntu-তে Tailscale কীভাবে install করব?

pkgs.tailscale.com-এ প্রকাশিত static tarball ব্যবহার করুন। August 2026 অনুযায়ী এগুলোর version 1.102.2, এবং amd64 file-এর নাম tailscale_1.102.2_amd64.tgztailscaletailscaled program নিজে install করতে হবে এবং daemon-টি নিজে systemd-এর অধীনে চালাতে হবে। এর অসুবিধা হলো upgrade: নতুন version আনার জন্য কোনো apt package থাকবে না, তাই প্রতিটি update manual করতে হবে। Ubuntu archive-এ নিজস্ব কোনো tailscale package নেই। তাই vendor repository ছাড়া কোনো machine-এ sudo apt install tailscale, E: Unable to locate package tailscale-এ গিয়ে থেমে যায়।