منفذ مصدر العميل مقابل مستمع الخادم في مسار VPN
قارن رقمي المنفذ في نفق واحد: مستمع الخادم الثابت ومصدر العميل المؤقت، وكيف يقع تحويل الموجه بينهما.
يظهر رقمان في المحادثة نفسها، وليس أي منهما خطأ. يُظهر سجل الخادم المستمع الذي يقدّم الخدمة، ويُظهر الحاسوب المحمول المقبس الذي أرسل مخطط البيانات، وقد يعيد موجه في المنتصف كتابة الثاني أثناء الخروج. مقارنة طرفي المحادثة أنفع من مقارنة الأرقام نفسها. تحافظ المقارنة أدناه على فصل المستمع ومقبس العميل والمصدر المحوَّل، لأنها تجيب عن أسئلة مختلفة.
رقمان يصفان طرفين متقابلين
منفذ الخادم المُهيأ هو الوجهة التي يتصل بها العميل. تحدده السياسة ويظهر في الملف الشخصي ويجب أن يكون مفتوحًا على جانب الخادم. أما منفذ مصدر العميل فيُختار محليًا، عادة من النطاق المؤقت، ووجوده ضروري ليجد الرد مكانًا يهبط فيه. قد يتغير عند كل إعادة اتصال، ولا شيء في التصميم يعتمد على ثباته.
قد يعيد موجه في المنتصف كتابة ذلك المصدر إلى 'تعيينه' الخاص. لهذا غالبًا لا تكون للرقم الملاحظ عند الخادم أي علاقة بالرقم الذي اختاره الحاسوب المحمول.
أين يتغير رقم المصدر أثناء الخروج
خذ مثالًا مخترعًا من IPv4: عميل خلف موجه يُجري ترجمة، وخادم بمستمع 'UDP' واحد، ومخطط بيانات واحد يعبر الاثنين. يسمّي الجدول كل طرف وما يحدث له، بدلًا من إعادة تشغيل الحزمة عند ثلاث نقاط مراقبة.
| Endpoint | What stays fixed | What changes on reconnect | Who owns it |
|---|---|---|---|
| Server listener | The service port and the address the profile names | Nothing; the listener does not follow the client | The server operator |
| Client socket | The destination it dials | The local source port, chosen per socket | The client, or its operating system |
| Translated source | Usually the public address of the router | The port, and sometimes the address after a network switch | The NAT device or the upstream carrier |
الوجهة ثابتة في كل صف، والشيء الوحيد الذي يتغير هو هوية المصدر. متطلبات UDP NAT تفرّق بين عنوان ومنفذ داخليين وبين التعيين الخارجي، وهذا هو بالضبط الفارق بين الصفين الثاني والثالث. قد يحافظ الموجه على منفذ مصدر العميل أو يختار غيره؛ والحفاظ عليه ليس شيئًا ينبغي للتطبيق أن يفترضه.
اقرأ الأطراف الثلاثة من المضيفين أنفسهم
القوائم أدناه تأتي من ثلاث آلات مختلفة، وهي معًا تُظهر المحادثة كاملة. شغّل الأولى على الخادم، والثانية على العميل، والثالثة حيث يوجد التعيين. لا يُظهر سطر سجل واحد الثلاثة أبدًا.
ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194
تُثبت القائمة الأولى أن الخادم مرتبط بمنفذ الخدمة وتُظهر أي عملية تملكه. وتُظهر الثانية مقبس العميل المحلي والوجهة التي اتصل بها. وتُظهر الثالثة التعيين الذي أنشأه الموجه، وهو المكان الوحيد الذي يظهر فيه المصدر المحوَّل. اقرأها بهذا الترتيب فيكفّ الرقمان عن الظهور متناقضين.
ما تغيّره إعادة الاتصال وما لا تغيّره
بعض الموجهات تحتفظ بمنفذ مصدر العميل عندما يكون حرًا، وبعضها يخصص واحدًا مختلفًا في كل مرة. السلوكان طبيعيان، والتطبيق الذي يشترط الأول سينكسر على الثاني. تغيّر التعيين بعد إعادة اتصال أو تبديل شبكة ليس خطأ خادم: العميل يفتح مقبسًا جديدًا، والموجه يمنح ما لديه، والخادم يرى مصدرًا جديدًا على المستمع نفسه. أما الخطأ فيكون أن يتوقع المرء أن يقبل الخادم حركة موجهة إلى منفذ عميل عشوائي.
عملاء OpenVPN في المجتمع يحصلون على هذا السلوك عبر nobind، الذي يتيح لنظام التشغيل اختيار المنفذ المحلي؛ أما المنفذ البعيد فيأتي من الملف الشخصي. الارتباط الصريح خيار متعمد وليس شرطًا في البروتوكول. يظل الخادم يقدّم طرفًا واحدًا بينما يختار العملاء هوياتهم المحلية.
سمِّ الطبقات منفصلة في السجل
داخل النفق توجد محادثة ثانية بمنافذها الخاصة. طلب HTTPS يحمله النفق وجهته TCP 443، بينما يستخدم الاتصال المشفر الخارجي UDP 1194، لذا لا يغيّر تغيير منفذ المصدر الخارجي شيئًا في الخدمة الداخلية.
حتى في الطبقة الخارجية، البروتوكول مهم. UDP 1194 وTCP 1194 طرفان مختلفان، ولن يتلقى مستمع 'TCP' أبدًا مخطط بيانات UDP لمجرد تطابق الرقم. عند توثيق نشر، سمِّ مستمع الخادم ومقبس العميل والمصدر المحوَّل ثلاثة أشياء منفصلة، وأضف النقل إلى كل منها.
ثم دع السياسة تتبع الأدوار. يفتح الخادم النقل المقصود على مستمعه ولا يزال يوثّق الطرف الآخر؛ وجدار حماية العميل يسمح بالردود على تبادله الصادر دون نشر خدمة واردة. أما المرشح عديم الحالة فيحتاج إلى كتابة اتجاه العودة صراحةً، وهذا هو السبب العملي لأهمية التمييز خارج المخططات المرتبة.