إعدادات Tailscale

يتضمن Chute شبكات Tailscale الأصلية المدمجة. بعد الإعداد، يمكنك الإشارة إلى السياسة المدمجة TAILSCALE من القواعد أو مجموعات السياسات لتوجيه حركة المرور عبر tailnet الخاص بك — الوصول إلى الأجهزة الأخرى في الـ tailnet، أو الخروج عبر عقدة خروج (exit node)، أو الوصول إلى الشبكات الفرعية التي ينشرها الأقران.

على عكس بروتوكولات البروكسي العادية، لا يُعرَّف Tailscale سياسةً بسطر خاص بها في [Proxy]؛ بل يتم إعداده عبر قسم [Tailscale] واحد لا يتكرر في الملف كله. يقوم بتسجيل العقدة في خادم التحكم باستخدام مفتاح مصادقة (auth key)، دون الحاجة إلى تسجيل دخول تفاعلي عبر المتصفح.

قسم Tailscale

يحدد قسم [Tailscale] كل ما يحتاجه الجهاز للانضمام إلى tailnet:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
control-server = https://controlplane.tailscale.com
hostname = my-device
exit-node = 100.101.102.103
accept-routes = true
force-derp = false

ملاحظة: يُسمح بقسم [Tailscale] واحد فقط في ملف الإعدادات بأكمله. يُعتبر قسم [Tailscale] المكرر خطأً في الإعداد. ويرجع ذلك إلى أن محرك Tailscale ثقيل ونطاقات عناوين tailnet متنافية مع بعضها — يمكن الانضمام إلى tailnet واحد فقط في كل مرة. وتُقرأ صيغة Surge المسمّاة [Tailscale <name>] على أنها هذا القسم، ويبقى قيد القسم الواحد سارياً.

المعاملات

المفتاح مطلوب الوصف
auth-key نعم مفتاح مصادقة Tailscale. يجب أن يبدأ بـ tskey- عند استخدام مستوى التحكم الرسمي؛ خوادم التحكم الخاصة بطرف ثالث (مثل Headscale) تقبل تنسيقات المفاتيح الخاصة بها
control-server لا عنوان خادم التحكم، يجب أن يكون URL من نوع http(s)://. اتركه فارغاً لاستخدام مستوى التحكم الرسمي controlplane.tailscale.com
hostname لا اسم الجهاز المُبلَّغ إلى tailnet (اسم مضيف MagicDNS)
exit-node لا عقدة الخروج؛ يقبل عنوان IP لـ tailnet (100.x) أو اسم MagicDNS. اتركه فارغاً لعدم استخدام عقدة خروج
accept-routes لا ما إذا كان سيتم قبول مسارات الشبكات الفرعية التي ينشرها الأقران (قيمة منطقية، افتراضي false)
force-derp لا ما إذا كان سيُفرض ترحيل DERP فقط وتعطيل الاتصالات المباشرة (قيمة منطقية، افتراضي false)
direct-quality-guard لا مراقبة جودة المسار المباشر والتراجع استباقياً إلى DERP عند تدهور الجودة (قيمة منطقية، افتراضي false). عند التعطيل، تُسجَّل جودة المسار فقط
peer-relay لا peer-relay = true يتيح لهذا العميل، عند تعذّر فتح مسار مباشر، استخدام عقدة tailnet تشغّل خادم ترحيل UDP (tailscale set --relay-server-port=<port>) بدلاً من DERP. يجب أن يمنح مستوى التحكم tailscale.com/cap/relay مع هذا الجهاز في src وعقدة الترحيل في dst. Chute عميل ترحيل فقط ولا يقوم بالترحيل لعقد أخرى أبداً. معطّل افتراضياً
exit-dns لا DNS المستخدم لأسماء المضيفين المتصل بها عبر عقدة الخروج: auto (الافتراضي عند تعيين عقدة خروج — الحل عبر DNS الخاص بعقدة الخروج)، أو off، أو عنوان IP لخادم DNS يُوصل إليه عبر عقدة الخروج
advertise-exit-node لا عرض هذا الجهاز على tailnet كعقدة خروج (قيمة منطقية، الافتراضي false). macOS فقط — يُتجاهل مع تحذير على iOS وtvOS وAndroid
advertise-routes لا الشبكات الفرعية المحلية التي يعرض هذا الجهاز توجيهها نيابةً عن tailnet، كقائمة CIDR مفصولة بفواصل (مثل 192.168.1.0/24, 10.0.0.0/8). macOS فقط

