هل يساعد TCP 443 فعلاً؟ فقط إذا كان الخادم يستمع هناك
ملف تعريف TCP هو خيار احتياطي، لا تنكّر. تحقق من أن الخادم يستمع على ذلك المنفذ، ثم وازن كلفة TCP المزدوجة مقابل أن تكون غير قابل للوصول.
إن TCP 443 خيار احتياطي بشرط مسبق، لا تنكّر يمرّر نفقًا عبر أي مرشّح. وهو يساعد عندما يكون المشغّل ينشر بالفعل مستمع TCP على ذلك المنفذ ويحتمل المسار اتصالًا يبقى مفتوحًا ساعات. أما إن تعذّر أحد هذين الشرطين فإنه يفشل، عادةً بمهلة انتظار، ونادرًا ما تقول المهلة أي الشرطين نقص. تقرير ما إذا كان ينبغي التبديل يتطلب ثلاثة أسئلة، وواحد منها فقط يتعلق برقم المنفذ.
رقم المنفذ ليس وعدًا بوسيلة نقل
يسمّي المنفذ نقطة نهاية؛ ويحوّله TCP إلى تدفق بايتات مرتّب؛ ويقرّر OpenVPN ما يسير داخل ذلك التدفق. أما خادم ويب على الرقم نفسه فيستخدم ترتيب تطبيق مختلفًا تمامًا، لذا فإن مشاركة المنفذ 443 تجعل الاثنين متشابهين في نظر المرشّح ولا شيء أكثر. الرقم تلميح يقرأه المرشّح، وليس خاصية تغيّر ما تحتويه الحزم. التعامل مع الاثنين كأنهما شيء واحد لأنهما يتشاركان منفذًا هو الخطأ الذي يقف خلف معظم الالتباس هنا.
نادرًا ما تتخذ الصناديق الوسيطة قرارًا بسيطًا بالسماح أو المنع بشأن منفذ. كثير منها يتفحّص البايتات الأولى، وبعضها يثبّت وجهة، وبعضها يعيد ضبط الاتصالات التي تبقى مفتوحة وقتًا طويلًا. لذلك قد يعمل ملف التعريف نفسه من شبكة واحدة وينتهي بمهلة من شبكة أخرى، ولهذا يستحق الخيار الاحتياطي أن يُختبر كخيار مدعوم لا أن يُوثق به كوعد. عندما يفحص مرشّح حركة المرور، فإن رقم المنفذ ليس سوى أول ما ينظر إليه.
أكّد وجود المستمع قبل أن تلمس ملف التعريف
يجب أن يكون الخادم مضبوطًا على TCP على المنفذ، وأن يطلب ملف تعريف العميل وسيلة النقل نفسها. إعادة كتابة ملف تعريف UDP ليطلب TCP لا تنشئ المستمع، والمهلة الناتجة لا يمكن تمييزها عن جدار حماية يُسقط المنفذ. نزّل ملف تعريف TCP الخاص بالمشغّل عندما يوجد واحد، لأن بعض الخدمات تنشر نقطة نهاية منفصلة وإعدادات هوية منفصلة لكل وسيلة نقل. التحرير اليدوي مناسب لاختبار مضبوط وطريقة سيئة لتخمين الإعداد الذي يقصده المزوّد.
يظهر جانبا التطابق في الإعداد، وتوثّق خيارات الارتباط في مشروع OpenVPN الشكلين معًا. ويبدو الزوج الأدنى هكذا:
# server: accept TCP on this port
proto tcp-server
port 443
# client: request the same transport
proto tcp
remote vpn.example.com 443ثلاثة شروط تحدّد ما إذا كان الخيار الاحتياطي يستحق كلفته
الشرط الأول أن يعرض المشغّل وسيلة النقل أصلًا؛ وبدونها لا يهم أي شيء آخر. والشرط الثاني أن يحافظ المسار على جلسة طويلة العمر، لأن بعض الشبكات تعيد ضبط الاتصالات التي تبقى مفتوحة بدلًا من حجب المنفذ كليًا. والشرط الثالث هو ما إذا كان الخيار الاحتياطي استثناءً متعمّدًا أم حلًا مؤقتًا يخفي عيبًا لم تصلحه.
لكل شرط فحص رخيص. وفشل أي منها يبدو متطابقًا من جهة العميل:
| Condition | How to check it | What a failure decides |
|---|---|---|
| The server offers TCP | The operator's profile list, or a listening-socket check on the server | No client-side edit can help |
| The path keeps long sessions | A test connection left open for an hour | Reconnects will look like server faults |
| The fallback is deliberate | A change record naming the UDP fault | The underlying fault stays invisible |
أكمل أي تسجيل دخول في بوابة شبكة قبل أن تقارن وسائل النقل. فالشبكة التي لم تسمح بجهازك تحجب وسيلتي النقل معًا، وتقيس المقارنة عندئذٍ البوابة لا النفق. سجّل الدخول، وتأكد من أن التصفح العادي يعمل، ثم ابدأ الاختبار بعد ذلك فقط.
الكلفة التي تقبلها: TCP داخل TCP
يعيد TCP إرسال المقاطع المفقودة ويحافظ على ترتيبها. وعندما يعمل تطبيق يستخدم TCP أيضًا داخل نفق TCP، تتفاعل طبقتا استعادة مع الفقد نفسه، وهذا التفاعل هو ما يجعل النفق يبدو بطيئًا على مسار يفقد الحزم. العَرَض هو التأخر والتذبذب لا فشل واضح، ما يجعل من السهل لوم الطرف البعيد. قِس من جهة العميل على وسيلتي النقل قبل أن تستنتج.
يتجنّب UDP هذا التداخل، وهو السبب الرئيسي في تفضيل المشغّلين له وعرضهم TCP كبديل فقط. الاتصال الثابت عبر TCP يبقى أنفع من اتصال UDP غير قابل للوصول، لذا فالمقارنة بين كلفتين حقيقيتين لا بين خيار جيد وخيار سيئ. أبقِ الجهاز وشبكة الوصول ثابتين أثناء المقارنة، وإلا وصف النتيجة المتغير الخطأ.
بعض ميزات العميل موثّقة لوسيلة نقل واحدة فقط، لذا قد يُسقط ملف التعريف الاحتياطي بهدوء سلوكًا كنت تعتمد عليه. اقرأ متطلب وسيلة النقل الخاص بالخيار قبل أن تعدّ ملف تعريف TCP مقايضة مباشرة.
أعطال لا تمسّها وسيلة نقل مختلفة
الشهادة المنتهية لا تزال تحتاج إلى فحص ساعة أو تجديد، والحساب المرفوض لا يزال يحتاج إلى بيانات اعتماد صحيحة. أبقِ فحوص هوية الخادم التي وفّرها المشغّل، لأن رقم منفذ مألوفًا لا يوثّق أحدًا. والمنفذ الذي يستجيب يقول فقط إن شيئًا ما يستمع.
إذا قام النفق وظلّت الوجهات تفشل، فالمشكلة المتبقية هي التوجيه أو تحليل الأسماء بعد الاتصال، لا وسيلة النقل. اتبع ذلك المسار بدلًا من الدوران بين المنافذ، فهكذا يضيع بعد الظهر. يخبرك ملف التعريف بوسيلة النقل التي تجرّبها؛ ولا يخبرك أبدًا بسبب فشل مسار UDP.