
व्हाट्सएप पर इंटरनेट ट्रैफिक को टनल करना

यह Baileys पर आधारित कोड का एक टुकड़ा है जो आपको दो व्हॉट्सएप खातों के माध्यम से TCP डेटा को टनल करने देता है।
इसका उपयोग विभिन्न स्थितियों में किया जा सकता है, उदाहरण के लिए नेटवर्क कैरियर जो असीमित व्हॉट्सएप डेटा देते हैं या हवाई जहाजों पर जहां आपको असीमित सोशल नेटवर्क डेटा भी मिलता है।
यह Baileys का उपयोग करता है क्योंकि यह एक WS-आधारित मल्टी-डिवाइस व्हॉट्सएप लाइब्रेरी है और इसलिए भविष्य में एंड्रॉइड पर टर्मक्स का उपयोग करके भी इसका उपयोग किया जा सकता है।
विचार यह है कि इसे सर्वर पर एक प्रॉक्सी सेटअप के साथ इस प्रकार उपयोग किया जाए: [क्लाइंट (प्रतिबंधित पहुँच) -> व्हॉट्सएप -> सर्वर -> प्रॉक्सी -> इंटरनेट]
पहले से माफी चाहता हूँ क्योंकि जावास्क्रिप्ट मेरी प्राथमिक कोडिंग भाषाओं में से एक नहीं है :/
केवल शैक्षिक उद्देश्य के लिए उपयोग करें।
यह व्हॉट्सएप टेक्स्ट और फ़ाइल संदेशों के माध्यम से TCP नेटवर्क पैकेट भेजता है, अक्षरों की संख्या के आधार पर यह उन्हें विभिन्न टेक्स्ट संदेशों या फ़ाइलों में विभाजित करता है।
WhatsApp द्वारा टाइम आउट न होने के लिए डिफ़ॉल्ट रूप से यह प्रति संदेश 20k अक्षरों तक सीमित है, फिलहाल यह wasocket.js में हार्डकोडेड है। मैंने कई परीक्षण किए हैं और इससे नीचे कुछ भी आपको बहुत अधिक संदेश भेजने के लिए प्रतिबंधित कर सकता है और 80k से ऊपर कुछ भी टाइम आउट हो सकता है।
यदि कोई नेटवर्क पैकेट डिफ़ॉल्ट सीमा (20k अक्षर) से अधिक है, तो इसे फ़ाइल के रूप में भेजा जाएगा यदि सक्षम हो। इसके अलावा यदि एकाधिक नेटवर्क पैकेट कैश किए गए हैं तो यह समान मानदंड का उपयोग करेगा।
फ़ाइल संदेश बाइनरी फ़ाइलों के रूप में भेजे जाते हैं, 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 फ़्लैग का उपयोग करें।
यह विचार मुझे दक्षिण अमेरिका की यात्रा करते समय आया, नेटवर्क डेटा कैरियर पर आमतौर पर कुछ GB तक सीमित होता है, लेकिन व्हॉट्सएप आमतौर पर असीमित होता है, मैंने इस लाइब्रेरी को बनाने की कोशिश की क्योंकि मुझे उस तारीख तक कोई उपयोगी नहीं मिला।
आपके पास दो व्हॉट्सएप खातों तक पहुंच होनी चाहिए, एक सर्वर के लिए और एक क्लाइंट के लिए। आप स्थानीय पोर्ट को फ़ॉरवर्ड कर सकते हैं या बाहरी प्रॉक्सी का उपयोग कर सकते हैं।
अपने सर्वर पर रिपॉजिटरी क्लोन करें और नोड निर्भरताएँ स्थापित करें।
cd path/to/wa-tunnelnpm installफिर आप निम्नलिखित कमांड के साथ सर्वर प्रारंभ कर सकते हैं जहाँ port प्रॉक्सी पोर्ट है और host प्रॉक्सी होस्ट है जिसे आप फ़ॉरवर्ड करना चाहते हैं। और number क्लाइंट का WhatsApp नंबर है जिसमें देश कोड सहित और बिना + के।
npm run server host port number
आप एक स्थानीय प्रॉक्सी सर्वर का उपयोग इस प्रकार कर सकते हैं:
npm run server localhost 3128 12345678901
या आप एक सामान्य प्रॉक्सी सर्वर का उपयोग इस प्रकार कर सकते हैं:
npm run server 192.168.0.1 3128 12345678901
अपने सर्वर पर रिपॉजिटरी क्लोन करें और नोड निर्भरताएँ स्थापित करें।
cd path/to/wa-tunnelnpm installफिर आप निम्नलिखित कमांड के साथ सर्वर प्रारंभ कर सकते हैं जहाँ port स्थानीय पोर्ट है जहाँ आप कनेक्ट होंगे और number सर्वर का WhatsApp नंबर है जिसमें देश कोड सहित और बिना + के।
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
इसका परीक्षण सामान्य ब्राउज़र जैसे फ़ायरफ़ॉक्स के साथ भी किया गया है, यह धीमा है लेकिन उपयोग किया जा सकता है।
आप 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
इस लाइब्रेरी का उपयोग करने से आपका व्हॉट्सएप खाता प्रतिबंधित हो सकता है, एक अस्थायी नंबर के साथ या अपने जोखिम पर उपयोग करें।