تُقبل صيغ Surge بوصفها أسماء مستعارة: control-url بدلاً من control-server، و derp-only بدلاً من force-derp.

تقبل القيم المنطقية الصيغ التالية (بدون حساسية لحالة الأحرف): true/false، 1/0، yes/no، on/off.

ملاحظة: يتم تجاهل المفاتيح غير المعروفة مع تحذير (ولا تمنع تحميل الإعداد). الخطأ الإملائي في مفتاح (مثل كتابة force-derp كـ force_derp) سيعطل هذا الخيار بصمت — يرجى التحقق مقابل الجدول أعلاه.

السياسة المدمجة TAILSCALE

بمجرد إعداد قسم [Tailscale]، يصبح معرف السياسة المدمجة TAILSCALE متاحاً — فهو يقف جنباً إلى جنب مع DIRECT و REJECT ويمكن الإشارة إليه مباشرة في القواعد ومجموعات السياسات. عندما لا يكون قسم [Tailscale] مُعداً، أو عندما يكون Tailscale مُطفأً، تعود القواعد التي تشير إلى TAILSCALE إلى REJECT (تفشل فشلاً مغلقاً).

[Proxy Group]
Mesh = select, TAILSCALE, DIRECT

[Rule]
IP-CIDR,100.64.0.0/10,TAILSCALE,no-resolve
FINAL,DIRECT

التوجيه التلقائي

عند تمكين Tailscale، يقوم Chute تلقائياً بإدراج القواعد الثلاثة التالية قبل جميع قواعدك، لذلك عادةً لا تحتاج إلى كتابة قواعد يدوية للوصول إلى tailnet:

DOMAIN-SUFFIX,ts.net,TAILSCALE
IP-CIDR,100.64.0.0/10,TAILSCALE,no-resolve
IP-CIDR6,fd7a:115c:a1e0::/48,TAILSCALE,no-resolve

وحين لا يكون نطاق MagicDNS الأساسي لـ tailnet هو ts.net — أي في نشر Headscale — تُدرَج له أيضاً قاعدة DOMAIN-SUFFIX,<base domain>,TAILSCALE، قبل قواعد accept-routes.

هذه القواعد المُدرجة خاصة بوقت التشغيل فقط ولا تعدل ملف الإعدادات أبداً. عند ضبط accept-routes = true، يتم أيضاً إدراج الشبكات الفرعية التي ينشرها الأقران تلقائياً كقواعد IP-CIDR / IP-CIDR6 مقابلة، وتُحدَّث تلقائياً عند إضافة الأقران للشبكات الفرعية أو سحبها.

الاستخدام

الوصول إلى الأجهزة في tailnet

بمجرد إعداد قسم [Tailscale]، لا يحتاج الوصول إلى الأجهزة الأخرى في tailnet إلى قواعد إضافية — فالقواعد المُدرجة تغطي بالفعل نطاقات tailnet ولاحقة MagicDNS. يمكنك الوصول إلى الأقران مباشرةً باسم MagicDNS أو بعنوان IP الخاص بـ tailnet:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
hostname = my-iphone

[Rule]
FINAL,DIRECT

الآن ستمر الأهداف مثل my-pc.<tailnet>.ts.net أو 100.101.102.103 عبر Tailscale تلقائياً.

الخروج عبر عقدة خروج

اضبط TAILSCALE كهدف FINAL لتوجيه كل حركة المرور التي لا تطابق قاعدة أكثر تحديداً عبر عقدة الخروج:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
exit-node = 100.101.102.103

[Rule]
FINAL,TAILSCALE

ملاحظة: تعيين exit-node وحده لا يوجّه أي حركة مرور عبر عقدة الخروج — يجب أيضاً إضافة قاعدة تُرسل حركة المرور إلى TAILSCALE (على سبيل المثال FINAL,TAILSCALE). بدون هذه القاعدة تكون عقدة الخروج مُهيّأة لكنها غير مُستخدَمة؛ وتُنبّه إلى ذلك محرّرات الإعدادات في Chute Mac و Chute iOS و Chute Android، أما محرّر Chute tvOS فلا.

