عندما تعرض صفحة اختبار WebRTC الرمز 172.20.4.15، تكون قد علمت أن واجهة محلية موجودة على تلك الشبكة. هذا كشف حقيقي، وهو ليس النتيجة نفسها التي تعني «الوسائط خرجت عبر مخرج VPN». فاكتشاف المرشحين وتوجيه الحزم آليتان منفصلتان، ومعظم تقارير التسرب تدمجهما في حكم واحد. وأي النتيجتين تنظر إليها هو ما يحدد الإصلاح.

الجمع يحدث قبل إرسال أي شيء

يسرد المتصفح الواجهات المحلية، ويرسل طلب ربط إلى خادم STUN، ويطلب من خادم TURN حجزًا، ثم يكتب النتائج في وصف الجلسة كأسطر مرشحين. كل ذلك يكتمل دون مكالمة ودون وسائط ودون طرف آخر. لذلك فإن قائمة المرشحين سجلّ للاكتشاف، لا للنقل.

قد يستبدل المتصفح الحديث عنوان مرشح المضيف الحرفي باسم mDNS هو .local، فلا تستطيع الصفحة قراءة عنوان IP الخاص. ومع ذلك لا تزال الشبكة المحلية ترى استعلامات البث المتعدد التي تحل ذلك الاسم، أي أن العنوان مخفي عن التطبيق بدل أن يكون مزالًا من الشبكة.

الترتيب مهم أيضًا: تحميل صفحة جديد يجمع مجموعة جديدة، بحجز TURN مختلف وربما بتخطيط انعكاسي مختلف. فعمليتان تختلفان ليستا بالضرورة تهيئتين مختلفتين.

ثلاثة أنواع من المرشحين، وثلاثة أنواع من الأدلة

كل سطر مشتق من رصد مختلف. وكل نوع يجيب عن سؤال مختلف، والجدول يفصل بينها بحسب ما يمكنها إثباته وما لا يمكنها.

CandidateDerived fromWhat it establishesWhat it cannot establish
HostAn interface on the deviceA local address exists in that networkThat the peer can reach it
Server-reflexiveA STUN binding responseHow a NAT mapped this sourceWhich exit the media will use
Peer-reflexiveA connectivity check that arrivedAn address seen by the far sideThat it was ever advertised
RelayA TURN allocationThe relay server accepted the sessionThat the relay carries the call

يُظن خطأً وبصورة معتادة أن مرشح الترحيل هو عنوان الإنترنت الخاص بالمستخدم. فهو يخص خادم TURN، ووجوده يدل على أن ترحيلًا كان متاحًا، لا على أن المتصفح اختاره. والالتباس نفسه يجري في الاتجاه المعاكس مع مرشحي المضيف، حيث يخفي اسم mDNS العنوان عن الصفحة بينما تستمر الشبكة في حمل الاستعلامات. اقرأ النوع قبل أن تقرأ القيمة.

الزوج المختار يجيب عن سؤال التوجيه

يقرن ICE كل مرشح محلي بكل مرشح بعيد، ويجري فحوص اتصال على كل زوج، ثم يرشح فائزًا. ذلك الزوج المرشح، الظاهر في تشخيصات المتصفح نفسها، هو الذي يحمل الوسائط. وكل ما تبقى في القائمة احتمال خسر.

الفائز يخبرك بشكل المسار. الترحيل إلى الترحيل يمر عبر خادم TURN، وزوج المضيف يبقى على الشبكة المحلية، والزوج الانعكاسي من الخادم يمر مباشرة عبر NAT. هذه هي الحقيقة التي يحتاجها فحص VPN، وهي حقيقة مختلفة عن قائمة العناوين. ويمكن لمكالمتين بقائمتين متطابقتين أن تسلكا زوجين مختلفين.

المرشحون غير المختارين جُمعوا أيضًا، والجمع حركة شبكة تغادر الجهاز. فمكالمة استخدمت الترحيل في النهاية لا تعني أنه لم يُكشف شيء أثناء بناء القائمة.

الضوابط تقابل الأهداف، لا درجة تسرب

تصف مواصفة WebRTC لمعالجة IP عدة سياسات: استخدام الواجهة التي تحمل المسار الافتراضي فقط، أو استخدام كل الواجهات، أو تعطيل UDP غير الموكل عبر وكيل بحيث يجب أن تمر الحركة عبر ترحيل أو وكيل. وكل سياسة تقايض الاتصال والتأخير بنوع مختلف من التعرض. وأي سياسة ينفذها المتصفح، وبأي اسم، يختلف بحسب المنصة والإصدار.

اختر السياسة بحسب الهدف. إخفاء العناوين المحلية عن الصفحة هدف؛ ومنع حركة الند للند المباشرة هدف آخر؛ وإبقاء كل حزمة داخل النفق هدف ثالث. الأول يتعلق أساسًا بما تعرفه التطبيقات، والثاني بالمسار المسموح، والثالث يجب فرضه عند حدود المنصة أو VPN أيضًا.

أي ضابط تختاره، تحقق من الشقين معًا: شغّل اختبار الجمع وسجّل أنواع المرشحين، ثم افحص الزوج المختار خلال جلسة حقيقية. فقائمة عناوين نظيفة مع مسار وسائط مباشر لا تزال مسارًا لم تقصده.

مقالات ذات صلة