دفتر سفر شخصي
ملاحظات من الطريق والاتصال

هل Shadowsocks يشفر كل اتصال الجهاز مثل VPN؟ نجاح المتصفح لا يعني أن بقية التطبيقات تمر من الطريق نفسه

شاشتان على حاسوب مكتبي إحداهما تعرض موقعًا يعمل والأخرى تطبيقًا عالقًا في الاتصال

المتصفح فتح.

فقلت لنفسي: انتهت المشكلة.

كنت على شبكة تقيد بعض الخدمات، وحصلت على إعداد Shadowsocks من مصدر أثق به.

أدخلت الخادم والمنفذ وكلمة المرور.

خلاصة المقال والسياق

ما الخلاصة العملية من هذه التجربة؟

لأن إضافة المتصفح أو الـProxy قد تغطي حركة المتصفح فقط. نجاح صفحة ويب لا يثبت أن النظام كله أو بقية التطبيقات تمر عبر المسار نفسه.

نقاط سريعة قبل متابعة القصة

  • لماذا قد ينجح VPN أو Proxy داخل المتصفح بينما يبقى تطبيق آخر خارج الاتصال؟ لأن إضافة المتصفح أو الـProxy قد تغطي حركة المتصفح فقط. نجاح صفحة ويب لا يثبت أن النظام كله أو بقية التطبيقات تمر عبر المسار نفسه.
  • كيف أعرف نطاق الحماية الفعلي؟ اختبر تطبيقًا خارج المتصفح وتحقق من سلوكه واتصاله. إذا لم يتغير، فالحل يعمل على طبقة أضيق من VPN كامل للجهاز.

شغلت الاتصال.

فتحت موقعًا كان لا يصل قبل دقائق.

ظهر فورًا.

ثم فتحت تطبيق المراسلة على الكمبيوتر.

ظل يحاول الاتصال.

فتحت برنامج المزامنة الذي أحتاجه للعمل.

Offline.

عدت إلى المتصفح.

يعمل بلا مشكلة.

وهنا ظهر السؤال الذي كنت أتجاهله:

إذا كان Shadowsocks يعمل، فلماذا لا تعمل بقية التطبيقات؟

الجواب لم يكن في قوة التشفير.

كان في شيء أبسط:

هل تمر حركة هذه التطبيقات عبره أصلًا؟

Shadowsocks يشفر ما يمر عبره

Shadowsocks مصمم أساسًا كـproxy مشفر. العميل المحلي يستطيع توفير SOCKS5، ثم تمر الحركة التي يرسلها التطبيق إلى هذا الـproxy عبر الاتصال المشفر إلى الخادم البعيد. (Shadowsocks)

هذه الفكرة وحدها صححت سوء الفهم عندي.

كنت أرى موقعًا يفتح وأفترض أن الجهاز كله أصبح خلف نفق واحد.

لكن نجاح المتصفح يثبت شيئًا واحدًا فقط:

المتصفح وجد طريقه عبر Shadowsocks.

ولا يخبرني تلقائيًا بما فعله برنامج المزامنة أو تطبيق المكالمة.

وهذا هو الفرق الذي لم أكن أراه.

على Windows ظهر الفرق فورًا

عميل Shadowsocks على Windows يستطيع العمل مع System Proxy، ويمكن أيضًا ضبط التطبيقات يدويًا لاستخدام SOCKS5 أو HTTP proxy. (Shadowsocks for Windows)

فذهبت إلى تطبيق المراسلة.

وجدت إعداد Proxy.

أدخلت SOCKS5 المحلي.

أعدت تشغيل التطبيق.

اتصل.

ممتاز.

ثم عدت إلى برنامج المزامنة.

لم أجد الإعداد نفسه بهذه السهولة.

فتحت تطبيق المكالمة.

هو أيضًا لم يتصرف مثل المتصفح.

الآن أصبح Shadowsocks يعمل مع تطبيقين بدل واحد.

لكن المهمة نفسها أصبحت أكثر تعقيدًا.

كنت أدير قائمة:

المتصفح يعمل.

المراسلة تعمل بعد ضبطها.

المزامنة لا تزال مشكلة.

والمكالمة تحتاج اختبارًا آخر.

وهنا أدركت أنني أحاول حل مشكلة متعددة التطبيقات بأداة تتطلب مني التفكير في كل تطبيق على حدة.

السؤال لم يعد «هل التشفير قوي؟»

أنا لم أكن أحتاج المتصفح وحده.

مهمتي الفعلية كانت سلسلة قصيرة:

أفتح رابط العمل.

أستقبل رسالة.

أزامن ملفًا.

ثم أدخل مكالمة.

إذا عمل أول تطبيق وفشل الثالث، فالمهمة لم تنجح.

لهذا تغير معيار المقارنة عندي.

