إعدادات Shadowsocks-over-WebSocket

الإصدار 1.15.0 من تطبيق "عميل Outline" والإصدارات الأحدث

يقدِّم هذا الدليل التوجيهي جولة تفصيلية لتوضيح كيفية تطبيق إعدادات Shadowsocks-over-WebSocket، وهي تقنية فعّالة لتفادي الرقابة في البيئات التي يتم فيها حظر اتصالات Shadowsocks. ومن خلال تغليف زيارات بروتوكولات Shadowsocks ببروتوكولات WebSocket، يمكنك إخفاء هذه الزيارات كأنّها زيارات عادية لمواقع ويب ، ما يعزِّز المرونة وتسهيل الاستخدام.

الخطوة 1: ضبط خادم Outline وتشغيله

عليك إنشاء ملف config.yaml جديد بالإعدادات التالية:

web:
  servers:
    - id: server1
      listen:
        - "127.0.0.1:WEB_SERVER_PORT"

services:
  - listeners:
      - type: websocket-stream
        web_server: server1
        path: "/TCP_PATH"
      - type: websocket-packet
        web_server: server1
        path: "/UDP_PATH"
    keys:
      - id: 1
        cipher: chacha20-ietf-poly1305
        secret: SHADOWSOCKS_SECRET

يجب تنزيل وتشغيل outline-ss-server الأحدث باستخدام الإعدادات التي تم إنشاؤها:

outline-ss-server -config=config.yaml

الخطوة 2: السماح بالوصول إلى خادم الويب

لجعل خادم ويب WebSocket متاحًا للجميع، يجب السماح بالوصول إليه على الإنترنت وضبط بروتوكول أمان طبقة النقل (TLS). ولديك عدة خيارات لتنفيذ هذا الإجراء، منها استخدام خادم ويب محلي مثل Caddy أو nginx أو Apache مع التأكّد من توفُّر شهادة بروتوكول TLS سارية، أو استخدام خدمة اتصال نفَقي مثل Cloudflare Tunnel أو ngrok.

مثال على استخدام خدمة TryCloudflare

في هذا المثال، سنستخدم خدمة TryCloudflare في إنشاء اتصال نفَقي سريع. ويوفِّر هذا طريقة سهلة وآمنة للسماح بالوصول إلى خادم الويب المحلي بدون فتح منافذ على الشبكة للاتصالات الواردة.

  1. يجب تنزيل وتثبيت cloudflared.

  2. عليك إنشاء اتصال نفَقي يشير إلى منفذ خادم الويب المحلي:

    cloudflared tunnel --url http://127.0.0.1:WEB_SERVER_PORT
    

سيقدّم Cloudflare نطاقًا فرعيًا (مثل: acids-iceland-davidson-lb.trycloudflare.com) للوصول إلى نقطة نهاية بروتوكول WebSocket والتعامل تلقائيًا مع بروتوكول TLS. يُرجى الاحتفاظ بهذا النطاق الفرعي؛ لأنّك ستحتاجه بعد ذلك.

الخطوة 3: إنشاء مفتاح وصول ديناميكي

عليك إنشاء ملف YAML يتضمّن مفتاح وصول يمكن استخدامه في تطبيق "عميل Outline" للمستخدمين باستخدام تنسيق إعدادات مفاتيح الوصول، ثمّ تضمين نقاط نهاية WebSocket التي تم ضبطها سابقًا في جهة الخادم:

transport:
  $type: tcpudp

  tcp:
    $type: shadowsocks

    endpoint:
      $type: websocket
      url: wss://DOMAIN/TCP_PATH
    cipher: chacha20-ietf-poly1305
    secret: SHADOWSOCKS_SECRET

  udp:
    $type: shadowsocks

    endpoint:
      $type: websocket
      url: wss://DOMAIN/UDP_PATH
    cipher: chacha20-ietf-poly1305
    secret: SHADOWSOCKS_SECRET

بعد إنشاء ملف YAML الذي يتضمّن مفتاح الوصول الديناميكي، يجب نشره للمستخدمين. ويمكنك استضافة الملف على خدمة استضافة ويب ثابتة أو إنشاؤه بشكل ديناميكي. مزيد من المعلومات حول كيفية استخدام مفاتيح الوصول الديناميكية

الخطوة 4: الربط بتطبيق "عميل Outline"

يجب استخدام أحد تطبيقات عميل Outline الرسمية (الإصدار 1.15.0 والإصدارات الأحدث) ثم إضافة مفتاح الوصول الديناميكي المُنشأ حديثًا ليعمل كإدخال للخادم. عليك النقر على ربط لبدء الاتصال النفَقي بخادمك باستخدام الإعداد Shadowsocks-over-Websocket.

يمكنك استخدام أداة مثل IPInfo للتأكّد من أنّه يتم حاليًا تصفُّح الإنترنت من خلال خادم Outline الخاص بك.