
वेबआरटीसी पर डेटा टनलिंग करके सेंसरशिप को बायपास करना
सरकारी व्हाइटलिस्ट सेंसरशिप को बायपास करने के लिए वीडियो कॉलिंग प्लेटफॉर्म (VK Call, Yandex Telemost, WB Stream) के माध्यम से इंटरनेट ट्रैफिक को टनल करता है।
चरण-दर-चरण सेटअप गाइड (रूसी में): docs/SETUP.md
दो टनल मोड उपलब्ध हैं: DC (DataChannel) और Video (VP8 डेटा एन्कोडिंग)। अनुशंसित सेटअप दोनों सिरों पर हेडलेस है - शुद्ध Go (Pion) सीधे प्लेटफॉर्म के SFU से बात करता है, कोई ब्राउज़र नहीं। ChaCha20 ऑब्फस्केशन, कॉन्फ़िगर करने योग्य VP8 पेसिंग, और LiveKit/WB Stream बैकएंड हेडलेस-केवल सुविधाएँ हैं।
एक लेगेसी ब्राउज़र पथ (Android WebView जॉइनर बनाम JS हुक्स वाले Electron डेस्कटॉप क्रिएटर के विरुद्ध) अभी भी VK DC के लिए काम करता है, लेकिन यह धीमा है, ऑब्फस्केट नहीं कर सकता, और इसे चरणबद्ध तरीके से हटाया जा रहा है। नई तैनातियों को हेडलेस का उपयोग करना चाहिए।
Pion पब्लिशर PC पर एक SCTP DataChannel खोलता है और उसके माध्यम से TCP/UDP को टनल करता है। फ्रेम किसी भी अन्य DataChannel पेलोड की तरह प्लेटफॉर्म के SFU से गुजरते हैं।
Joiner (censored, Android/iOS/Linux) Creator (free internet)
All apps
|
VpnService (captures all traffic)
|
tun2socks (IP -> TCP)
|
SOCKS5 proxy (Go, :1080)
|
Headless joiner (Pion) Headless creator (Pion)
| |
DataChannel <------- SFU -------> DataChannel
|
Relay bridge
|
Internet
DC मोड के समान पाइपलाइन, लेकिन टनल SCTP DataChannel के बजाय एक प्रकाशित VP8 वीडियो ट्रैक पर सवार होता है। उपयोगी है जब SFU DataChannels को रेट-लिमिट करता है लेकिन RTP को गुजरने देता है (जैसे Telemost), और कुछ मामलों में प्लेटफॉर्म-अनिवार्य (WB Stream का पब्लिशर ट्रैक हमेशा वीडियो होता है)। टनल फ्रेमिंग और उसके ऊपर की मल्टीप्लेक्स लेयर DC मोड के समान हैं।
ट्रैफिक प्लेटफॉर्म के SFU से गुजरता है, जो सरकारी व्हाइटलिस्ट पर है। DPI के लिए यह एक सामान्य वीडियो कॉल जैसा दिखता है।
relay/ - दोनों सिरों द्वारा साझा किया जाने वाला Go रिले: SOCKS5 प्रॉक्सी, tun2socks प्लंबिंग, DC/VP8 टनल, ChaCha20 ऑब्फस्केटर, कनेक्शन मल्टीप्लेक्सर, gomobile/iOS बाइंडिंगheadless/vk/ - हेडलेस VK क्रिएटर: VK HTTP API के माध्यम से कॉल बनाता या जॉइन करता है, Pion DC/VP8 टनल, कोई ब्राउज़र नहींheadless/telemost/ - समान मॉडल वाला हेडलेस Telemost (Yandex) क्रिएटरheadless/wbstream/ - हेडलेस WB Stream क्रिएटर (LiveKit-बैक्ड, अनाम गेस्ट टोकन)headless/dion/ - समान मॉडल वाला हेडलेस DION क्रिएटरheadless/bitrix/ - हेडलेस Bitrix क्रिएटर (अनुकूली DC/VP8, गेस्ट जॉइन)headless/wbstream-joiner/ - डेस्कटॉप WB Stream जॉइनर (क्रिएटर का समकक्ष, परीक्षणों और Linux क्लाइंट के लिए उपयोग किया जाता है)headless/telemost-joiner/ - डेस्कटॉप Telemost जॉइनर (क्रिएटर का समकक्ष, परीक्षणों और Linux क्लाइंट के लिए उपयोग किया जाता है)headless/dion-joiner/ - डेस्कटॉप DION जॉइनर (क्रिएटर का समकक्ष, परीक्षणों और Linux क्लाइंट के लिए उपयोग किया जाता है)headless/bitrix-joiner/ - डेस्कटॉप Bitrix जॉइनर (क्रिएटर का समकक्ष, परीक्षणों और Linux क्लाइंट के लिए उपयोग किया जाता है)headless/vk-bot/ - स्टैंडअलोन VK Long Poll बॉट जो मांग पर हेडलेस क्रिएटर स्पॉन करता है और जॉइन लिंक के साथ जवाब देता है (Electron बॉट का सर्वर-साइड विकल्प)headless/tests/ - लाइव एंड-टू-एंड परीक्षण (क्रिएटर + जॉइनर एक वास्तविक SFU पर); समान-होस्ट पर या Dockerized netns स्टैंड में चलाएँ, देखें headless/tests/README.mdandroid-app/ - Android जॉइनर: VpnService + tun2socks + हेडलेस Pion (प्राथमिक पथ); लेगेसी ब्राउज़र फ्लो के लिए एक WebView फ़ॉलबैक भी बनाए रखता हैios-proxy-app/ - iOS जॉइनर: gomobile xcframework के माध्यम से SOCKS5 + हेडलेस Pioncreator-app/ - Electron डेस्कटॉप क्रिएटर ऐप: GUI फ्रंट-एंड जो या तो लेगेसी ब्राउज़र पथ चला सकता है या हेडलेस Go बाइनरीज़ को स्पॉन कर सकता है; इंटरैक्टिव उपयोग और तैनाती दोनों के लिए उपयुक्तhooks/ - लेगेसी ब्राउज़र पथ के लिए JavaScript हुक्स (DC और Video मोड, VK और Telemost)। हेडलेस JS हुक्स का उपयोग नहीं करता।प्रीबिल्ट बाइनरीज़ GitHub Releases पर उपलब्ध हैं।
GitHub Releases से Electron ऐप डाउनलोड करें और चलाएँ। यह स्वचालित रूप से Go रिले को बंडल करता है।
महत्वपूर्ण: कॉल Creator ऐप के भीतर से बनाई जानी चाहिए। ऐप से किसी मौजूदा कॉल में जॉइन करना काम नहीं करेगा - कॉल शुरू होने के क्षण से JS हुक्स मौजूद होने चाहिए।
तीन रूप उपलब्ध हैं; जो भी डिवाइस के अनुकूल हो उसे चुनें:
whitelist-bypass.apk इंस्टॉल करें। पहली बार लॉन्च पर VPN प्रॉम्प्ट की अनुमति दें। जॉइन लिंक पेस्ट करें और GO पर टैप करें; सिस्टम-वाइड ट्रैफिक कॉल के माध्यम से प्रवाहित होता है।whitelist-bypass-proxy.ipa इंस्टॉल करें (AltStore / Sideloadly / अपने डेव अकाउंट के माध्यम से साइडलोड करें)। केवल एक स्थानीय SOCKS5 प्रॉक्सी उजागर करता है - कोई सिस्टम VPN नहीं। पूरे डिवाइस को प्रॉक्सी करने के लिए, किसी भी SOCKS5-सक्षम VPN ऐप (Shadowrocket, Streisand, ...) को ऐप द्वारा दिखाए गए SOCKS5 एंडपॉइंट पर इंगित करें; या प्रति-ऐप प्रॉक्सी सेट करें (Telegram में अंतर्निहित समर्थन है)।--socks-user / --socks-pass SOCKS5 उपयोगकर्ता नाम/पासवर्ड प्रमाणीकरण सक्षम करते हैं।
headless-wbstream-joiner --room <link> --socks-port 1080 [--socks-user u --socks-pass p]headless-telemost-joiner --tm-link <link> --socks-port 1080 [--socks-user u --socks-pass p]headless-dion-joiner --room <link> --socks-port 1080 [--socks-user u --socks-pass p]headless-bitrix-joiner --link <link> --socks-port 1080 [--socks-user u --socks-pass p]पूर्ण चरण-दर-चरण (रूसी) प्रत्येक प्लेटफॉर्म को विस्तार से कवर करता है: देखें docs/SETUP.md।
go install golang.org/x/mobile/cmd/gomobile@latest)go install golang.org/x/mobile/cmd/gobind@latest)# Full release build (Android APK + Creator app + Headless creators + Linux joiners + VK bot + iOS IPA on macOS)
./make-release.sh
# Individual builds
./build-go.sh # Go .aar, relay binary, headless creators
./copy-hooks.sh # Copy JS hooks to android assets
./build-app.sh # Android APK
./build-headless.sh # Headless binaries only (current platform)
./build-cli.sh # Per-arch zips of headless creators + joiners + vk-bot
./build-creator.sh # Creator Electron app (all platforms)
./build-ios.sh proxy # iOS proxy app, xcframework + unsigned IPA
./build-ios.sh vpn # iOS VPN app, xcframework + unsigned IPA
Xcode और macOS की आवश्यकता है। build-ios.sh एक तर्क लेता है, proxy या vpn।
./build-ios.sh proxy # ios-proxy-app -> prebuilts/whitelist-bypass-proxy.ipa
./build-ios.sh vpn # ios-vpn-app -> prebuilts/whitelist-bypass-vpn.ipa
स्क्रिप्ट ऐप डायरेक्टरी में Mobile.xcframework बनाती है, प्रोजेक्ट से डेवलपर टीम को साफ़ करने के लिए ऐप की strip-signing.sh चलाती है, ऐप को अहस्ताक्षरित बनाती है, और prebuilts/ में एक अहस्ताक्षरित IPA लिखती है।