
نفق حركة مرور الإنترنت عبر واتساب

هذا جزء من الكود مبني على Baileys يسمح لك بنفق بيانات TCP عبر حسابين في واتساب.
يمكن استخدامه في حالات مختلفة، على سبيل المثال شركات الاتصالات التي تقدم بيانات واتساب غير محدودة أو في الطائرات حيث تحصل أيضًا على بيانات وسائل التواصل الاجتماعي غير محدودة.
يستخدم Baileys لأنه مكتبة واتساب متعددة الأجهزة قائمة على WebSocket، وبالتالي يمكن استخدامها على أندرويد في المستقبل، باستخدام Termux على سبيل المثال.
الفكرة هي استخدامه مع إعداد وكيل على الخادم مثل: [العميل (وصول مقيد) -> واتساب -> الخادم -> الوكيل -> الإنترنت]
أعتذر مقدمًا لأن لغة JavaScript ليست إحدى لغات البرمجة الأساسية لدي :/
استخدم فقط للأغراض التعليمية.
يرسل حزم شبكة TCP عبر رسائل النص والملفات في واتساب، اعتمادًا على عدد الأحرف يقوم بتقسيمها إلى رسائل نصية أو ملفات مختلفة.
لتجنب حدوث مهلة من واتساب بشكل افتراضي، يكون الحد الأقصى 20 ألف حرف لكل رسالة، حاليًا هذا مضمن بشكل ثابت في wasocket.js. لقد أجريت عدة اختبارات وأي شيء أقل من ذلك قد يؤدي إلى حظر حسابك بسبب إرسال عدد كبير جدًا من الرسائل، وأي شيء أعلى من 80 ألف قد يؤدي إلى انتهاء المهلة.
إذا كانت حزمة الشبكة تتجاوز الحد (20 ألف حرف افتراضيًا) فسيتم إرسالها كملف إذا كان ذلك ممكنًا. أيضًا إذا تم تخزين عدة حزم شبكة مؤقتًا، فسيتم استخدام نفس المعايير.
يتم إرسال رسائل الملفات كملفات ثنائية، ويتم ضم استجابات TCP باستخدام محدد وضغطها باستخدام brotli لتقليل استخدام البيانات.
يقوم بتخزين استجابات مأخذ TCP مؤقتًا لتجميعها وإرسال أقصى كمية من البيانات في رسالة واحدة، وبالتالي تقليل عدد الرسائل وتحسين السرعة وتقليل احتمال الحظر.
قبل: (بدون ملفات وبدون تخزين مؤقت للاستجابات)
curl -x localhost:12345 https://www.youtube.com
- 50-80 رسالة
- 30-40 ثانية
بعد: (مع الملفات والتخزين المؤقت للاستجابات)
curl -x localhost:12345 https://www.youtube.com
- 6-8 رسائل
- 7-15 ثانية
في حالة عدم السماح لك بإرسال الملفات، استخدم العلم --disable-files عند بدء تشغيل الخادم والعميل لتعطيل هذه الوظيفة.
جاءتني الفكرة أثناء السفر عبر أمريكا الجنوبية، حيث تكون بيانات الشبكة على شركات الاتصالات محدودة عادة بعدد قليل من الجيجابايت ولكن واتساب عادة ما يكون غير محدود، حاولت إنشاء هذه المكتبة لأنني لم أجد أي مكتبة قابلة للاستخدام في ذلك التاريخ.
يجب أن يكون لديك إمكانية الوصول إلى حسابين في واتساب، واحد للخادم والآخر للعميل. يمكنك توجيه منفذ محلي أو استخدام وكيل خارجي.
استنسخ المستودع على الخادم الخاص بك وقم بتثبيت تبعيات node.
cd path/to/wa-tunnelnpm installثم يمكنك بدء تشغيل الخادم بالأمر التالي حيث port هو منفذ الوكيل و host هو مضيف الوكيل الذي تريد توجيهه. و number هو رقم واتساب العميل مع رمز البلد معًا وبدون +.
npm run server host port number
يمكنك استخدام خادم وكيل محلي كما يلي:
npm run server localhost 3128 12345678901
أو يمكنك استخدام خادم وكيل عادي كما يلي:
npm run server 192.168.0.1 3128 12345678901
استنسخ المستودع على الخادم الخاص بك وقم بتثبيت تبعيات node.
cd path/to/wa-tunnelnpm installثم يمكنك بدء تشغيل العميل بالأمر التالي حيث port هو المنفذ المحلي الذي ستتصل به و number هو رقم واتساب الخادم مع رمز البلد معًا وبدون +.
npm run client port number
على سبيل المثال
npm run client 8080 1234567890
في المرة الأولى التي تشغل فيها السكريبت، سيطلب منك Baileys مسح رمز QR باستخدام تطبيق واتساب، بعد ذلك يتم حفظ الجلسة للاستخدام لاحقًا.
قد يتعطل، هذا طبيعي بعد ذلك فقط أعد تشغيل السكريبت وسيكون لديك الخادم/العميل جاهزًا!
بمجرد أن يصبح كل من العميل والخادم جاهزين، يمكنك الاختبار باستخدام curl ومشاهدة السحر يحدث.
curl -v -x proxyHost:proxyPort https://httpbin.org/ip
مع الأوامر المثال سيكون:
curl -v -x localhost:8080 https://httpbin.org/ip
تم اختباره أيضًا مع متصفح عادي مثل Firefox، إنه بطيء ولكن يمكن استخدامه.
يمكنك أيضًا توجيه منافذ بروتوكولات أخرى مثل SSH عن طريق إعداد الخادم هكذا:
npm run server localhost 22 12345678901
ثم الاتصال بالخادم باستخدام في العميل:
ssh root@localhost -p 8080
لاستخدامه على أندرويد، يمكنك استخدامه مع Termux باستخدام الأوامر التالية:
pkg update && pkg upgrade
pkg install git nodejs -y
git clone https://github.com/aleixrodriala/wa-tunnel.git
cd wa-tunnel
npm install
قد يؤدي استخدام هذه المكتبة إلى حظر حساب واتساب الخاص بك، استخدم برقم مؤقت أو على مسؤوليتك الخاصة.