بالنسبة لمهمة موزعة على عدة تطبيقات، تغطية المهمة كلها أهم من نجاح Proxy داخل تطبيق واحد.

وهذا جعلني أتوقف عن استخدام صفحة ويب واحدة كاختبار نهائي.

رسم تقني مبسط يوضح أن تطبيقًا واحدًا فقط يمر عبر الوكيل بينما تبقى التطبيقات الأخرى خارجه
نجاح مسار واحد لا يعني أن بقية البرامج اختارت المسار نفسه.

Android يمكن أن يجعل الصورة تبدو مختلفة

على Android تستطيع التطبيقات استخدام VpnService لإنشاء واجهة افتراضية وتوجيه حركة الجهاز أو أجزاء منها عبرها. (Android Developers)

لذلك بعض عملاء Shadowsocks على الهاتف قد يقدمون تجربة تبدو أقرب إلى VPN على مستوى الجهاز.

لكن بالنسبة لي، هذا لا يغير السؤال الأساسي.

لا أريد أن أحفظ أسماء أوضاع التوجيه.

أريد أن أعرف:

هل التطبيق الذي أستخدمه يلتقط حركة التطبيقات التي أحتاجها؟

إذا نعم، ممتاز.

إذا لا، فنجاح موقع واحد لا يكفي.

وهذا بالضبط ما اختبرته بعد ذلك على الكمبيوتر بدل الاستمرار في قراءة الإعدادات.


اختبرت المهمة بدل الأيقونة

تركت إعداد Shadowsocks يعمل.

فتحت المتصفح.

نجح.

فتحت تطبيق المراسلة الذي ضبطته يدويًا.

نجح.

فتحت برنامج المزامنة.

لم يصل بالطريقة التي أحتاجها.

ثم فتحت تطبيق المكالمة.

لم أحصل على الجلسة الجاهزة التي كنت أريدها.

وهنا أصبح التشخيص كافيًا.

Shadowsocks لم يكن عديم الفائدة.

بالعكس، فتح الخدمة التي أرسلتها عبره بنجاح.

لكنني كنت أحتاج شيئًا آخر:

اتصالًا واحدًا يجعل تطبيقات المهمة تتحرك معًا من دون إعداد كل برنامج على حدة.

وهذا هو السبب الذي جعلني أجرب التطبيق الأصغر.

هذه المرة لم أضبط Proxy لأي برنامج

أوقفت إعدادات الـproxy اليدوية التي كنت أختبرها.

فتحت التطبيق الأصغر.

اخترت إعداد الشبكة المقيدة.

ضغطت اتصال.

ثم بدأت من المهمة نفسها.

فتحت المتصفح.

ظهرت الصفحة.

فتحت تطبيق المراسلة.

اتصل.

شغلت برنامج المزامنة.

ظهر Online.

فتحت رابط الاجتماع في تطبيقه.

دخلت.

اشتغل الصوت.

ثم رفعت الملف الذي كان متوقفًا قبل قليل.

اكتمل الرفع.

هذه كانت النتيجة التي كنت أبحث عنها منذ البداية.

لم يكن الفرق أن صفحة واحدة فتحت بطريقة أسرع.

الفرق أنني انتقلت من إدارة Proxy لكل تطبيق إلى إنجاز المهمة كلها من اتصال واحد.

وما لم أفعله كان أهم جزء

لم أفتح إعدادات المراسلة مرة أخرى.

لم أنسخ عنوان SOCKS5.

لم أراجع المنفذ.

ولم أختبر واحدًا واحدًا أي البرامج تحترم System Proxy.

شغلت الاتصال ثم استخدمت التطبيقات.

بالنسبة لي، هذه البساطة كانت الميزة الأساسية.

التطبيق الأصغر يستخدم نقلًا مبنيًا على HTTP/3 مع إخفاء إضافي للحركة، لكنني لم أحتج إلى تحويل ذلك إلى درس تقني.

الشيء الذي يهمني هو النتيجة:

على الشبكة نفسها، اتصلت التطبيقات التي كانت تشكل المهمة معًا.

هنا فهمت متى أريد Shadowsocks فعلًا

إذا كنت أريد توجيه متصفح محدد عبر Proxy، Shadowsocks مناسب جدًا.

إذا كنت أعرف إعداداتي وأريد تحكمًا يدويًا في البرامج التي تستخدم المسار، هذه المرونة مفيدة.

لكنني لم أكن في هذا السيناريو أبحث عن تحكم دقيق.

كان لدي اجتماع يقترب.

وأربع أدوات يجب أن تعمل.

لذلك أصبحت البساطة أهم من مرونة إعداد الـproxy.

بدل أن أسأل:

«هل أستطيع إجبار التطبيق التالي على استخدام SOCKS5 أيضًا؟»

أردت أن أصل مباشرة إلى:

«هل تعمل المهمة؟»


تجربة مستخدم واحدة كانت كافية لتأكيد الاحتكاك

في نقاش عام داخل مشروع Shadowsocks Android، ظهر النوع نفسه من المشكلة: المتصفح يستطيع العمل بينما يصبح توجيه تطبيقات أخرى هو الجزء الذي يحتاج إلى الانتباه. (Shadowsocks Android)

وهذا يكفي بالنسبة لي.

المغزى ليس أن Shadowsocks يفشل مع التطبيقات.

المغزى أن طريقة التقاط الحركة تعتمد على العميل والإعداد، لذلك لا أعتبر نجاح المتصفح دليلًا على تغطية الجهاز كله.

ومن هنا أصبحت أختبر التطبيق الثاني والثالث قبل أن أقول إن المشكلة انتهت.

ولا أحتاج إلى تحويل Shadowsocks إلى خصم

هذا مهم أيضًا.

Shadowsocks لديه تاريخ تقني طويل، ومجتمع كبير من المستخدمين الذين يعرفون بالضبط لماذا يريدون Proxy مرنًا وقابلًا للضبط.

أما التطبيق الأصغر فلديه مواقع جغرافية أقل وتاريخ عام أقصر من خدمات وأدوات أقدم.

لكن المقارنة لم تكن على حجم المجتمع أو عدد الإعدادات.

كنت أقارن طريقتين لإنجاز مهمة واحدة متعددة التطبيقات.

مع Shadowsocks، وصلت إلى المتصفح سريعًا ثم بدأت أضبط التطبيقات الأخرى.

مع التطبيق الأصغر، بدأت الاتصال ثم انتقلت مباشرة بين المتصفح والمراسلة والمزامنة والمكالمة.

في حالتي، هذا هو الفرق الذي حسم الاختيار.

كلمة «VPN» لم تعد هي المعيار أيضًا

كان من السهل أن أنتهي إلى قاعدة سطحية:

VPN يغطي كل شيء.

Proxy لا يغطي كل شيء.

لكن الأفضل بالنسبة لي هو اختبار النتيجة بدل الاعتماد على الاسم.

بعض التطبيقات والأنظمة تستطيع استخدام Shadowsocks بطريقة واسعة جدًا.

وبعض إعدادات VPN نفسها قد تستثني تطبيقات أو وجهات.

لذلك السؤال الذي أستخدمه الآن أبسط:

هل تمر التطبيقات التي تشكل مهمتي عبر الاتصال أم لا؟

لا أستطيع من خارج كل تطبيق رؤية جميع قرارات التوجيه الداخلية التي يتخذها العميل والنظام لكل تدفق.

ولهذا أختبر الشيء الذي أستطيع رؤيته.

المتصفح.

المراسلة.

الملف.

والمكالمة.

في النهاية، كنت أسأل Shadowsocks السؤال الخطأ

في البداية أردت إجابة نظرية:

هل Shadowsocks يشفر كل اتصال الجهاز مثل VPN؟

بعد التجربة، أصبحت الإجابة العملية أهم.

Shadowsocks يشفر الحركة التي تمر عبره، لكن مجرد نجاح الاتصال أو فتح المتصفح لا يثبت أن كل برامج الجهاز تستخدم المسار نفسه.

إذا كنت أريد Proxy مرنًا لتطبيقات أحددها، فهذا مفيد.

أما إذا كانت مهمتي موزعة بين عدة برامج ولا أريد إدارة كل واحد منها يدويًا، فأنا أفضل اتصالًا يجعل المهمة كلها تعمل من مكان واحد.

وهذا ما حدث مع التطبيق الأصغر:

الصفحة فتحت.

الرسالة وصلت.

المزامنة بدأت.

المكالمة اتصلت.

والملف اكتمل رفعه.

لم أكن أحتاج Proxy ناجحًا داخل المتصفح؛ كنت أحتاج طريقًا واحدًا يحمل يوم العمل كله من التطبيق الأول إلى الأخير.

أسئلة سريعة بعد التجربة

لماذا قد ينجح VPN أو Proxy داخل المتصفح بينما يبقى تطبيق آخر خارج الاتصال؟

لأن إضافة المتصفح أو الـProxy قد تغطي حركة المتصفح فقط. نجاح صفحة ويب لا يثبت أن النظام كله أو بقية التطبيقات تمر عبر المسار نفسه.

كيف أعرف نطاق الحماية الفعلي؟

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

متى تكون إضافة المتصفح كافية؟

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

ما السؤال الذي أطرحه قبل اختيار Proxy أو VPN؟

اسأل أين تنتهي المهمة: داخل صفحة ويب فقط أم في تطبيقات متعددة على الجهاز؟ الإجابة تحدد إن كنت تحتاج مسارًا للمتصفح أم نفقًا يغطي النظام كله.