قبول مسارات الشبكات الفرعية

عندما يعمل جهاز في tailnet كموجّه شبكة فرعية (subnet router) وينشر شبكات فرعية محلية، فعّل accept-routes = true للوصول إلى تلك الشبكات الفرعية؛ يتم إدراج قواعد التوجيه المقابلة تلقائياً:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
accept-routes = true

جعل هذا الجهاز عقدة خروج (macOS فقط)

macOS فقط. يمكن لـ iOS وtvOS وAndroid استخدام عقدة خروج لكن لا يمكنها أن تكون عقدة خروج. تُحلَّل المفاتيح أدناه هناك أيضاً، لكنها تُتجاهل مع تحذير.

يمكن لجهاز Mac يعمل عليه Chute أن يكون هو نفسه عقدة خروج، فتخرج بقية أجهزتك إلى الإنترنت عبره. فعّل ذلك من تبويب Config في النافذة الرئيسية ← Proxy ← Tailscale ← Serve as an Exit Node for other devices (العمل كعقدة خروج للأجهزة الأخرى)، أو من قائمة Tailscale الفرعية في شريط القوائم ← Serve as Exit Node، أو مباشرةً في الإعداد:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
advertise-exit-node = true

ولمشاركة شبكة محلية فقط بدلاً من الخروج الكامل إلى الإنترنت، اذكر الشبكات الفرعية:

[Tailscale]
auth-key = tskey-auth-xxxxxxxxxxxx
advertise-routes = 192.168.1.0/24, 10.0.0.0/8

نشر المسارات مجرد عرض. يجب أن يوافق المسؤول على المسارات من لوحة إدارة Tailscale (أو عبر headscale nodes approve-routes) قبل أن يتمكن أي جهاز من اختيار هذا الـ Mac. وحتى ذلك الحين يظهر في شريط القوائم Waiting for approval in the admin console (في انتظار الموافقة من لوحة الإدارة)، ولا تمر أي حركة بيانات.

بعد الموافقة، تختاره الأجهزة الأخرى كما تختار أي عقدة خروج، ويعرض شريط القوائم عدد الاتصالات التي ينقلها هذا الـ Mac.

أمور ينبغي معرفتها قبل التفعيل:

  • تستخدم حركة بيانات الأجهزة الأخرى اتصال الإنترنت الخاص بهذا الـ Mac وتخرج بعنوان IP الخاص به، لذا تُحتسب على هذا الاتصال وتُنسب إلى هذه الشبكة.
  • تتوقف الخدمة أثناء سكون الـ Mac. فعّل Keep Mac Awake While Serving (إبقاء الـ Mac مستيقظاً أثناء الخدمة) من قائمة Tailscale ليبقى الجهاز مستيقظاً طوال فترة الموافقة وتقديم الخدمة فقط. أما إغلاق الغطاء فيُسكِن الجهاز على أي حال — ولا يوجد إعداد يتجاوز ذلك، وعميل Tailscale الرسمي على macOS لديه القيد نفسه.
  • لا يُعاد توجيه ICMP، لذا لن يستجيب ping من جهاز آخر عبر عقدة الخروج هذه. أما tailscale ping فلا يتأثر لأنه لا يستخدم ICMP.

لعملاء Tailscale الرسميين على iOS وtvOS القيد نفسه وللسبب نفسه: لا يستطيع امتداد الشبكة استضافة مسار تمرير طويل الأمد.

خادم تحكم مخصص (Headscale)

بالإضافة إلى مستوى التحكم الرسمي، يدعم Chute أيضاً خوادم تحكم Headscale / Ionscale ذاتية الاستضافة. ما عليك سوى ملء عنوان URL المقابل:

[Tailscale]
auth-key = your-headscale-preauth-key
control-server = https://headscale.example.com
hostname = my-device

لا تفرض خوادم التحكم الخاصة بطرف ثالث البادئة tskey- وتقبل مفاتيح المصادقة الخاصة بها. يُنصح باستخدام عنوان http:// نصّي فقط على شبكة موثوقة (مثل Headscale مستضاف ذاتياً محلياً).

القيود المعروفة وأفضل الممارسات

