إصلاح أخطاء تثبيت Tailscale على Ubuntu
هل يظهر لك خطأ apt عند تثبيت Tailscale على Ubuntu؟ تعرّف على قراءة رمز الحالة وإصلاح الاسم الرمزي للإصدار أو حلقة مفاتيح التوقيع خطوة بخطوة.
لماذا تكون أخطاء تثبيت Tailscale على Ubuntu أخطاء apt
تحدث أخطاء تثبيت Tailscale على Ubuntu في معظم الحالات قبل تشغيل أي شيفرة خاصة بـTailscale. فهي أخطاء apt. لا توفّر Ubuntu حزمة tailscale خاصة بها: ووفقاً للتحقق من أرشيف حزم Ubuntu في August 2026، فإن المطابقات الوحيدة هي مكتبات مساعدة لـGo وpython3-tailscale، لذلك يجب أن يأتي البرنامج الخفي من مستودع apt الخاص بـTailscale على pkgs.tailscale.com.
تؤدي إضافة ذلك المستودع إلى كتابة ملفين. يحدد أحد الملفين مكان وجود الحزم. ويحتوي الآخر على المفتاح العام الذي يستخدمه apt للتحقق من توقيع فهرس المستودع. تنشأ جميع حالات الفشل تقريباً أدناه من خطأ في أحد هذين الملفين، أو من رفض جهاز يقع بين apt والمستودع للطلب.
هذه هي الأوامر التي ينشرها Tailscale لـUbuntu 24.04:
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 tailscalenoble هو الاسم الرمزي لـUbuntu 24.04، ويظهر في عنواني URL. يكتب الأمر الثاني سطر تعليق وسطر deb واحداً في /etc/apt/sources.list.d/tailscale.list، بينما يعرض cat المحتوى الذي كُتب هناك حرفياً.
cat /etc/apt/sources.list.d/tailscale.listاقرأ سطر deb على أنه عنوان يتكوّن من أربعة حقول: الخيار المحاط بأقواس مربعة [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg]، ثم قاعدة المستودع، وهي pkgs.tailscale.com/stable/ubuntu التي يتم الوصول إليها عبر https، ثم المجموعة noble، ثم المكوّن main. يضم apt قاعدة المستودع والمجموعة في URL واحد ثم يجلبه: https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InRelease. إذا تمكنت من جلب عنوان URL هذا يدوياً، فسيتمكن apt من جلبه أيضاً. هذا هو التشخيص بأكمله.
اقرأ خطأ apt قبل أن تغيّر أي شيء
شغّل التحديث بمفرده حتى لا يُمرِّر شيء الخطأ خارج الشاشة.
sudo apt updateيظهر مستودع تابع لجهة خارجية فاشل بهذا الشكل. سيختلف اسم الإصدار البرمجي و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.يحدّد أمران في هذا الخرج ما ستفعله بعد ذلك: رمز الحالة، وعنوان URL الكامل في سطر E: Failed to fetch. لا تستنتج السبب من سطر الملخص في الأسفل. انسخ عنوان URL واستعلم من الخادم مباشرة.
curl -sS -o /dev/null -w '%{http_code}\n' https://pkgs.tailscale.com/stable/ubuntu/dists/noble/InReleaseيطبع ذلك 200 لاسم إصدار برمجي تنشر له Tailscale. عند التحقق في August 2026، يعيد noble فهرساً موقّعاً يحمل Origin: Tailscale وCodename: noble. استبدل noble باسم الإصدار البرمجي من الخطأ لديك، ثم شغّله مرة أخرى. إذا حصل curl على 200 بينما حصل apt على خطأ، فالمستودع سليم والمشكلة في إعدادات apt نفسها.
ما الذي يخبرك به رمز الحالة
- يعني
404 Not Foundأن المستودع لا يحتوي على ملف في ذلك المسار. فيpkgs.tailscale.comيكون هذا في الغالب هو الاسم الرمزي للإصدار الوارد في عنوان URL. - يعني
403 Forbiddenأن جهة ما استجابت ورفضت الطلب. اعتباراً من August 2026، يعيد هذا المستودع الرمز 404 للمسار غير الموجود لديه، لذلك يشير الرمز 403 إلى وكيل، أو جهاز تصفية، أو جدار ناري بين خادمك وTailscale. - يعني
401 Unauthorizedأو407 Proxy Authentication Requiredأن الوكيل يطلب بيانات اعتماد لا يرسلها apt. - يعني خطأ الاتصال أو خطأ تحليل الاسم أنه لم تحدث محادثة HTTP على الإطلاق. انتقل إلى قسم IPv6.
الاسم الرمزي في عنوان URL هو اسم لا تنشره Tailscale
تنشئ Tailscale دليلاً منفصلاً لكل اسم رمزي لـUbuntu. إذا طلبت اسماً رمزياً غير موجود، فستحصل على الخطأ 404، لأن الخادم لا يحتوي على dists/<codename> لتقديمه. تعرض قائمة المورّد نفسه في pkgs.tailscale.com/stable الأسماء الموجودة. في أغسطس 2026، تمتد القائمة من 16.04 إلى resolute، وهو Ubuntu 26.04.
الطريقة المعتادة لظهور اسم رمزي خاطئ هي استخدام lsb_release -cs على توزيعة مبنية على Ubuntu لكنها ليست Ubuntu. في Linux Mint 22، يطبع ذلك الأمر wilma، وهو الاسم الرمزي الخاص بـMint، ولا تنشر Tailscale أي حزم له. اقرأ قاعدة Ubuntu بدلاً من ذلك.
. /etc/os-release
echo "$VERSION_CODENAME $UBUNTU_CODENAME"في Ubuntu، تكون القيمتان متماثلتين. أما في التوزيعة المشتقة، فإن VERSION_CODENAME هو اسم التوزيعة المشتقة، وUBUNTU_CODENAME هو إصدار Ubuntu الذي بُنيت عليه. استخدم UBUNTU_CODENAME في عنواني URL.
الطريقة الثانية هي ترقية الإصدار. تعطل أداة ترقية Ubuntu مستودعات الجهات الخارجية أثناء تشغيلها، لذلك بعد ترقية Ubuntu 24.04 إلى 26.04 ستجد أن /etc/apt/sources.list.d/tailscale.list إما معلّق أو ما يزال يحدد noble على جهاز أصبح الآن resolute. أصلح ذلك بإعادة تشغيل أمري curl باستخدام الاسم الرمزي الجديد، إذ يستبدلان الملفين.
الطريقة الثالثة هي التوقيت. في الأسابيع التي تلي إصدار Ubuntu جديداً، يظهر الاسم الرمزي لدى Canonical قبل ظهوره لدى Tailscale. يؤدي توجيه الملف إلى الاسم الرمزي لإصدار LTS السابق عادةً إلى تثبيت الحزم، لأن هذه الحزم لا تحتوي على تبعيات كثيرة، لكنك عندئذ تشغّل إصداراً بُني لإصدار أقدم. تحقّق مما ثُبّت فعلياً باستخدام apt policy tailscale، ثم أعد الملف إلى الاسم الرمزي الصحيح عند ظهوره.
سلسلة المفاتيح فارغة، والأمر الذي كتبها لم يطبع شيئاً
هذه الحالة صامتة، وهي سبب معظم هذه المشكلات. ألقِ نظرة أخرى على أمر سلسلة المفاتيح:
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/nullتنشئ الصدفة كامل خط الأنابيب قبل تشغيل أي من البرنامجين، لذلك يفتح sudo tee مسار سلسلة المفاتيح ويقتطع محتواها إلى صفر بايت فوراً. إذا فشل curl، وكان -f يجعله يفشل عند أي خطأ HTTP، فلن يكتب curl شيئاً وسيخرج بحالة غير صفرية. ويبقى الملف بحجم صفر بايت. تكون حالة خروج خط الأنابيب هي حالة آخر أمر فيه، وهو tee، وقد نجح. لا يُطبع شيء، وتنتقل إلى الأمر التالي معتقداً أن المفتاح ثُبّت.
افحص الملف، لا الأمر الذي أنشأه.
ls -l /usr/share/keyrings/tailscale-archive-keyring.gpg
gpg --show-keys /usr/share/keyrings/tailscale-archive-keyring.gpgتطبع سلسلة المفاتيح السليمة سطراً pub وسطر uid يتضمن اسم Tailscale. أما الملف بحجم صفر بايت فيطبع gpg: no valid OpenPGP data found. ولا يطبع شيئاً آخر. والملف الذي التقط صفحة خطأ بتنسيق HTML يطبع النتيجة نفسها، كما يعرض head -c 80 بدايته صفحة ويب بدلاً من بيانات مفتاح ثنائية.
عندما لا تحتوي سلسلة المفاتيح على مفتاح صالح للاستخدام، ينزّل sudo apt update الفهرس ثم يرفضه. سترى سطراً W: GPG error يتضمن اسم مستودع Tailscale ومجموعته، ثم النص The following signatures couldn't be verified because the public key is not available: NO_PUBKEY متبوعاً بمعرّف مفتاح من 16 محرفاً، وتحته خطأ يفيد بأن المستودع غير موقّع. انتبه إلى ما يخبرك به apt: لقد نزّل الفهرس بنجاح، لكنه لم يتمكن من التحقق من التوقيع. هذه مشكلة في المفتاح، وليست مشكلة في الشبكة. إذا كان ملف سلسلة المفاتيح مفقوداً تماماً، فستظهر رسالة مختلفة، وتذكر المسار مباشرة باستخدام Could not open file /usr/share/keyrings/tailscale-archive-keyring.gpg.
اكتب المفتاح في خطوتين حتى لا يؤدي فشل التنزيل إلى إتلاف سلسلة مفاتيح صالحة.
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السطر الأوسط هو نقطة التحقق: إذا لم يطبع uid الخاص بـTailscale، فتوقف ولا تنسخ الملف. يهم الوضع 0644 لأن apt ينتقل إلى المستخدم غير ذي الصلاحيات _apt للتنزيل والتحقق، ولذلك فإن سلسلة مفاتيح لا يستطيع قراءتها إلا root هي سلسلة مفاتيح لا يستطيع apt استخدامها.
يصف ملف من نوع .list وملف من نوع .sources المستودع نفسه
نقلت Ubuntu مصادرها إلى تنسيق deb822 في Ubuntu 24.10، حيث أصبح /etc/apt/sources.list هو /etc/apt/sources.list.d/ubuntu.sources. وما زالت Tailscale تنشر تنسيق السطر الواحد. وبحسب التحقق في August 2026، لا يوجد ملف .sources يمكن تنزيله من pkgs.tailscale.com؛ إذ يعيد ذلك العنوان الخطأ 404. لذلك، إذا كان جهازك يحتوي على tailscale.sources، فقد أنشأته أنت أو كتبه دليل يدوياً. وإذا كان tailscale.list موجوداً أيضاً، فإن apt يملك الآن وصفين للمستودع نفسه.
تظهر الحالة البسيطة في شكل تحذير عند كل تحديث:
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تحدث الحالة الشديدة عندما يحدّد الملفان مسارين مختلفين لسلسلة المفاتيح، لأن apt لا يستطيع تحديد المفتاح الذي يحكم المستودع. يطبع E: Conflicting values set for option Signed-By regarding source، ثم المستودع ومجموعته، ثم مساري سلسلة المفاتيح مع != بينهما، وبعد ذلك يرفض المتابعة:
E: The list of sources could not be read.يمنع هذا الخطأ كل أوامر apt، وليس التحديث فقط، إلى أن يختفي أحد الملفين. ويظهر الخطأ نفسه مع مستودعات Ubuntu الخاصة. يشرح خطأ مصدر apt المكرر بعد الترحيل إلى deb822 الحالة العامة بالتفصيل.
اعثر على كل ملف يذكر Tailscale قبل حذف أي شيء.
grep -RIn tailscale /etc/apt/sources.list /etc/apt/sources.list.d/احتفظ بملف واحد. ولتعطيل الملف الآخر من دون فقدانه، أعد تسميته: يقرأ apt الملفات التي تنتهي فقط بـ .list أو .sources، لذلك يتخطى tailscale.list.bak ويبقيه على القرص للرجوع إليه.
كتابة ملف المصدر بصيغة deb822 بشكل صحيح
إذا كنت تفضّل الصيغة الأحدث، فحوّل الملف الموجود لديك بدلاً من إعادة كتابة عنوان المستودع، لأن الخطأ المطبعي فيه هو بالضبط ما تبدأ به الأخطاء السابقة. تتضمن إصدارات apt الحديثة محوّلاً يعيد كتابة ملفات .list إلى مقاطع deb822، وينقل الخيار signed-by إليها بصيغة Signed-By.
apt modernize-sources --help
sudo apt modernize-sourcesيتضمن Ubuntu 24.04 إصداراً من apt أقدم من هذا الأمر الفرعي، لذلك يوضح سطر المساعدة خلال ثانية ما إذا كان متوفراً لديك. إذا لم يكن متوفراً، فأنشئ المقطع من السطر الموجود على القرص، كي يُستخرج المسار الأساسي من ملف المورّد بدلاً من إدخاله يدوياً.
. /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يطبع ذلك المقطع الذي كتبه، حتى تتمكن من مراجعة الحقول قبل تنفيذ apt update التالي. من المهم معرفة أربعة منها بالتفصيل، لأن كل واحد منها يفشل بطريقة مختلفة:
URIsيتوقف عند المسار الأساسي للمستودع. يؤدي لصق الجزءdists/nobleفيه إلى ظهور خطأ 404، لأن apt يضيفdists/<suite>بنفسه ويطلبdists/noble/dists/noble.Suitesهو الاسم الرمزي للإصدار، وهو القيمة نفسها التي كانت في منتصف صيغة السطر الواحد.Signed-Byيقبل مساراً مطلقاً إلى ملف keyring. كما يقبل مفتاحاً بصيغة armored مضمّناً تحته، بحيث يبدأ كل سطر من المفتاح بمسافة واحدة، ويُكتب كل سطر فارغ داخل المفتاح كنقطة واحدة.Enabled: noيعطّل المصدر من دون حذفه، وهذا أسهل في التراجع عنه من إعادة التسمية وأسهل في شرحه للشخص التالي.
احتفظ بمقطع واحد لكل ملف خاص بمستودعات الجهات الخارجية، وضع سطراً فارغاً بين المقاطع إذا احتفظت بعدة مقاطع في ملف واحد. يسرد فهرس المستودع amd64 وarm64 ضمن بنياته، لذلك لا يحتاج VPS يعمل بمعمارية ARM إلى حقل Architectures إضافي.
يُرجع Proxy وسيط الرمز 403
بما أنّ مساراً لا يملك هذا المستودع إجابة عنه يُرجع 404، فإنّ الرمز 403 يعني أنّ جهة أخرى أجابت نيابةً عنه. ابدأ بإعدادات apt نفسها، لأنّ Proxy المحدد فيها ينطبق على apt ولا ينطبق على curl التفاعلي الذي تستخدمه.
grep -RIn -i proxy /etc/apt/apt.conf.d/ /etc/apt/apt.conf
sudo apt-config dump | grep -i 'acquire::http'راقب بعد ذلك ما يرسله apt فعلياً.
sudo apt -o Debug::Acquire::http=1 updateيعرض ذلك سطر الطلب، والرؤوس التي أرسلها apt، والـProxy الذي اتصل من خلاله، إن وُجد. قارنه بطلب curl عادي إلى عنوان URL نفسه. إذا أعاد curl الرمز 200 وأعاد apt الرمز 403، فهذا يعني أنّ الطلبين يختلفان في شيء يهتم به الجهاز الوسيط. والاحتمال المعتاد هو 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 بينما أعاد curl الافتراضي 200، فإنّ جهاز تصفية يرفض apt بناءً على اسمه. يجب إصلاح ذلك على الجهاز نفسه، وليس على خادمك. يتصرف Proxy مؤسسي يفحص TLS بطريقة مختلفة أيضاً: إذ يُبلغ apt عن فشل في التحقق من الشهادة بدلاً من الإبلاغ عن رمز حالة، لأنّ الشهادة التي تلقاها صادرة عن الـProxy وليست عن مرجعية شهادات Tailscale. ويُعد جدار ناري سحابي للخروج لا يسمح إلا بمرايا Ubuntu مصدراً شائعاً آخر للمشكلة. وفي هذه الحالة، يكون الإصلاح هو السماح بـ pkgs.tailscale.com في الجدار الناري.
الخروج عبر IPv6 فقط، والأخطاء التي لا تمثل رموز حالة
إذا لم يتلقَّ apt أي استجابة HTTP، فاختبر كل بروتوكول على حدة.
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 بينما يتعطل IPv6 أو يعرض Network is unreachable، يفشل apt لأن مكتبة محلّل الأسماء تفضّل IPv6، ولأن الخادم لا يملك مسار IPv6 صالحاً. شغّل العملية مرة واحدة عبر IPv4 لتأكيد ذلك:
sudo apt -o Acquire::ForceIPv4=true updateإذا نجح هذا التحديث، فاجعل الإعداد دائماً.
echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4يجب التعامل بوضوح مع الحالة العكسية. إذا كان VPS لا يملك عنوان IPv4 إطلاقاً، فلن يغيّر فرض IPv4 شيئاً، لأنه لا يوجد مسار IPv4 لإرسال حركة الشبكة عبره. في هذه الحالة، تحتاج إلى NAT64 مع DNS64 من مزود الخدمة، أو إلى وكيل يحتفظ بعنوان IPv4. يتمثل العرض في خطأ اتصال يذكر عنوان IPv6، ولذلك فإن السطر curl -6 هو الذي يوضح السبب الفعلي.
البدائل، وتكلفة كل بديل
سكريبت التثبيت المقدم من المورّد. curl -fsSL https://tailscale.com/install.sh | sh هو الأمر الذي تعلن عنه Tailscale. عند قراءة السكريبت، ستجد أنه يكتشف توزيعتك من /etc/os-release، ثم يكتب المسارين نفسيهما اللذين يعالجهما هذا الدليل، /usr/share/keyrings/tailscale-archive-keyring.gpg و/etc/apt/sources.list.d/tailscale.list، باستخدام عنواني URL نفسيهما. وهذا مهم لتوقعاتك: فالسكريبت لا يتجاوز مستودعاً يحجبه proxy. بل يفشل بالطريقة نفسها مع مخرجات أقل. إن تمرير سكريبت مُنزَّل إلى shell بصلاحيات root هو مقايضة، وليس حلاً، لأنك تثق بما يعيده الخادم في تلك اللحظة، ولا تحتفظ بنسخة مما نُفّذ. إذا قبلت هذه المقايضة، فافعل ذلك مع إدراك كامل لما تفعله:
curl -fsSL https://tailscale.com/install.sh -o install.sh
less install.sh
sh install.shالملفات الثنائية الثابتة. ينشر الخادم نفسه أرشيفات tarball عادية ضمن قسم الملفات الثنائية الثابتة في pkgs.tailscale.com/stable. اعتباراً من August 2026، الإصدار المستقر هو 1.102.2، وملف x86 ذي 64 bit هو tailscale_1.102.2_amd64.tgz. تضع برنامج العميل tailscale والـdaemon tailscaled بنفسك، وتشرف على الـdaemon بنفسك، لذلك لا يوجد مسار apt upgrade، وكل تحديث مستقبلي هو عملية تنزيل يجب أن تتذكر تنفيذها. يكون هذا الخيار مناسباً على host معزول عن الشبكة، أو عندما يجب تثبيت إصدار محدد بدقة.
حزمة Ubuntu الخاصة. لا توجد حزمة من هذا النوع. يؤدي تشغيل sudo apt install tailscale من دون إعداد مستودع المورّد إلى E: Unable to locate package tailscale، ولا يغيّر apt update ذلك مهما تكرر استخدامه. إذا كان ما تريده فعلياً هو coordination server تتحكم فيه بدلاً من الخادم المستضاف لدى Tailscale، فهذا قرار منفصل: يشرح تشغيل Headscale كخادم تحكم خاص بك هذا الخيار، وتوضح المقارنة بين Tailscale وWireGuard العادي ما إذا كنت تحتاج إلى هذه المكونات أصلاً.
تم تثبيت الحزمة، لكن tailscaled لا يبدأ
بعد أن يعمل apt دون أخطاء، تنتقل المشكلات إلى الخدمة الخفية.
systemctl status tailscaled
sudo journalctl -u tailscaled -n 50على VPS يستخدم المحاكاة الافتراضية للحاويات ويشارك نواة المضيف، مثل LXC أو OpenVZ، يحتوي السجل على سطر يفيد بعدم وجود /dev/net/tun. تحتاج الخدمة الخفية إلى جهاز TUN لإنشاء واجهة tailscale0، لكن الحاوية لم تُمنح هذا الجهاز. اطلب من مزود الخدمة تفعيل TUN للحاوية، أو انتقل إلى خطة KVM تحصل فيها على نواة خاصة بك. يعمل ذلك على KVM دون إعداد إضافي.
بعد ذلك، يعرض sudo tailscale up عنوان URL لتسجيل الدخول، ويجب أن يعرض tailscale status جهازك بعنوان يقع ضمن النطاق 100.64.0.0/10. الجهاز الذي يظهر هناك يكون جاهزاً للبناء عليه، سواء كان ذلك يعني الإعلان عن شبكة فرعية خاصة من VPS أو استخدام VPS كعقدة خروج.
FAQ
لماذا يقول apt إن مستودع Tailscale غير موقّع؟
لأن apt نزّل فهرس المستودع ولم يتمكن من التحقق من توقيعه باستخدام /usr/share/keyrings/tailscale-archive-keyring.gpg. السبب المعتاد هو أن حلقة المفاتيح حجمها صفر بايت: إذ إن sudo tee اقتطع الملف قبل أن يفشل curl في تنزيل أي شيء، وأبلغت السلسلة عن نجاح لأن tee نجح. نفّذ gpg --show-keys /usr/share/keyrings/tailscale-archive-keyring.gpg. تطبع حلقة المفاتيح السليمة سطراً من نوع pub وسطراً من نوع uid يذكر Tailscale، بينما تطبع الحلقة الفارغة أو التالفة gpg: no valid OpenPGP data found.. نزّل المفتاح إلى ملف مؤقت، وافحصه هناك، ثم انسخه إلى موضعه بالوضع 0644 حتى يتمكن المستخدم _apt من قراءته.
ما هو الاسم الرمزي لإصدار Ubuntu الذي يجب أن أضعه في عناوين URL الخاصة بـ Tailscale؟
استخدم قيمة UBUNTU_CODENAME من /etc/os-release، وهي noble في Ubuntu 24.04 وresolute في Ubuntu 26.04. لا تستخدم lsb_release -cs على توزيعة مشتقة من Ubuntu: إذ يطبع هذا الأمر في Linux Mint 22 القيمة wilma، ولا ينشر Tailscale أي شيء بهذا الاسم، ويعرض apt خطأ 404 عند الوصول إلى dists/wilma/InRelease. أكّد اختيارك قبل تعديل أي شيء، وذلك بجلب الفهرس يدوياً باستخدام curl -sS -o /dev/null -w '%{http_code}\n' مقابل https://pkgs.tailscale.com/stable/ubuntu/dists/<codename>/InRelease.
هل من الآمن تشغيل برنامج تثبيت Tailscale بعد تمريره إلى shell؟
هذا قرار يجب اتخاذه بوعي. يأتي البرنامج النصي من Tailscale وينفّذ الخطوات اليدوية نفسها: يقرأ /etc/os-release، ويكتب حلقة المفاتيح نفسها وملف /etc/apt/sources.list.d/tailscale.list نفسه، ثم يثبّت الحزمة. لكنك ستشغّل أي محتوى يعيده الخادم في تلك اللحظة بصلاحيات root، ولن تحتفظ بسجل له. نزّله باستخدام -o install.sh، واقرأه، ثم شغّله إذا أردت سهولة الاستخدام من دون هذه النقطة العمياء. كما أنه لا يستطيع معالجة مستودع محظور، لأنه يستخدم عناوين URL نفسها التي فشلت مسبقاً.
كيف أثبّت Tailscale على Ubuntu من دون مستودع apt؟
استخدم أرشيفات tar الثابتة المنشورة على pkgs.tailscale.com، والتي كان إصدارها في August 2026 هو 1.102.2، مع ملف amd64 اسمه tailscale_1.102.2_amd64.tgz. عليك تثبيت برنامجي tailscale وtailscaled بنفسك، وتشغيل البرنامج الخفي تحت systemd بنفسك. التكلفة هي التحديثات: لا توجد حزمة apt لجلب إصدار جديد، ولذلك يجب تنفيذ كل تحديث يدوياً. لا يحتوي أرشيف Ubuntu على حزمة tailscale خاصة به، ولذلك يتوقف sudo apt install tailscale على جهاز لا يحتوي على مستودع المورّد عند E: Unable to locate package tailscale.