Roskomnadzor और Telegram एक प्रॉक्सी के माध्यम से बॉट करता है

एक महान संदेशवाहक के लिए सर्वश्रेष्ठ विज्ञापन के साथ आना असंभव है - "डाहरॉड ड्यूरोव रक्षा रखता है और अपने ग्राहकों की गोपनीयता के लिए खड़ा है, जैसा कि उनके जीवन के लिए है।" लेकिन इस पोस्ट का सार रूस में टेलीग्राम ब्लॉकिंग के मार्केटिंग घटक में नहीं है। यदि आपके टेलीग्राम बॉट ने काम करना बंद कर दिया है और आपको इस काम को तुरंत बहाल करने की आवश्यकता है, तो बिल्ली का स्वागत करें।


कल रात हम एक ऐसी समस्या में भाग गए जिससे टकराने की आशंका थी। हमारे ग्राहकों में से एक का एपीआई सर्वर हरोकू में स्थित था। कल, एक असंतुष्ट ग्राहक ने मुझे (टेलीग्राम में, निश्चित रूप से) लिखा था कि साइट पर जानकारी बेतरतीब ढंग से दिखाई देती है, फिर नहीं। पिंग को कम करने के लिए साइट को स्वयं (NodeJS पर एक आवेदन) पहले ही मॉस्को सर्वर पर स्थानांतरित कर दिया गया है।


समस्या का अध्ययन करने के आधे घंटे के बाद, एक सरल निष्कर्ष पर पहुंचा गया: रोजकोमनाडज़ोर ने हरोकू पतों के हिस्से को अवरुद्ध कर दिया। हरोकू सर्वर का रोटेशन डीएनएस स्तर पर होता है और डीएनएस कभी-कभी काम करने वाला आईपी देता है, कभी-कभी नहीं। वैसे, समस्या का कारण जानने के लिए काफी मुश्किल था - जब हमने डेवलपर्स के साथ परीक्षण किया - कोई समस्या नहीं थी। जब ग्राहक ने परीक्षण किया, वे थे। ग्राहक पहले से ही डेवलपर के महान वाक्यांश "मेरे कंप्यूटर पर सब कुछ काम करता है" का जवाब देने के लिए दिखाई दिया।


समाधान काफी सरल था - हमने एप्लिकेशन के एपीआई सर्वर को सेंट पीटर्सबर्ग क्लाइंट सर्वर में स्थानांतरित कर दिया और वहां इसे चुपचाप तैनात किया गया। टेलीग्राम के साथ एकीकरण को छोड़कर, सब कुछ पूरी तरह से काम करता है। चूंकि इस एकीकरण को छोड़ना संभव नहीं है, क्योंकि कोई योग्य विकल्प नहीं है, हम इस समस्या का हल ढूंढने लगे। देशी टेलीग्राम क्लाइंट के साथ सब कुछ सरल है - यह पहले से ही एक प्रॉक्सी सर्वर के साथ अंतर्निहित बातचीत करता है और इसके सेटअप में कुछ सेकंड लगते हैं। बॉट एपीआई के साथ, चीजें थोड़ी अलग हैं। टेलीग्राम बॉट की प्रत्येक क्रिया के लिए आवेदन https://api.telegram.org/ के साथ इंटरैक्ट करता है, और यह पता, निश्चित रूप से ILV द्वारा अवरुद्ध है।


समस्या के एक एक्सप्रेस समाधान के रूप में, यह तुरंत इस लॉक को बायपास करने के लिए क्लाइंट के एपीआई सर्वर को हमारे OpenVPN नेटवर्क से जोड़ने के लिए हुआ। निर्णय तुरंत अस्वीकार कर दिया गया था, जैसा कि प्रतिक्रिया की गति वांछित होने के लिए बहुत शेष है। Google और Yandex इस मुद्दे को हल करने पर मेरे साथ उपयोगी जानकारी साझा नहीं कर सके।


नतीजतन, एक सरल और स्पष्ट विचार दिमाग में आया - टेलीग्राम से कनेक्ट करने के लिए अपने दम पर सबसे सरल प्रॉक्सी सर्वर बढ़ाने के लिए। बेशक, हम रूसी संघ के बाहर सर्वर बढ़ाते हैं ताकि प्रॉक्सी काम कर रहा हो


नीचे nginx config है जो अब पूरी तरह से अपना काम कर रहा है


Nginx विन्यास

सर्वर {
80 सुनो;
server_name my-telegram -xy.server;
स्थान / {
प्रॉक्सी_सेट_हेडर एक्स-फ़ॉर्वर्ड-होस्ट $ होस्ट;
प्रॉक्सी_सेट_हाइडर एक्स-फ़ॉर्वर्ड-सर्वर $ होस्ट;
प्रॉक्सी_सेट_हाइडर एक्स-फॉरवर्डेड-फॉर $ प्रॉक्सी_एड_एक्स_फोवर्डवर्ड_फोर्स;
प्रॉक्सी_पास https://api.telegram.org/ ;
client_max_body_size 100M;
}
}


आवेदन में आगे, मैंने टेलीग्राम के साथ बातचीत करने के लिए यूआरएल बीओटी एपीआई को बदल दिया - इसके बजाय
https://api.telegram.org/bot
मैंने लिखा
http: //my-telegram-proxy.server/bot
और बॉट आपी के साथ एकीकरण सफलतापूर्वक अर्जित किया


अधिक सुविधा के लिए, मैंने इसके उपयोग के लिए विस्तृत निर्देशों के साथ एक डॉक कंटेनर बनाया। यह आपको सेकंड में एक कमांड के साथ अपने टेलीग्राम बॉट प्रॉक्सी को बढ़ाने की अनुमति देगा
https://hub.docker.com/r/zvinger/docker-proxy-rkn/builds/
कमांड उदाहरण:
docker run -d -p 8012:80 zvinger/docker-proxy-rkn
और http: // सर्वर पता निर्दिष्ट करें : आवेदन विन्यास में 8012 / । कमांड दर्ज करते समय आप किसी भी पोर्ट का चयन कर सकते हैं

Source: https://habr.com/ru/post/hi424427/


All Articles