يركّز تنفيذ Tailscale في Chute على القدرات الأكثر استخداماً في سيناريوهات البروكسي؛ لا تُدعم بعض ميزات العميل الرسمي بعد. يرجى ملاحظة الاختلافات السلوكية التالية:

  1. استخدم force-derp = true كخيار لاستكشاف الأخطاء وإصلاحها فقط. يفضّل Chute عادةً اتصالات UDP المباشرة مع الأقران (disco hole-punching)، وهي غالباً أقل زمناً وأكثر إنتاجية من ترحيل DERP. إذا كانت الاتصالات المباشرة غير مستقرة باستمرار أو أبطأ من DERP على شبكة محددة، فقارن بين الوضعين وفعّل force-derp لتلك البيئة فقط.

  2. يُدعم تسجيل الدخول بمفتاح المصادقة فقط. لا يتم دعم SSO / تسجيل الدخول التفاعلي عبر المتصفح، وTailscale SSH، وTaildrop، وFunnel / serve. على iOS وtvOS وAndroid لا يستطيع Chute نشر مسارات الشبكات الفرعية المحلية أو تقديم هذا الجهاز كعقدة خروج — فهذه المنصات تنضم كمستهلك فقط؛ أما على macOS فكلاهما مدعوم، انظر قسم «جعل هذا الجهاز عقدة خروج (macOS فقط)» أعلاه.

  3. يبقى DNS على مستوى النظام محلياً عند استخدام عقدة خروج، لكن أسماء المضيفين المتصل بها عبر TAILSCALE تُحل عبر عقدة الخروج. تُحل أسماء MagicDNS محلياً من خريطة tailnet. بالنسبة للاتصالات الموجهة عبر عقدة الخروج، تُحل أسماء المضيفين عبر DNS الخاص بعقدة الخروج (peerapi ExitDNS، أو المحلل المعين عبر exit-dns)؛ عيّن exit-dns = off لإبقاء الحل محلياً. لا تُدعم المحللات العامة أو محللات split-DNS البعيدة.

  4. يدعم MagicDNS سجلات A / AAAA فقط. يتم تجاهل المحللات العامة، ومسارات split-DNS (مدخلات ذات محللات مخصصة)، و ExtraRecords غير العنوانية (TXT / CNAME / SRV)؛ يتم تسجيل تحذير عند الكشف عنها.

  5. MTU الداخلي للمسار المباشر ثابت عند 1280. لا يوجد اكتشاف لـ Path MTU؛ هذه القيمة المحافظة تمنع الثقوب السوداء على روابط PPPoE / الأنفاق المتراكمة. مسار ترحيل DERP غير متأثر.

  6. لا يُدعم قفل Tailnet (قفل الشبكة). في tailnet مع تمكين قفل الشبكة، لن يتم توقيع مفتاح هذه العقدة، وسيقوم الأقران المقفلون بإسقاط حركة المرور من هذا الجهاز بصمت.

  7. إعادة كتابة عنوان المصدر منفَّذة؛ أما عقد خروج Mullvad فلم تُختبر بعد. تُحترَم عناوين التنكّر الخاصة بـ capVer-104 التي قد يخصّصها القرين (SelfNodeV4MasqAddrForThisPeer ونظيره لـ v6)، فتحمل الحركة المتجهة إلى ذلك القرين العنوان الذي طلبه. أما ترتيب Mullvad القائم على ذلك فلم يُجرَّب مع الخدمة الحقيقية.

  8. يعتمد الاسترداد بعد تغيير الشبكة على إشعار النظام. عند التبديل بين Wi-Fi / الخلوي، يعيد Chute بناء الاتصالات على الفور؛ في الحالة النادرة التي لا يُستقبل فيها إشعار تغيير الشبكة، يعود الاسترداد إلى إعادة اتصال يطلقها مراقب (watchdog) بعد نحو 3 دقائق.

  9. عدد الأقران محدود على الأجهزة المحمولة. على iOS وtvOS وAndroid تُقلَّم خريطة الشبكة إلى 256 قريناً — يُحتفظ بالأقران ذوي معرّفات العقد الأصغر ويُسقط الباقي مع تحذير واحد؛ يحتفظ macOS بهم جميعاً.

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-30 15:11:19

هذه الصفحة ترجمة للنسخة الإنجليزية. في حال وجود اختلاف، يُعتمد على النسخة الإنجليزية.

ملاحظة: التطبيق لا يدعم اللغة العربية حاليًا.

results matching ""

    No results matching ""