# تطبيق macOS بالتفصيل

بُني URnetwork على Mac من مشروع Xcode نفسه الذي بُني منه تطبيق iPhone
وiPad: قاعدة كود واحدة، ومحرك واحد، وهيئتا نافذة. تستخدمه كما تستخدم شبكة
VPN (تتصل، فتظهر حركتك من مكان آخر)، لكنه يخرج عبر اتصالات منزلية حقيقية
يشاركها أعضاء آخرون، لا عبر مراكز بيانات. تغطي هذه الجولة الأجزاء ذات
الهيئة الخاصة بـMac كاملةً، وتمشي مع الميزات المشتركة بعمق يكفي لاستخدامها؛
وحيث يتطابق السلوك مع iOS، ففي [جولة iOS](/docs/tour-ios) النسخةُ
المستوفاة. وللتثبيت وأول اتصال، انظر
[البدء على macOS](/docs/getting-started-macos)؛ ولمعرفة ما تغيّره المخارج
التي يشغّلها الأعضاء، انظر [النظرة العامة](/docs/overview).

## كيف بُني التطبيق

عمليتان، كما في كل شبكة VPN جادّة على منصات Apple:

- **التطبيق** (الحزمة `network.ur`) هو النافذة وعنصر شريط القوائم.
- **امتداد النفق** (`network.ur.extension`) هو امتداد شبكة من نوع
  `NEPacketTunnelProvider` يبدؤه macOS ويشرف عليه. وحركةُ بياناتك تمرّ عبر
  هذه العملية، ومعنى ذلك أن حمايتك لا تتوقف أبداً على بقاء النافذة مفتوحة.

ويتحدث التطبيق إلى النفق عبر RPC محلي للجهاز (قناة تحكم خاصة بين
العمليتين)، فيستطيع الارتباط بنفق يعمل أصلاً. أنهِ التطبيق وأعد فتحه في
منتصف الجلسة، أو أسقطه، فيتبنّى النفق الحيَّ بدل إعادة تشغيله. وهذا أيضاً
سبب طلب macOS منك الموافقة على إعداد VPN عند أول اتصال: فالامتداد مكوّن
يديره النظام، والنظام يشترط الموافقة.

