منفذ SSH المُمرَّر ليس دائمًا وكيل SOCKS
ميِّز بين تمرير SSH المحلي الثابت ومستمع SOCKS الديناميكي قبل إعداد أي تطبيق.
تنشئ نفق SSH، وتضع 127.0.0.1 ومنفذه في إعدادات الوكيل في المتصفح، فلا يُحمَّل شيء. قد يكون المستمع يعمل على نحو سليم تمامًا. وقد يكون ببساطة ينتظر نوعًا خاطئًا من حركة البيانات.
| التمرير | ما يرسله التطبيق المحلي | اختيار الوجهة |
|---|---|---|
-L | البروتوكول العادي لخدمة الهدف | مثبَّت في أمر SSH |
-D | مفاوضة SOCKS ثم حركة التطبيق | يطلبه عميل SOCKS |
بالنسبة إلى خادم ويب واحد، هذا تمرير ثابت:
ssh -N -L 127.0.0.1:9080:web.example.com:80 [email protected]
زُر http://127.0.0.1:9080/ كموقع ويب. لا تصنِّف المنفذ 9080 بوصفه SOCKS: فهو يمرّر البايتات إلى خادم الويب الواحد المذكور في الأمر. وفتح موقع تحت اسم مضيف مختلف قد يؤثر أيضًا في الاستضافة الافتراضية أو إعادة التوجيه أو ملفات تعريف الارتباط.
أما مستمع SOCKS، فيتغيّر الشكل:
ssh -N -D 127.0.0.1:1080 [email protected]
اضبط التطبيق على استخدام SOCKS عند 127.0.0.1:1080. وإدخال ذلك العنوان مباشرة في شريط عنوان المتصفح يرسل طلب ويب إلى مستمع SOCKS، وهو عدم تطابق آخر في البروتوكول.
دليل OpenSSH يوثّق الشكلين. وهناك استثناء مفيد: تمرير وكيل HTTP موجود باستخدام -L يُنتج منفذًا محليًا يتحدث بروتوكول وكيل HTTP، لأن وجهته الثابتة هي نفسها وكيل HTTP. والخدمة في الطرف البعيد هي التي تحدد ما يناسب التمرير الثابت. وتمرير وكيل موجود عبر SSH يحافظ على بروتوكول ذلك الوكيل وحسابه.