وثائق Shadowsocks

تنسيق تكوين Shadowsocks

ملف التكوين

تأخذ Shadowsocks تكوينات تنسيق JSON:

{

    "الخادم": "my_server_ip" ،

    "server_port": 8388 ،

    "local_port": 1080 ،

    "كلمة المرور": "barfoo!" ،

    "الطريقة": "chacha20-ietf-poly1305 ″

}

تنسيق JSON

  • الخادم : اسم مضيفك أو خادم IP (IPv4 / IPv6).
  • server_port: رقم منفذ الخادم.
  • local_port: رقم المنفذ المحلي.
  • كلمة المرور: كلمة مرور تستخدم لتشفير النقل.
  • الطريقة: طريقة التشفير.

طريقة التشفير

نقوم بتكوين خوادمنا ونوصي باستخدام تشفير chacha20-ietf-poly1305 AEAD لأنه أقوى طريقة للتشفير. 

إذا قمت بتكوين خادم Shadowsocks الخاص بك ، فيمكنك الاختيار من بين "chacha20-ietf-poly1305" أو "aes-256-gcm".

URI و QR Code

تأخذ Shadowsocks لنظام Android / IOS أيضًا تكوينات تنسيق URI المشفر BASE64:

ss: // BASE64-ENCODED-STRING-WITHOUT-PADDING # TAG

 

يجب أن يكون URI العادي: ss: // method: password @ hostname: port

لا يتبع URI أعلاه RFC3986. يجب أن تكون كلمة المرور في هذه الحالة نصًا عاديًا وليست مشفرة بنسبة مئوية.



مثال: نحن نستخدم خادمًا على 192.168.100.1:8888 استخدام فرنك بلجيكي CFB طريقة التشفير وكلمة المرور اختبار/!@#:

 

ثم ، باستخدام URI العادي ss: // bf-cfb: test /! @ #: @ 192.168.100.1: 8888، يمكننا إنشاء URI المشفر BASE64: 

 

> console.log (“ss: //” + btoa (“bf-cfb: test /! @ #: @ 192.168.100.1:8888”))

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

للمساعدة في تنظيم وتحديد URIs ، يمكنك إلحاق علامة بعد سلسلة BASE64 المشفرة:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

معالجة

يستخدم Shadowsocks العناوين الموجودة في تنسيق عنوان SOCKS5:

[نوع 1 بايت] [مضيف متغير الطول] [منفذ 2 بايت]

 

فيما يلي أنواع العناوين المحددة:

  • 0x01: المضيف هو عنوان IPv4 من 4 بايت.
  • 0x03: المضيف عبارة عن سلسلة متغيرة الطول ، تبدأ بطول 1 بايت ، متبوعًا باسم مجال بحد أقصى 255 بايت.
  • 0x04: المضيف هو عنوان IPv16 من 6 بايت.

 

رقم المنفذ هو 2 بايت كبير النهاية عدد صحيح بدون إشارة.

TCP

يبدأ عميل ss-local اتصالاً بـ ss-remote عن طريق إرسال بيانات مشفرة تبدأ بالعنوان الهدف متبوعًا ببيانات الحمولة. سيكون التشفير مختلفًا اعتمادًا على التشفير المستخدم.

[عنوان الهدف] [الحمولة]

يتلقى جهاز التحكم عن بعد ss البيانات المشفرة ، ثم يفك تشفير العنوان الهدف ويوزعه. ثم يقوم بإنشاء اتصال TCP جديد إلى الهدف ويقوم بإعادة توجيه بيانات الحمولة إليه. يتلقى ss-remote ردًا من الهدف ثم يقوم بتشفير البيانات وإعادة توجيهها مرة أخرى إلى ss-local حتى يتم فصلها.

لأغراض التشويش ، يجب أن ترسل البيانات المحلية والبعيدة بيانات المصافحة مع بعض الحمولة في الحزمة الأولى.

UDP

يرسل ss-local حزمة البيانات المشفرة التي تحتوي على العنوان الهدف والحمولة إلى ss-remote.

[عنوان الهدف] [الحمولة]

بمجرد استلام الحزمة المشفرة ، يقوم SS-remote بفك تشفير العنوان الهدف وتحليله. ثم يرسل حزمة بيانات جديدة مع الحمولة إلى الهدف. يستقبل ss-remote حزم البيانات من الهدف ويرسل العنوان الهدف إلى الحمولة في كل حزمة. يتم إرسال النسخ المشفرة مرة أخرى إلى ss-local.

[عنوان الهدف] [الحمولة]

يمكن تلخيص هذه العملية إلى إجراء ss-remote لإجراء ترجمة عنوان الشبكة لـ ss-local.

ابدأ تجربتك المجانية لمدة 5 أيام