GitHub ने 2019 में OFAC के अनुरोध पर ईरान के उपयोगकर्ताओं के लिए पहुंच को ब्लॉक कर दिया - जो अमेरिकी नियामक है जो प्रतिबंधों के अनुपालन की निगरानी करता है। तब से, ईरानी डेवलपर्स एक ही स्थिति का सामना कर रहे हैं: रिपॉजिटरी अनुपलब्ध हैं, पुश और पुल नहीं हो रहे हैं, और खाता किसी भी समय फ्रीज हो सकता है। इसके बावजूद काम नहीं रुकता - टीमें कमिट करना, डिप्लॉय करना और ओपन-सोर्स परियोजनाओं में भाग लेना जारी रखती हैं। इस लेख में, हम समझते हैं कि 2024-2025 में क्या वास्तव में काम करता है, GitHub के लिए कौन सी प्रॉक्सियां उपयुक्त हैं, और उन्हें बिना गति खोए कैसे सही तरीके से सेटअप करें।
GitHub ईरान को क्यों ब्लॉक करता है: प्रतिबंध और तकनीकी कार्यान्वयन
जुलाई 2019 में, GitHub ने ईरान, क्रीमिया, क्यूबा, सीरिया और उत्तर कोरिया के उपयोगकर्ताओं के लिए पहुंच को सीमित करना शुरू किया। कारण - अमेरिकी प्रतिबंध कानून के तहत OFAC (Office of Foreign Assets Control) की आवश्यकताएं। Microsoft, जो 2018 से GitHub का मालिक है, को अमेरिकी कंपनी के रूप में इन सीमाओं का पालन करना आवश्यक है।
तकनीकी रूप से, ब्लॉक कई स्तरों पर काम करता है:
- IP द्वारा भू-प्रतिबंध: GitHub IP पते के माध्यम से देश का निर्धारण करता है और ईरानी पते की रेंज (AS-ब्लॉक, जो ईरानी प्रदाताओं के स्वामित्व में हैं) से अनुरोधों को ब्लॉक करता है।
- खातों का फ्रीज होना: ईरानी IP से पंजीकृत खाते या प्रोफाइल में ईरान का उल्लेख करने वाले खाते read-only मोड में या पूरी तरह से फ्रीज किए जा सकते हैं।
- निजी रिपॉजिटरी का ब्लॉक होना: सार्वजनिक रिपॉजिटरी आंशिक रूप से पढ़ने के लिए उपलब्ध हैं, लेकिन निजी पूरी तरह से बंद हैं।
- GitHub क्रियाएँ और पैकेज पर प्रतिबंध: CI/CD पाइपलाइन और पैकेज रजिस्ट्री भी ब्लॉक किए गए क्षेत्रों से अनुपलब्ध हैं।
इसके बावजूद, GitHub ने बार-बार कहा है कि वह इन प्रतिबंधों के खिलाफ है और नियामकों के साथ छूट के लिए लॉबी कर रहा है। 2019 में, कंपनी ने ईरानी डेवलपर्स के लिए सार्वजनिक रिपॉजिटरी तक मुफ्त पहुंच प्रदान करने की अनुमति प्राप्त की, लेकिन पूर्ण रूप से ब्लॉक हटाने में कोई प्रगति नहीं हुई।
⚠️ समझना महत्वपूर्ण है: ब्लॉक उन संगठनों और सरकारी संरचनाओं के खिलाफ है जो प्रतिबंधों के अधीन हैं, न कि व्यक्तिगत डेवलपर्स के खिलाफ। अधिकांश ईरानी प्रोग्रामर अंतरराष्ट्रीय टीमों में काम करते हैं और व्यक्तिगत रूप से प्रतिबंधों के अधीन नहीं आते हैं - लेकिन तकनीकी रूप से सिस्टम सभी को IP द्वारा ब्लॉक करता है।
यही कारण है कि समस्या का समाधान IP पते को बदलने के क्षेत्र में है - यह भू-प्रतिबंध को तकनीकी रूप से बाईपास करने का एकमात्र तरीका है। आइए देखें कि इसके लिए कौन से उपकरण उपयुक्त हैं।
क्या वास्तव में काम करता है: प्रॉक्सी, VPN और बाईपास स्कीम
ईरानी डेवलपर्स कई दृष्टिकोणों का उपयोग करते हैं। प्रत्येक के अपने फायदे और नुकसान हैं - आइए हम उन्हें ईमानदारी से, बिना मार्केटिंग के समझते हैं।
1. रेजिडेंशियल प्रॉक्सी
रेजिडेंशियल प्रॉक्सी अन्य देशों - जर्मनी, नीदरलैंड, अमेरिका, तुर्की के घरेलू उपयोगकर्ताओं के वास्तविक IP पते का उपयोग करते हैं। GitHub के दृष्टिकोण से, ऐसा अनुरोध एक अनुमत देश के सामान्य उपयोगकर्ता के रूप में दिखाई देता है। यह निरंतर काम के लिए सबसे विश्वसनीय विकल्प है: प्रॉक्सी के खुद के ब्लॉक होने का न्यूनतम जोखिम, उच्च स्थिरता।
नकारात्मक पक्ष - गति डेटा सेंटर प्रॉक्सी की तुलना में कम है, और लागत अधिक है। Git ऑपरेशनों (पुश/पुल/क्लोन) के लिए, यह आमतौर पर महत्वपूर्ण नहीं है: रिपॉजिटरी मेगाबाइट में होती हैं, गीगाबाइट में नहीं।
2. डेटा सेंटर प्रॉक्सी
डेटा सेंटर से प्रॉक्सी तेजी से काम करते हैं और सस्ते होते हैं। ये बड़े रिपॉजिटरी को क्लोन करने, आर्टिफैक्ट डाउनलोड करने, GitHub API के साथ काम करने के लिए उपयुक्त हैं। हालाँकि, डेटा सेंटर के IP को प्रॉक्सी के रूप में पहचानना आसान होता है - कुछ रेंज पहले से ही GitHub की ब्लैकलिस्ट में हैं। हम यूरोपीय स्थानों (DE, NL, FR) से डेटा सेंटर प्रॉक्सी का उपयोग करने की सिफारिश करते हैं - ये फ़िल्टर में कम आते हैं।
3. VPN
VPN - ईरानी उपयोगकर्ताओं के बीच सबसे लोकप्रिय उपकरण है। यह पूरे ऑपरेटिंग सिस्टम के स्तर पर काम करता है, प्रत्येक एप्लिकेशन में अलग से सेटअप की आवश्यकता नहीं होती। नकारात्मक पक्ष: कई VPN सर्वर पहले से ही GitHub द्वारा ब्लॉक किए गए हैं (विशेष रूप से लोकप्रिय मुफ्त), गति अस्थिर है, और कनेक्शन टूटने पर ट्रैफ़िक ईरानी IP के माध्यम से लीक हो सकता है।
4. Tor
Tor तकनीकी रूप से काम करता है, लेकिन GitHub सक्रिय रूप से Tor के आउटपुट नोड्स को ब्लॉक करता है। गति अत्यंत कम है - एक छोटे रिपॉजिटरी को क्लोन करने में घंटों लग सकते हैं। वेब इंटरफ़ेस के लिए आकस्मिक पहुंच के लिए यह उपयुक्त है, लेकिन नियमित विकास के लिए नहीं।
5. SSH टनल एक अन्य देश के सर्वर के माध्यम से
यदि आपके पास यूरोप या अमेरिका में VPS है, तो आप SSH टनल के माध्यम से SOCKS5 प्रॉक्सी स्थापित कर सकते हैं। यह तकनीकी रूप से विश्वसनीय और मुफ्त है (यदि आपके पास सर्वर है), लेकिन Linux के बुनियादी ज्ञान की आवश्यकता होती है। सेटअप के बारे में अधिक जानकारी - Git अनुभाग में।
उपकरणों पर निष्कर्ष:
GitHub के साथ दैनिक काम के लिए, सबसे अच्छा संयोजन है: रेजिडेंशियल या डेटा सेंटर प्रॉक्सी + Git में कॉन्फ़िग स्तर पर सेटअप। यह प्रणाली के सभी ट्रैफ़िक पर प्रभाव डाले बिना स्थिरता प्रदान करता है।
GitHub के लिए कौन से प्रकार की प्रॉक्सी उपयुक्त हैं: तुलनात्मक तालिका
आइए सभी विकल्पों को एक तालिका में समझते हैं, ताकि आपकी स्थिति के अनुसार चयन करना आसान हो:
| प्रकार | गति | विश्वसनीयता | GitHub का ब्लॉक होने का जोखिम | के लिए सबसे अच्छा |
|---|---|---|---|---|
| रेजिडेंशियल प्रॉक्सी | मध्यम | उच्च | न्यूनतम | दैनिक काम, पुश/पुल, वेब इंटरफ़ेस |
| डेटा सेंटर प्रॉक्सी | उच्च | मध्यम | मध्यम | बड़े रिपॉजिटरी को क्लोन करना, GitHub API, CI/CD |
| मोबाइल प्रॉक्सी | मध्यम | बहुत उच्च | बहुत कम | खाते के साथ काम करना, यदि वह पहले से संदिग्ध है |
| VPN (पेड) | मध्यम | मध्यम | मध्यम | इंटरनेट तक सामान्य पहुंच + GitHub |
| SSH टनल (अपना VPS) | उच्च | उच्च | कम | डेवलपर्स जिनके पास यूरोप/अमेरिका में VPS है |
| Tor | बहुत कम | कम | उच्च | Git के साथ काम करने के लिए अनुशंसित नहीं |
यदि आपका खाता पहले ही चेतावनियाँ प्राप्त कर चुका है या अस्थायी रूप से फ्रीज हो चुका है, तो मोबाइल प्रॉक्सी पर विचार करें - वे मोबाइल ऑपरेटरों के IP का उपयोग करते हैं, जिन्हें GitHub लगभग कभी ब्लॉक नहीं करता, क्योंकि एक मोबाइल IP के पीछे हजारों उपयोगकर्ता होते हैं।
Git, टर्मिनल और IDE में प्रॉक्सी कैसे सेटअप करें: चरण-दर-चरण मार्गदर्शिका
Git में प्रॉक्सी सेटअप करने का मुख्य लाभ (सिस्टम स्तर या VPN पर नहीं) - आप नियंत्रित करते हैं कि कौन सा ट्रैफ़िक प्रॉक्सी के माध्यम से जाता है। स्थानीय अनुरोध सीधे रहते हैं, केवल GitHub ट्रैफ़िक बाहरी IP के माध्यम से रूट किया जाता है।
Git में HTTPS प्रॉक्सी सेटअप (वैश्विक)
टर्मिनल खोलें और निम्नलिखित कमांड चलाएँ, HOST और PORT को अपने प्रॉक्सी के डेटा से बदलें:
# HTTP/HTTPS प्रॉक्सी के लिए: git config --global http.proxy http://HOST:PORT # SOCKS5 प्रॉक्सी के लिए (अनुशंसित): git config --global http.proxy socks5://HOST:PORT # यदि प्रॉक्सी में प्रमाणीकरण है (लॉगिन + पासवर्ड): git config --global http.proxy socks5://USERNAME:PASSWORD@HOST:PORT # केवल github.com के लिए लागू करें (अन्य रिपॉजिटरी को न छुएं): git config --global http.https://github.com.proxy socks5://HOST:PORT
अंतिम कमांड सबसे उपयोगी है: यह प्रॉक्सी को केवल github.com के लिए अनुरोधों पर लागू करती है, GitLab, Bitbucket या कंपनी के आंतरिक रिपॉजिटरी को प्रभावित किए बिना।
सेटअप की जांच
# Git में वर्तमान प्रॉक्सी सेटिंग्स देखें: git config --global --list | grep proxy # प्रॉक्सी के माध्यम से GitHub के साथ कनेक्शन का परीक्षण करें: git ls-remote https://github.com/github/gitignore HEAD
यदि ls-remote कमांड ने कमिट का हैश लौटाया - प्रॉक्सी काम कर रही है। यदि त्रुटि Connection refused या Could not resolve host है - HOST और PORT की सहीता की जांच करें।
जब प्रॉक्सी की आवश्यकता न हो तो उसे बंद करें
# वैश्विक प्रॉक्सी हटाएं: git config --global --unset http.proxy # केवल github.com के लिए प्रॉक्सी हटाएं: git config --global --unset http.https://github.com.proxy
VS Code में सेटअप
VS Code встроित टर्मिनल और एक्सटेंशनों के लिए सिस्टम प्रॉक्सी सेटिंग्स का उपयोग करता है। यदि आपने टर्मिनल के माध्यम से Git में प्रॉक्सी सेटअप किया है, तो VS Code का встроित टर्मिनल स्वचालित रूप से इन सेटिंग्स को ले लेगा। HTTP प्रॉक्सी के लिए संपादक में (उदाहरण के लिए, एक्सटेंशनों को स्थापित करने के लिए) खोलें:
File → Preferences → Settings → "proxy" खोजें → प्रॉक्सी का पता http.proxy फ़ील्ड में निर्दिष्ट करें।
SSH टनल के माध्यम से सेटअप (यदि अपना VPS है)
यदि आपके पास यूरोप या अमेरिका में VPS है, तो आप SSH के माध्यम से एक स्थानीय SOCKS5 प्रॉक्सी एक ही कमांड से स्थापित कर सकते हैं:
# SSH के माध्यम से स्थानीय पोर्ट 1080 पर SOCKS5 प्रॉक्सी बनाएँ: ssh -D 1080 -C -N user@your-vps-ip # फिर Git में इस स्थानीय प्रॉक्सी को निर्दिष्ट करें: git config --global http.proxy socks5://127.0.0.1:1080
-D 1080 फ्लैग पोर्ट 1080 पर SOCKS5 प्रॉक्सी खोलता है, -C संपीड़न सक्षम करता है, -N SSH को कमांड न चलाने के लिए कहता है - केवल टनल बनाए रखना।
SSH बनाम HTTPS: प्रॉक्सी के माध्यम से GitHub के लिए क्या बेहतर काम करता है
यह सबसे सामान्य प्रश्नों में से एक है: GitHub के साथ प्रॉक्सी के माध्यम से काम करने के लिए कौन सा प्रोटोकॉल उपयोग करना है - SSH (पोर्ट 22 या 443) या HTTPS (पोर्ट 443)?
HTTPS के माध्यम से प्रॉक्सी
HTTPS कनेक्शन को प्रॉक्सी करना आसान है - git config http.proxy कमांड, जो हमने ऊपर समझी है, विशेष रूप से HTTPS के लिए काम करती है। नकारात्मक पक्ष: प्रत्येक पुश/पुल पर Git लॉगिन और पासवर्ड (या व्यक्तिगत एक्सेस टोकन) मांगता है। समाधान - टोकन को क्रेडेंशियल स्टोर में सहेजना:
# सिस्टम की कीचेन में टोकन को सहेजने के लिए सक्षम करें: git config --global credential.helper store # पहले सफल पुश के बाद टोकन स्वचालित रूप से सहेज लिया जाएगा
SSH के माध्यम से प्रॉक्सी (ProxyCommand)
SSH कनेक्शन को Git में मानक http.proxy के माध्यम से प्रॉक्सी नहीं किया जा सकता - इसके लिए ~/.ssh/config में अलग से सेटअप की आवश्यकता होती है। निम्नलिखित ब्लॉक जोड़ें:
Host github.com
HostName ssh.github.com
User git
Port 443
ProxyCommand nc -X 5 -x HOST:PORT %h %p
यहाँ ssh.github.com:443 GitHub का विशेष SSH एंडपॉइंट है, जो पोर्ट 443 (HTTPS) पर काम करता है, जो पोर्ट 22 पर ब्लॉक को बाईपास करने में मदद करता है। nc -X 5 SOCKS5 प्रॉक्सी का उपयोग करता है।
SSH कनेक्शन की जांच करने के लिए आप कमांड का उपयोग कर सकते हैं:
ssh -T [email protected] # अपेक्षित उत्तर: Hi username! You've successfully authenticated...
सिफारिश:
अधिकांश डेवलपर्स के लिए Git कॉन्फ़िग में HTTPS + SOCKS5 प्रॉक्सी सेटअप करना आसान है। ProxyCommand के माध्यम से SSH सेटअप करने के लिए netcat उपयोगिता की स्थापना और थोड़ी अधिक जटिल कॉन्फ़िगरेशन की आवश्यकता होती है, लेकिन यह टोकन के बिना SSH कुंजियों के साथ काम करने की सुविधा प्रदान करता है।
खाते के लिए जोखिम और उन्हें कैसे कम करें
GitHub के लिए प्रॉक्सी का उपयोग केवल एक तकनीकी कार्य नहीं है, बल्कि खाते की सुरक्षा का भी प्रश्न है। गलत सेटअप खाते पर ध्यान आकर्षित कर सकता है या नई समस्याएँ उत्पन्न कर सकता है।
जोखिम 1: IP का लगातार बदलना
यदि आप घूर्णन प्रॉक्सी का उपयोग कर रहे हैं (IP हर अनुरोध के साथ या हर कुछ मिनट में बदलता है), तो GitHub संदिग्ध गतिविधि को पकड़ सकता है: एक खाता कम समय में दर्जनों विभिन्न IP से लॉगिन करता है। यह सुरक्षा जांच और संभावित ब्लॉक के लिए ट्रिगर है।
समाधान: स्थिर (स्टिकी) प्रॉक्सी का उपयोग करें जिनका IP निश्चित है या सत्रीय प्रॉक्सी जिनका सत्र समय (24 घंटे से अधिक) लंबा है। GitHub के लिए रोटेशन की आवश्यकता नहीं है - स्थिरता की आवश्यकता है।
जोखिम 2: ब्लॉक किए गए डेटा सेंटर IP का उपयोग
कुछ लोकप्रिय होस्टिंग (AWS, DigitalOcean, Vultr) के IP रेंज पहले से ही ब्लैकलिस्ट में हैं या अतिरिक्त ध्यान आकर्षित करते हैं। GitHub उन्हें सीधे ब्लॉक नहीं करता, लेकिन अतिरिक्त सत्यापन का अनुरोध कर सकता है।
समाधान: यूरोपीय डेटा सेंटर (DE, NL, CH) चुनें - ये ब्लैकलिस्ट में कम आते हैं। स्थायी उपयोग से पहले IP की जांच करें ipinfo.io या scamalytics.com पर।
जोखिम 3: प्रोफाइल में ईरानी डेटा
यदि आपके GitHub प्रोफाइल में ईरान का उल्लेख है (स्थान फ़ील्ड में), तो खाता अधिक संभावना के साथ प्रतिबंधों के अधीन होगा, भले ही IP कुछ भी हो। इसका मतलब यह नहीं है कि आपको अपनी उत्पत्ति को छिपाना चाहिए - लेकिन यह समझना महत्वपूर्ण है कि यह एक अतिरिक्त कारक है।
जोखिम 4: संगठनात्मक रिपॉजिटरी के साथ काम करना
यदि आपकी संगठन GitHub पर एक ईरानी कंपनी के रूप में पंजीकृत है या इसमें ईरानी प्रशासक हैं, तो प्रतिबंध अधिक सख्त हो सकते हैं - यहां तक कि पूरे संगठन को फ्रीज करने तक। इस स्थिति में, प्रॉक्सी व्यक्तिगत खाते के लिए मदद करती है, लेकिन संगठन स्तर पर समस्या को हल नहीं करती है।
यदि खाता पहले से ही फ्रीज हो गया है तो क्या करें
GitHub व्यक्तिगत डेवलपर्स के लिए खाते को अनफ्रीज करने की आधिकारिक प्रक्रिया प्रदान करता है। स्थिति को स्पष्ट करते हुए [email protected] पर लिखें। पत्र में उल्लेख करें:
- आप एक व्यक्तिगत डेवलपर हैं, जो प्रतिबंधित संगठनों से संबंधित नहीं हैं
- आपकी गतिविधि - ओपन-सोर्स या व्यावसायिक सॉफ़्टवेयर विकास है
- आपके सार्वजनिक रिपॉजिटरी और गतिविधि के लिंक
समुदाय के अनुभव के अनुसार, GitHub अधिकांश व्यक्तिगत डेवलपर्स के लिए 1-4 सप्ताह के भीतर पहुंच बहाल करता है।
चेकलिस्ट: GitHub के लिए प्रॉक्सी सेटअप की त्वरित जांच
सुनिश्चित करने के लिए इस चेकलिस्ट का उपयोग करें कि सब कुछ सही तरीके से सेटअप किया गया है:
✅ सेटअप से पहले
- प्रॉक्सी डेटा प्राप्त करें: HOST, PORT, प्रकार (HTTP/SOCKS5), लॉगिन/पासवर्ड
- प्रॉक्सी का IP
ipinfo.ioपर जांचें - देश ईरान नहीं होना चाहिए - सुनिश्चित करें कि IP ब्लैकलिस्ट में नहीं है:
scamalytics.comपर जांचें - स्थायी काम के लिए स्थिर IP (घूर्णन नहीं) चुनें
✅ Git सेटअप
- कमांड
git config --global http.proxyचलाया गया है - प्रॉक्सी केवल github.com के लिए लागू किया गया है (वैश्विक नहीं) - यदि बिंदु सेटअप की आवश्यकता है
- टोकन को सहेजने के लिए credential.helper सेट किया गया है (HTTPS के लिए)
- SSH के लिए:
~/.ssh/configमें ProxyCommand के साथ ब्लॉक जोड़ा गया है
✅ काम की जांच
- कमांड
git ls-remote https://github.com/github/gitignore HEADहैश लौटाता है - कमांड
ssh -T [email protected]स्वागत लौटाता है (SSH के लिए) - परीक्षण रिपॉजिटरी में पुश सफल रहा
- कोई त्रुटियाँ नहीं हैं
403 ForbiddenयाRepository access blocked
✅ खाते की सुरक्षा
- स्थिर IP का उपयोग किया जा रहा है (घूर्णन नहीं)
- GitHub खाते पर दो-चरणीय प्रमाणीकरण सक्षम है
- व्यक्तिगत एक्सेस टोकन न्यूनतम आवश्यक अधिकारों के साथ सेट किया गया है (केवल repo)
- टोकन की अवधि है (अवधि रहित नहीं)
निष्कर्ष
GitHub के प्रतिबंधात्मक उपाय ईरानी डेवलपर्स के लिए एक अप्रिय वास्तविकता हैं, लेकिन यह एक अंत नहीं है। तकनीकी समाधान मौजूद है और काम करता है: विदेशी IP के साथ प्रॉक्सी और Git के सही सेटअप के साथ पूर्ण विकास करना संभव है - कमिट पुश करना, रिपॉजिटरी क्लोन करना, GitHub क्रियाओं के साथ काम करना और ओपन-सोर्स परियोजनाओं में भाग लेना।
लेख से मुख्य निष्कर्ष:
- दैनिक काम के लिए स्थिर रेजिडेंशियल या डेटा सेंटर प्रॉक्सी चुनें - बिना रोटेशन के स्थिर IP।
- Git कॉन्फ़िग में प्रॉक्सी सेट करें, न कि सिस्टम स्तर पर - यह सभी ट्रैफ़िक पर प्रभाव डाले बिना सटीक नियंत्रण देता है।
- यदि खाता पहले से ही संदिग्ध है - मोबाइल IP का उपयोग करें, वे लगभग कभी भी ब्लॉक नहीं होते हैं।
- यदि खाता फ्रीज हो गया है - [email protected] पर लिखें, GitHub व्यक्तिगत डेवलपर्स के लिए पहुंच बहाल करता है।
- पोर्ट 443 (ssh.github.com) के माध्यम से SSH का उपयोग करें - यह प्रदाता स्तर पर अधिकांश ब्लॉकों को बाईपास करता है।
यदि आप GitHub के साथ निरंतर काम के लिए एक विश्वसनीय समाधान खोज रहे हैं, तो रेजिडेंशियल प्रॉक्सी पर विचार करें - वे अनुमत देशों के घरेलू उपयोगकर्ताओं के वास्तविक IP का उपयोग करते हैं, सुरक्षा प्रणालियों का ध्यान आकर्षित करने की न्यूनतम संभावना होती है और Git ऑपरेशनों के लिए स्थिर कनेक्शन प्रदान करते हैं। उच्च लोड वाले कार्यों (बड़े रिपॉजिटरी को क्लोन करना, CI/CD पाइपलाइन) के लिए, डेटा सेंटर प्रॉक्सी एक अच्छा विकल्प होगा - ये तेजी से और बड़े डेटा वॉल्यूम के साथ काम करने में अधिक किफायती होते हैं।
```