يحتاج التطبيق إلى macOS 13.5 فأحدث، وكل شيء مفتوح المصدر على
[github.com/urnetwork](https://github.com/urnetwork)، فادّعاءات مثل «مسار
البيانات لا يسجّل شيئاً» يمكن فحصها في الكود بدل أخذها على الثقة. ولا يغطي
أي تدقيق مستقل البروتوكول ولا كود خوادم المشغّل، وهي الطبقة التي تسكن فيها
ادعاءات الخصوصية. وهناك تقييمان خارجيان من 2025 يغطيان سطحين آخرين: اختبار
اختراق لتطبيق الويب وواجهة API، وتقييم MASA بمستوى AL2 من Leviathan
Security Group لتطبيق Android، وقد اجتازه. ولا يغطي أي منهما تطبيق Mac.
ويسجّل [نموذج التهديد](/docs/threat-model) الاثنين وحدودَهما.

## النافذة: شريط جانبي بأربعة أقسام

النافذة الرئيسة عرضٌ مقسوم. وفي الشريط الجانبي الأقسام الأربعة نفسها التي
هي تبويبات iOS (**الاتصال** (Connect)، و**الحساب** (Account)، و**لوحة
الصدارة** (Leaderboard)، و**الدعم** (Support))، والقسم المحدَّد يملأ بقية
النافذة.

### الاتصال

الكرة الأرضية الكبيرة هي زر الاتصال. وسطر الحالة تحتها يقول **متصل بـN
مزوّداً** (Connected to N providers)، ونقرُ ذلك السطر يفتح **مواقع
المزوّدين** (Provider Locations): كرة أرضية تدور فوق قائمة المزوّدين الذين
يحملونك فعلاً الآن. توقّع عدة مزوّدين في آن واحد، عادةً من ثلاثة إلى
ثمانية. ويشغّل عميلك مجموعتين متجاورتين (مجموعة جودة لحركة HTTPS، ومجموعة
سرعة لما عداها) ويثبّت كل موقع على مزوّد واحد، فالصورة متعددة بحكم التصميم
بينما يظل أي موقع منفرد يرى عنواناً ثابتاً واحداً. والمزوّدون البطيئون أو
المتلاشون يُستبدلون تلقائياً؛ وخروجُ أحدهم عن الاتصال في منتصف البث يكلّف
على الأكثر توقفاً وجيزاً بينما ينتقل ذلك الموقع إلى غيره في مجموعتك، وإن
تثاقلت جلسة كاملة فأعد الاتصال لتسحب مجموعة جديدة. وتشرح
[النظرة العامة](/docs/overview) المسار الذي يسلكه كل اتصال، وسببَ توقفه عند
أربع مراحل، وما يستطيع كل طرف على الطريق رؤيته وما لا يستطيع.

وتحت الكرة الأرضية يقع درج التفاصيل: موقعك المختار، و**خيارات الاتصال**
(Connect options) — وضع الاتصال، وعنوان IP الثابت، والإخفاء القوي للهوية،
وتشفير ما بعد الكم — وبطاقات إحصاءات **البعيد** و**المحجوب** و**المحلي**
(Remote / Blocked / Local) التي تفتح عقود العميل وقواعد التقسيم ولوحة DNS،
ومفتاح **حجب الإعلانات والمتتبّعات** (Block ads and trackers). ومشاركة
الاتصال ليست هنا. فهي تسكن في الحساب ← الإعدادات (Account → Settings).

| الإعداد | الافتراضي | الأثر | الكلفة الرئيسة |
|---|---|---|---|
| وضع الاتصال | تلقائي | التلقائي يشغّل مجموعتي المزوّدين معاً ويوجّه كل حزمة إلى المناسبة منهما | «الويب» أو «البث» يلتزمان مجموعة واحدة |
| عنوان IP ثابت | متوقف | يضيّق النافذة إلى مزوّد واحد، فيرى كل موقع عنواناً واحداً ثابتاً | يتخلى عن تعدد المخارج |
| الإخفاء القوي للهوية | مفعّل | يمنع أي مسار مباشر بين العميل والمزوّد، فلا يرى المزوّد عنوانك الحقيقي أبداً | أبطأ من المسار المباشر |
| تشفير ما بعد الكم | مفعّل | يختم الجلسة من طرف إلى طرف حتى المزوّد، فيحمل المشغّل نصاً مشفّراً | يتخطّى المزوّدين الذين يتعذّر الختم معهم |
| حجب الإعلانات والمتتبّعات | متوقف | يرشّح الإعلانات والمتتبّعات من كل ما يحمله النفق | الترشيح يعمّ النفق كله، لا لكل تطبيق |

- إيقاف الإخفاء القوي للهوية هو الوضع المباشر: أسرع، وذلك المزوّد يرى حينها
  عنوانك الحقيقي.
- والختم لا يتراجع. فما دام تشفير ما بعد الكم مفعّلاً، لا يرسل العميل بيانات
  التطبيقات ولا يقبلها بنص واضح: فالمزوّد الذي يتعذّر إنشاء جلسة مختومة معه
  يُتخطّى ولا يُستخدَم بلا ختم. والكلفة في التوافر لا في السرية: تخسر ذلك
  المزوّد، لا تشفيرك. وكل إصدارات المزوّد الحالية تدعم جانب الاستجابة، فذلك
  نادر. وبإيقاف الإعداد يعود المرور قادراً على سلوك المسار القياسي. ولا يعرض
  أي تطبيق حتى الآن حكماً بمختوم-أم-لا لكل اتصال.

المزوّد اتصالٌ حقيقي لعضو آخر؛ والمنصة هي المشغّل في الوسط، توفّق بينك
وبينه. ويرى المزوّد إلى أين تذهب الحركة التي يحملها، وهي الرؤية التي تملكها
عنك شركة الإنترنت اليوم، لكنه لا يرى ما بداخلها، لأن كل موقع تقريباً يختم
محتوياته بنفسه بـHTTPS. وهو افتراضياً لا يعرف عنوان IP الحقيقي الخاص بك
أبداً، فذلك يبقى عند المنصة. والمنصة بدورها لا تحتفظ بشيء يُذكر: فعنوانك
يُحفظ بصيغة تجزئة أحادية الاتجاه بمفتاح (مشوَّشة بمفتاح سري واحد، وغير
قابلة للعكس) لكتلة العناوين المحيطة به لا العنوان نفسه، ويسجّل سجل النقل
عدد البايتات بين معرّفات العملاء، لا المواقع التي تزورها أبداً. نعم، يودع
بحثٌ جغرافي مدينةً تقريبية مقابل كل اتصال، فالأين الخشن معروف؛ أما الماذا
فلا يكون معروفاً أبداً. ومع تفعيل الافتراضيَّين، لا يعرف المزوّد من أنت
أبداً ولا يستطيع المشغّل قراءة ما ترسله، فلا يجمع أي طرف واحد بين هويتك
ونشاطك.

| الوضع | ما يراه المشغّل | ما يراه المزوّد | الافتراضي والتوافر |
|---|---|---|---|
| **مُرحَّل مختوم** | حسابك واتصال المصدر، وأي المزوّدين أنت عليهم، ونص مشفّر مع توقيته وحجمه | الوجهات التي يُخرجها ومعرّف جهاز/عقد، **وليس** عنوان IP الحقيقي الخاص بك | الافتراضي المشحون: تشفير ما بعد الكم، مفعّل في درج الاتصال |
| **مُرحَّل قياسي** | حسابك واتصال المصدر، وأي المزوّدين أنت عليهم، والوجهات وبايتات الحزم في الداخل | الوجهات التي يُخرجها ومعرّف جهاز/عقد، **وليس** عنوان IP الحقيقي الخاص بك | فقط عند إيقاف **تشفير ما بعد الكم** |
| **مباشر** | دور أقل في الترحيل | **عنوان IP الحقيقي الخاص بك** والوجهات التي يُخرجها | يُفعَّل يدوياً: بإيقاف **الإخفاء القوي للهوية** |

الحد: لا شيء يتحقق من أن المزوّدين المعروضين عليك مستقلون بعضهم عن بعض أو
عن المشغّل، والمشغّل يستطيع تشغيل مزوّدين بنفسه. ويُخضِع
[نموذج التهديد](/docs/threat-model) هذه الصفوف لخصوم مسمّين، بمن فيهم مشغّل
عدائي، ويصرّح بموضع إخفاق كل صف.

انقر بطاقة الموقع فتُفتح قائمة المزوّدين. وعلى Mac تنزلق لوحةً إلى جانب
عرض الاتصال بدل ورقة، ويبدّلها أيضاً زرُّ **عرض قائمة المزوّدين** (Show
Provider List) في شريط الأدوات. وتصفّحها يسرد الدول، ولكل دولة عدد حيّ
للمزوّدين المتصلين؛ واكتب اسم مكان في **البحث عن مزوّدين** (Search
providers) فيظهر قسم **المدن** (Cities) في النتائج. والتصويب على مستوى
المدينة شيء تبحث عنه، لا شيء تمرّر إليه. وكل موقع جهازُ عضو موجود هناك
فعلياً: فالمنصة تحدد الموقع الجغرافي للاتصال الذي تراه، والعنوان الذي يبدو
مركز بيانات أو VPN يُخفَّض تصنيفه بدل الوثوق به. و«أفضل المتاح» يحسّن
السرعة قربك؛ أما الموقع المحدد فيجعلك تظهر هناك.

### الحساب

الهوية والخطة تسكنان هنا:

- **الخطة.** المجانية حصة بيانات يومية حقيقية؛ وUR Pro حصة شهرية كبيرة بـ5
  دولارات شهرياً أو 40 دولاراً سنوياً. الأرقام الحالية على
  [ur.io/products](https://ur.io/products).
- **نشاطك في المشاركة.** حيث تُضبط المشاركة، ومعها تفصيل ما حمله نصيبك منها.
  وتربطه الإعدادات باسم «يستخدم بروتوكول UR» (Uses the UR Protocol)؛
  ويوثّق [ur.xyz](https://ur.xyz) طريقة عمل مكافآت المشاركة.
- **رموز الرصيد** (Balance codes). تعبئات بيانات لمرة واحدة: بطاقة هدية
  للبيانات، بلا اشتراك مرفق.
- **المواقع المحجوبة** (Blocked locations). الدول التي لا تريد الخروج عبرها
  أبداً.
- **هويات المزوّدين** (Provider identities). المزوّدون الذين يمسك عميلك
  معهم الآن بجلسة مختومة موثَّقة.
- **لوحة هوية ما بعد الكم.** مغطّاة أدناه.
- **الإعدادات.** حيث تسكن مشاركة الاتصال، ومفتاح الإيقاف، والمواقع
  المحجوبة، والبدء عند تسجيل الدخول، وعبارة الاستعادة وطرق تسجيل الدخول،
  وحذف الحساب.

مفاتيح الإعدادات بنظرة واحدة:

| الإعداد | الافتراضي | الأثر | الكلفة الرئيسة |
|---|---|---|---|
| مشاركة الاتصال | مطلقاً | تشارك فائض نطاق جهاز Mac علناً، أو مع أجهزتك أنت وحدها | كل بايت تحمله يُحسب من سقف بيانات اشتراكك |
| مفتاح الإيقاف | متوقف | يرفض الارتداد المحلي، فتتوقف الحركة بدل أن تتسرب حين لا يكون أي مزوّد متاحاً | لا حركة حين يخفق المزوّدون |
| تشغيل URnetwork عند بدء النظام | متوقف | يبدأ التطبيق عند تسجيل الدخول عبر خدمة عناصر تسجيل الدخول في macOS | مدخل في إعدادات النظام ← عناصر تسجيل الدخول |

والبدء بلا بريد إلكتروني مسارٌ من الدرجة الأولى هنا. فزرّ **إنشاء حساب
فوري** (Create Instant Account) في شاشة الدخول يصنع شبكة حقيقية دائمة بنقرة
واحدة، تؤمّنها عبارةُ استعادة تولّدها المنصة وتعرضها مرة واحدة، فور الإنشاء
مباشرة. احفظها: فهي الطريقة الوحيدة للعودة، والمشغّل لا يحتفظ إلا بصيغها
المجزّأة، ومع حفظها يعيش الحساب بعد جهاز Mac هذا. ثم يكون الحساب هو المكان
الذي تضيف فيه أي طريقة تسجيل دخول أخرى (Apple أو Google أو بريد إلكتروني
أو هاتف أو Solana أو Bittensor) إلى الشبكة نفسها، مع الإبقاء على الرصيد
والتاريخ. والبريد الإلكتروني أو الهاتف هو مسار دخولك واستعادتك، لا أكثر،
أما مسارا عبارة الاستعادة والمحفظة، مع الدفع بعملة USDC على السلسلة،
فيتيحان لحساب ألا يحمل بريداً إلكترونياً ولا اسماً ولا بطاقة إطلاقاً.
و**رمز المصادقة** (auth code) المولَّد على أي جهاز مسجَّل الدخول أصلاً هو
أسرع طريقة لإحضار جهاز Mac إلى حساب قائم.

### لوحة الصدارة

أعلى المزوّدين بحسب البيانات المنقولة، ولا شيء إطلاقاً عن تصفّح أحد. شارِك
من جهاز Mac وتستطيع الظهور هنا، علناً باسم شبكتك أو بلا اسم. وإن لم تشارك،
فأنت ببساطة لست عليها.

### الدعم

الخطط، والمساعدة، والملاحظات، وروابط المجتمع، مع إمكانية إرفاق سجلات العميل
ببلاغ: وهو المسار الطبيعي حين ينكسر شيء. ومن خارج التطبيق، تعمل
feedback.ur.io من أي متصفح؛ وتذهب النتائج الأمنية إلى security@ur.io بموجب
سياسة الإفصاح على ur.io/vdp.

## عنصر شريط القوائم

تسكن URnetwork أيضاً في شريط القوائم، وهو أسرع طريقة لاستخدام التطبيق يوماً
بيوم:

- **الحالة بنظرة واحدة.** متصل ومشارِك، ولكل منهما علامة صحّ أو خطأ.
- **اتصال / قطع الاتصال.** نقرة واحدة، بلا حاجة إلى نافذة.
- **إظهار** (Show). يعيد النافذة الرئيسة.
- **إنهاء URnetwork** (Quit URnetwork). يقطع الاتصال ويخرج.

أغلق النافذة ويظل التطبيق يعمل في شريط القوائم؛ ويظل النفق يعمل على كل حال،
لأنه عملية منفصلة يديرها النظام. و⌘Q ليست إنهاءً أيضاً، وذلك عن قصد: فهي
تخفي النافذة وتُسقط التطبيق من Dock إلى شريط القوائم. أما **إنهاء
URnetwork** هنا فهو الخروج الحقيقي، وهو يُنزل النفق معه.

## المشترك مع iOS: الميزات العميقة

تعمل هذه بالطريقة نفسها تماماً كما في تطبيق iOS؛ وتغطي
[جولة iOS](/docs/tour-ios) كلاً منها بتفصيل كامل.

### DNS مخصّص

لوحة DNS كاملة تحت الاتصال. وDNS هو دفتر هواتف الإنترنت (يحوّل اسماً مثل
netflix.com إلى العنوان الذي يتصل به جهاز Mac) وموضعٌ كلاسيكي للتلصص
والحجب من جدران الحماية المحلية والإقليمية. ولستَ مضطراً إلى لمس
اللوحة: فالافتراضي، أي DNS مشفّر عبر HTTPS يُحلّ عبر النفق، هو الإعداد
الأكثر أماناً أصلاً. ومن هناك تستطيع التبديل إلى أي تركيبة من **DoH
(بعيد/محلي)** و**DNS غير المشفّر (بعيد/محلي)**، وتحرير قوائم المحلِّلات
بنفسك، واستخدام **احتياطي DNS المحلي**، الذي يسابق محلِّلاً محلياً بينما
يبدأ النفق فلا تتعطل عمليات البحث أثناء المصافحة (وإيقافه يعني أن DNS لا
يُحلّ إلا عبر النفق). وتعرض الشاشة إعدادات موصى بها لكل دولة، لأن بعض
الشبكات الوطنية تتدخل في عمليات البحث بما يكفي لكسر أشد الإعدادات صرامة، مع
تطبيق بضغطة واحدة واستعادة بضغطة واحدة إلى الافتراضيات الآمنة، إضافة إلى
خوادم مقترحة مميّزة بلون دولة اتصالك.

### قواعد التقسيم

وجّه حركة بعينها خارج النفق أو ثبّتها في مكانها، على مستوى النطاق وعنوان
IP. اضغط حركةً حيّة لتوجيهها محلياً، وهو الإصلاح حين تختفي شبكةٌ داخلية في
المكتب أو طابعة أو NAS خلف النفق. أو أمسك موقعاً على مزوّد واحد لعنوان
ثابت، فيُبقي ذلك المواقعَ الحسّاسة للعناوين مثل المصارف هادئة؛ وذلك
المزوّد يرى حينها زياراتك لذلك الموقع وحده، ومن دون هويتك ولا محتواك مع
ذلك. والقواعد تلتقط عنقود الشبكة المرتبط كله، فتتحرك حركة CDN والنطاقات
الفرعية معاً. وكما في iOS، **لا يوجد هنا تقسيم للنفق حسب التطبيق**. فهو في
Android وWindows، لكن منصات Apple لا تمنح تطبيقات VPN خُطّافاً مدعوماً لكل
تطبيق، ولذلك تعمل القواعد على Mac على مستوى الشبكة.

### مشاركة الاتصال

مشاركة فائض نطاق جهاز Mac (وسطح المكتب على وصلة رفع جيدة هو بالضبط الجهاز
الذي تريده الشبكة) تُضبط في الحساب ← الإعدادات ← الاتصالات (Account →
Settings → Connections)، حيث **مشاركة الاتصال** خيار رباعي لا مفتاح:

| الوضع | ما يحمله |
|---|---|
| **مطلقاً** | لا شيء. الافتراضي: أنت مستخدم محض |
| **تلقائي** | الحركة العامة ما دمت متصلاً؛ وأجهزتك أنت وحدها حين لا تكون كذلك |
| **دائماً** | الحركة العامة، متصلاً كنت أو غير متصل |
| **الشبكة** | أجهزتك أنت وحدها ليس إلا |

والحركة العامة مقيسة بموجب عقود موقّعة (اتفاقات تشفيرية تعدّ البايتات بين
هويات العملاء، وهي طريقة تسوية الاستخدام من دون تسجيل الوجهات)، والمزوّدون
يشاركون في بروتوكول UR؛ ويوثّق [ur.xyz](https://ur.xyz) طريقة عمل مكافآت
تلك المشاركة.

والسلامة مهندَسة على جهازك أنت. فطبقة الفحص المفتوحة المصدر في محرك الاتصال
تعمل على جهاز Mac عند الخروج وتحجب حركة مشاركة الملفات (من فئة BitTorrent)
وحركة أنماط الهجوم قبل أن تغادر اتصالك. وما ينتجه التطابق: تُسقط الحزمة،
وتوقيعُ مشاركة الملفات يرفع إضافةً إلى ذلك علامة إساءة إلى المشغّل لا تحمل
إلا معرّف الجهاز المرسِل وقيمة نعم/لا (بلا وجهة، وبلا نطاق، وبلا محتويات)،
ولا يشحن المشغّل لها أي معالج اليوم. أما إسقاطات أنماط الهجوم والأنفاق
المبهمة فلا ترفع شيئاً إطلاقاً. والمرشِّح نفسه هو سبب أن URnetwork ليست
عمداً أداة تورنت للمستخدمين. الحد: لا يوجد تصميم مخرج مشترك يجعل الخطر
صفراً بالضبط، ولهذا الجمهور خيارك أنت، وكل بايت تحمله يُحسب من سقف بيانات
اشتراكك، فعلى خطة مقيسة شارِك انتقائياً أو لا تشارك إطلاقاً.

### لوحة هوية ما بعد الكم

الإعداد نفسه هو **تشفير ما بعد الكم** (Post Quantum Encryption)، وهو مفتاح
في درج الاتصال تحت خيارات الاتصال، ويُشحن **مفعّلاً**: فالمختوم هو الحالة
التي يبدأ منها التثبيت الجديد، لا خيار عليك اتخاذه. ثم يعرض الحساب هوية
جلسة ما بعد الكم لعميلك مع ورقة مشاركة للمقارنة خارج القناة، وهي الفكرة
نفسها التي في مقارنة أرقام الأمان في تطبيق مراسلة: فقراءة البصمة عبر قناة
أخرى تُثبت أن الجلسة المختومة تنتهي حيث تظن. وما يغطيه الإعداد: عميلك يختم
الحركة مباشرة حتى المزوّد بجلسة TLS 1.3 مُتفاوَض عليها بـ**X25519MLKEM768**
(هجين تقليدي + ML-KEM)، فيحمل المشغّل في الوسط بايتات لا يستطيع قراءتها،
والتسجيلات المأخوذة اليوم مصممة كي تبقى مختومة حتى أمام حاسوب كمي مستقبلي
(تهديد «احصد الآن، وفُكّ التشفير لاحقاً»). وهو لا يتراجع: فما دام الإعداد
مفعّلاً لا يرسل العميل بيانات التطبيقات ولا يقبلها بنص واضح، فالمزوّد الذي
يتعذّر إنشاء جلسة مختومة معه يُتخطّى ولا يُستخدَم بلا ختم — تخسر ذلك
المزوّد، لا تشفيرك. وكل إصدارات المزوّد الحالية تدعم جانب الاستجابة، فذلك
نادر؛ وبإيقاف الإعداد يعود المرور قادراً على سلوك مسار المنصة القياسي.
ولا يعرض أي تطبيق حتى الآن حكماً بمختوم-أم-لا لكل اتصال. وتوقيعات الهوية
تبقى Ed25519، و«ما بعد الكم» يعني تبادل مفاتيح هذه الجلسة، لا شيئاً أوسع.

## استكشاف الأخطاء وإصلاحها

### الموافقة على إعداد VPN

أول اتصال يُطلق مربع حوار نظامياً يطلب السماح بإعداد VPN. وإن رُفض، فلن
يبدأ النفق أبداً. وافق عليه في المحاولة التالية، أو ابحث في **إعدادات
النظام ← VPN** (System Settings → VPN)، وهو ظاهر أيضاً تحت «الشبكة»، حيث
ينبغي أن يكون إعداد URnetwork مدرجاً ومفعّلاً.

### تعدّد ملفات تعريف VPN، وكيف يديرها التطبيق

قد تترك عمليات إعادة التثبيت والترقيات نظام macOS ممسكاً بأكثر من ملف تعريف
VPN لـURnetwork. والتطبيق يتوقع ذلك: فعند الاتصال يعدّ كل ملف تعريف، وحين
يخفق بدء أحدها يعيد تعيين ذلك الملف ويعيد المحاولة، ثم ينتقل إلى التالي.
وإن كان هناك نفق يعمل أصلاً، تبنّاه عبر RPC الجهاز بدل إعادة التشغيل.
وملفات التعريف المكسورة يُعاد تعيينها أو تُزال مع سقف على عمليات الإزالة،
وكل عملية على ملف تعريف محدودة بمهلة كي لا تُعلِّق خدمةٌ نظامية عالقة
التطبيقَ. وهو تلقائي، ويُوصف هنا كي تُفهم المداخل في إعدادات النظام.

### «تعذّر تحميل ملفات تعريف VPN» (الخطأ 12)

إن أخفق الاتصال برسالة **«تعذّر تحميل ملفات تعريف VPN»** (Failed to load
VPN profiles)، برمز الخطأ 12، فمخزن تفضيلات VPN في النظام يرفض عدّ ملفات
التعريف، وهي حالة لا يستطيع التطبيق إصلاحها من الداخل. أصلحها بيدك:

1. افتح إعدادات النظام وابحث عن إعدادات VPN ‏(إعدادات النظام ← VPN، أو ما
   يعادل «عام ← VPN وإدارة الأجهزة» في نسخة macOS لديك).
2. أزل إعداد أو إعدادات URnetwork.
3. أعد الاتصال من التطبيق ووافق على الإعداد الجديد.

وإزالة الإعداد تحذف السباكة لا البيانات: فحسابك وإعداداتك وقواعد التقسيم
لديك سليمة، والاتصال التالي يُعيد إنشاءه (مع عرض مربع حوار الموافقة لمرة
واحدة من جديد).

### البدء عند تسجيل الدخول

**تشغيل URnetwork عند بدء النظام** (Launch URnetwork on system startup)
مفتاح في الحساب ← الإعدادات، تحت «النظام». وهو يسجّل التطبيق لدى خدمة عناصر
تسجيل الدخول في macOS نفسها، فيعمل على كل نسخة يدعمها التطبيق، ويظهر المدخل
في إعدادات النظام ← عام ← عناصر تسجيل الدخول (System Settings → General →
Login Items)، حيث تستطيع أيضاً إزالته بيدك. وإيقاف المفتاح يلغي تسجيله من
جديد.

### كيف يعمل مفتاح الإيقاف هنا

كما في iOS: يشحن التطبيق مفتاح **مفتاح الإيقاف** (Kill switch) في
الحساب ← الإعدادات ← الاتصالات، وهو عنصر التحكم نفسه من SDK الموجود في كل
تطبيق URnetwork. وهو يبدأ متوقفاً، فتفعيله فعلٌ مقصود. ومع تفعيله، يرفض
العميل الارتداد إلى مسارك المحلي، فتتوقف الحركة بدل أن تتسرب. والذي لا
يضيفه Mac هو الإنفاذ على مستوى نظام التشغيل. فالتطبيق لا يضبط
`includeAllNetworks`، ولذلك إن ماتت عملية النفق فجأةً، أعاد macOS الشبكة
العادية بدل الفشل المغلق: فتبقى تطبيقاتك تعمل على الشبكة الأساسية بعنوانك
الحقيقي، وعلى الأرجح من دون أن تلاحظ أكثر من ومضة. وعلامة الصحّ/الخطأ في
شريط القوائم هي سلك التعثّر الذي تراه بنظرة واحدة. والتطبيق يشرف على النفق
ويستعيد ملفات التعريف بقوة، لكنه لا يطلب حالياً من نظام التشغيل حجب الحركة
حجباً قاطعاً حين يسقط النفق. فإن كنت تحتاج إلى سلوك فشل مغلق مضمون، فأنفذه
خارج جهاز Mac (قاعدة موجّه أو جدار حماية لا تمرّر إلا حركة النفق)، أو أنجز
العمل الحرج في المتصفح عبر امتداد URnetwork للمتصفح، فمفتاح إيقافه مفعّل
افتراضياً ويغطي حركة المتصفح وحدها.

### قراءة سجلات النفق

يسجّل امتداد النفق في سجل النظام الموحّد: أي Console.app، لا في ملفات.

1. افتح **Console.app** واختر جهاز Mac لديك.
2. من قائمة Action، فعّل **تضمين رسائل المعلومات** (Include Info Messages)
   و**تضمين رسائل التصحيح** (Include Debug Messages). فالأسطر المفيدة عند
   هذين المستويين.
3. رشّح بحسب النظام الفرعي `network.ur.extension` أو ابحث عن «URnetwork»،
   ثم أعد إنتاج الاتصال.

### السلوك عند السكون

النفق مضبوط بـ`disconnectOnSleep` متوقفاً: فإغلاق الغطاء لا يهدم الجلسة،
فتستأنف من حيث توقفت بدل إعادة المصافحة عند كل استيقاظ. وجهاز Mac النائم لا
يحرّك أي حركة. فهو لا يتصفح ولا يشارك؛ والإعداد لا يوفّر عليك إلا إعادة
المصافحة.

## إلى أين بعد

- [البدء على macOS](/docs/getting-started-macos) للمسار القصير.
- [جولة iOS](/docs/tour-ios) للميزات نفسها في صورتها المستوفاة، إضافة إلى
  اختصارات Siri.
- [النظرة العامة](/docs/overview) لمعرفة كيف تعمل الشبكة من طرف إلى طرف،
  و[الأسئلة الشائعة](/docs/faq) للأجوبة السريعة.
