GitHub, 2019 yılında OFAC'ın talebi üzerine İran'dan kullanıcıların erişimini engelledi - bu, yaptırımları denetleyen Amerikan düzenleyicisidir. O zamandan beri İranlı geliştiriciler aynı manzarayla karşılaşıyor: depolar erişilemez, push ve pull işlemleri geçmiyor ve hesap her an dondurulabilir. Ancak iş durmuyor - ekipler komit yapmaya, dağıtım yapmaya ve açık kaynak projelerine katılmaya devam ediyor. Bu yazıda, 2024-2025 yıllarında gerçekten neyin çalıştığını, GitHub için hangi proxy'lerin uygun olduğunu ve bunları hız kaybı olmadan nasıl doğru bir şekilde ayarlayacağımızı inceleyeceğiz.
Neden GitHub İran'ı engelliyor: yaptırımlar ve teknik uygulama
Temmuz 2019'da GitHub, İran, Kırım, Küba, Suriye ve Kuzey Kore'den kullanıcıların erişimini kısıtlamaya başladı. Sebep, ABD yaptırım yasaları çerçevesinde OFAC (Yabancı Varlıklar Kontrol Ofisi) talepleridir. 2018 yılından beri GitHub'a sahip olan Microsoft, bir Amerikan şirketi olarak bu kısıtlamalara uymak zorundadır.
Teknik olarak engelleme birkaç seviyede çalışmaktadır:
- IP üzerinden coğrafi engelleme: GitHub, IP adresine göre ülkeyi belirler ve İran IP aralığından gelen talepleri engeller (İranlı sağlayıcılara ait AS blokları).
- Hesapların dondurulması: İran IP'leri ile kaydedilen hesaplar veya profilinde İran belirtilen hesaplar read-only moda geçebilir veya tamamen dondurulabilir.
- Özel depoların engellenmesi: Kamuya açık depolar kısmen okunabilir, ancak özel olanlar tamamen kapalıdır.
- GitHub Actions ve Paketler için kısıtlamalar: CI/CD boru hatları ve paket kayıtları da engellenmiş bölgelerden erişilemez.
Buna rağmen GitHub, bu kısıtlamalara karşı olduğunu ve düzenleyicilerden gevşetmeler için lobi yaptığını defalarca belirtmiştir. 2019 yılında şirket, İranlı geliştiricilere kamuya açık depolara ücretsiz erişim sağlama izni almayı başardı, ancak engellemenin tamamen kaldırılması gerçekleşmedi.
⚠️ Önemli: Engelleme, yaptırımlar altında olan kuruluşlar ve hükümet yapıları için geçerlidir, bireysel geliştiriciler için değil. Çoğu İranlı programcı uluslararası ekiplerde çalışmakta ve kişisel olarak yaptırımlara tabi değildir - ancak teknik olarak sistem herkesin IP'si üzerinden engellenmektedir.
Bu nedenle sorunun çözümü IP adresini değiştirmekle ilgilidir - bu, coğrafi engellemeyi aşmanın tek teknik yoludur. Bunun için hangi araçların uygun olduğunu inceleyelim.
Gerçekten ne çalışıyor: proxy, VPN ve geçiş yolları
İranlı geliştiriciler birkaç yaklaşım kullanıyor. Her birinin artıları ve eksileri var - bunları dürüstçe inceleyelim, pazarlama yapmadan.
1. İkametgah proxy'leri
İkametgah proxy'leri, Almanya, Hollanda, ABD, Türkiye gibi diğer ülkelerdeki gerçek ev kullanıcılarının IP adreslerini kullanır. GitHub açısından bu talep, izin verilen bir ülkeden gelen sıradan bir kullanıcıdan gelen bir istek gibi görünmektedir. Bu, sürekli çalışma için en güvenilir seçenektir: proxy'nin engellenme riski minimum, yüksek stabilite.
Dezavantajı - hız, veri merkezi proxy'lerinden daha düşük ve maliyet daha yüksektir. Git işlemleri (push/pull/clone) için bu genellikle kritik değildir: depolar megabaytlar değil, gigabaytlar ağırlığındadır.
2. Veri merkezi proxy'leri
Veri merkezi proxy'leri daha hızlı çalışır ve daha ucuzdur. Büyük depoları klonlamak, artefaktları indirmek, GitHub API ile çalışmak için uygundur. Ancak veri merkezi IP'leri proxy olarak tanımlanması daha kolaydır - bazı aralıklar zaten GitHub'ın kara listesine alınmıştır. Avrupa lokasyonlarından veri merkezi proxy'leri kullanmanızı öneririz (DE, NL, FR) - bunlar filtrelere daha az takılır.
3. VPN
VPN, İranlı kullanıcılar arasında en popüler araçtır. Tüm işletim sistemi düzeyinde çalışır, her uygulamada ayrı ayrı ayar gerektirmez. Dezavantajları: birçok VPN sunucusu zaten GitHub tarafından engellenmiştir (özellikle popüler ücretsiz olanlar), hız istikrarsızdır ve bağlantı kesildiğinde trafik İran IP'si üzerinden sızabilir.
4. Tor
Tor teknik olarak çalışır, ancak GitHub Tor çıkış düğümlerini aktif olarak engellemektedir. Hız son derece düşüktür - küçük bir depoyu klonlamak saatler alabilir. Web arayüzüne ara sıra erişim için uygundur, düzenli geliştirme için değildir.
5. Diğer bir ülkedeki sunucu üzerinden SSH tünelleri
Avrupa veya ABD'de bir VPS'niz varsa, SSH tüneli üzerinden SOCKS5 proxy oluşturabilirsiniz. Bu teknik olarak güvenilirdir ve ücretsizdir (sunucu mevcutsa), ancak temel Linux bilgisi gerektirir. Ayarlama hakkında daha fazla bilgi - Git bölümünde.
Araçlar için sonuç:
GitHub ile günlük çalışma için en uygun kombinasyon: ikametgah veya veri merkezi proxy + Git'te konfigürasyon düzeyinde ayar. Bu, sistemin tüm trafiğini etkilemeden istikrar sağlar.
GitHub için hangi proxy türleri uygundur: karşılaştırmalı tablo
Tüm seçenekleri bir tabloda inceleyelim, böylece durumunuza uygun olanı kolayca seçebilirsiniz:
| Tür | Hız | Güvenilirlik | GitHub engelleme riski | En iyi için |
|---|---|---|---|---|
| İkametgah proxy'leri | Orta | Yüksek | Minimum | Günlük çalışma, push/pull, web arayüzü |
| Veri merkezi proxy'leri | Yüksek | Orta | Orta | Büyük depoları klonlama, GitHub API, CI/CD |
| Mobil proxy'ler | Orta | Çok yüksek | Çok düşük | Hesapla çalışma, eğer zaten şüpheli ise |
| VPN (ücretli) | Orta | Orta | Orta | Genel internet erişimi + GitHub |
| SSH tüneli (kendi VPS'iniz) | Yüksek | Yüksek | Düşük | Avrupa/ABD'de VPS olan geliştiriciler |
| Tor | Çok düşük | Düşük | Yüksek | Git ile çalışmak için önerilmez |
Hesabınız zaten uyarılar aldıysa veya geçici olarak dondurulduysa, mobil proxy'leri düşünmelisiniz - bunlar, GitHub'ın neredeyse hiç engellemediği mobil operatörlerin IP'lerini kullanır, çünkü bir mobil IP'nin arkasında binlerce kullanıcı bulunmaktadır.
Git, terminal ve IDE'de proxy nasıl ayarlanır: adım adım kılavuz
Proxy'yi tam olarak Git'te ayarlamanın ana avantajı (sistem düzeyinde veya VPN'de değil) - hangi trafiğin proxy üzerinden gittiğini kontrol etmenizdir. Yerel talepler doğrudan kalır, yalnızca GitHub trafiği dış IP üzerinden yönlendirilir.
HTTPS proxy ayarı Git'te (küresel)
Terminali açın ve aşağıdaki komutları çalıştırın, HOST ve PORT'u proxy'nizin bilgileriyle değiştirin:
# HTTP/HTTPS proxy için: git config --global http.proxy http://HOST:PORT # SOCKS5 proxy için (önerilir): git config --global http.proxy socks5://HOST:PORT # Eğer proxy kimlik doğrulaması varsa (kullanıcı adı + şifre): git config --global http.proxy socks5://USERNAME:PASSWORD@HOST:PORT # Sadece github.com için uygula (diğer depoları etkileme): git config --global http.https://github.com.proxy socks5://HOST:PORT
Son komut - en faydalı olanıdır: sadece github.com için proxy uygular, GitLab, Bitbucket veya şirketin iç depolarını etkilemez.
Ayarların kontrolü
# Git'teki mevcut proxy ayarlarını görüntüle: git config --global --list | grep proxy # Proxy üzerinden GitHub ile bağlantıyı test et: git ls-remote https://github.com/github/gitignore HEAD
Eğer ls-remote komutu bir commit hash'i döndürdüyse - proxy çalışıyor demektir. Eğer Connection refused veya Could not resolve host hatası alıyorsanız - HOST ve PORT'un doğruluğunu kontrol edin.
Proxy'yi devre dışı bırakma (gerekmediğinde)
# Küresel proxy'yi kaldır: git config --global --unset http.proxy # Sadece github.com için proxy'yi kaldır: git config --global --unset http.https://github.com.proxy
VS Code'da ayarlama
VS Code, yerleşik terminal ve uzantılar için sistem proxy ayarlarını kullanır. Terminal üzerinden Git'te proxy ayarladıysanız, VS Code'un yerleşik terminali bu ayarları otomatik olarak alacaktır. HTTP proxy'si için editörde (örneğin, uzantıları yüklemek için) açın:
File → Preferences → Settings → "proxy" araması → proxy adresini http.proxy alanına girin.
SSH tüneli üzerinden ayarlama (kendi VPS'iniz varsa)
Avrupa veya ABD'de bir VPS'niz varsa, tek bir komutla yerel bir SOCKS5 proxy oluşturabilirsiniz:
# SSH üzerinden yerel 1080 portunda SOCKS5 proxy oluştur: ssh -D 1080 -C -N user@your-vps-ip # Ardından Git'te bu yerel proxy'yi belirtin: git config --global http.proxy socks5://127.0.0.1:1080
-D 1080 bayrağı, 1080 portunda SOCKS5 proxy açar, -C sıkıştırmayı etkinleştirir, -N SSH'ye komut çalıştırmamasını söyler - sadece tüneli tutar.
SSH vs HTTPS: GitHub için proxy üzerinden hangisi daha iyi çalışıyor
Bu, en sık sorulan sorulardan biridir: GitHub ile proxy üzerinden çalışmak için hangi protokolü kullanmalıyız - SSH (port 22 veya 443) mi yoksa HTTPS (port 443) mi?
Proxy üzerinden HTTPS
HTTPS bağlantıları kolayca proxy üzerinden yönlendirilebilir - yukarıda incelediğimiz git config http.proxy komutları tam olarak HTTPS için çalışır. Dezavantajı: her push/pull işleminde Git, kullanıcı adı ve şifre (veya Kişisel Erişim Token'ı) ister. Çözüm - token'ı kimlik bilgisi deposunda saklamaktır:
# Token'ın sistem anahtar zincirinde saklanmasını etkinleştir: git config --global credential.helper store # İlk başarılı push'tan sonra token otomatik olarak saklanacaktır
Proxy üzerinden SSH (ProxyCommand)
SSH bağlantıları, standart http.proxy üzerinden proxy'ye yönlendirilemez - ~/.ssh/config dosyasında ayrı bir ayar gereklidir. Aşağıdaki bloğu ekleyin:
Host github.com
HostName ssh.github.com
User git
Port 443
ProxyCommand nc -X 5 -x HOST:PORT %h %p
Burada ssh.github.com:443, GitHub'ın 443 portunda çalışan özel bir SSH uç noktasıdır, bu da 22 portundaki engellemeleri aşmaya yardımcı olur. nc -X 5 SOCKS5 proxy kullanır.
SSH bağlantısını kontrol etmek için şu komutu kullanabilirsiniz:
ssh -T [email protected] # Beklenen cevap: Merhaba kullanıcı adı! Başarıyla kimlik doğrulaması yaptınız...
Tavsiye:
Çoğu geliştirici için HTTPS + SOCKS5 proxy ayarlamak daha kolaydır. ProxyCommand üzerinden SSH ayarlamak, netcat aracının kurulmasını ve biraz daha karmaşık bir yapılandırmayı gerektirir, ancak token girmeden SSH anahtarları ile çalışma kolaylığı sağlar.
Hesap için riskler ve bunları nasıl minimize edebiliriz
GitHub için proxy kullanmak sadece teknik bir görev değil, aynı zamanda hesap güvenliği meselesidir. Yanlış ayarlar, hesabın dikkat çekmesine veya yeni sorunlar yaratmasına neden olabilir.
Risk 1: Sürekli IP değişimi
Eğer döner proxy'ler kullanıyorsanız (IP her istekte veya birkaç dakikada bir değişiyorsa), GitHub şüpheli etkinlikleri kaydedebilir: bir hesap kısa bir süre içinde onlarca farklı IP'den giriş yapıyor. Bu, güvenlik kontrolü için bir tetikleyici ve potansiyel engelleme sebebidir.
Çözüm: Statik (sticky) proxy'ler veya uzun süreli oturum sürelerine sahip oturum proxy'leri (24 saatten fazla) kullanın. GitHub için döngü gerekmiyor - istikrar gerekiyor.
Risk 2: Engellenmiş veri merkezi IP'lerinin kullanımı
Bazı popüler barındırma hizmetlerinin (AWS, DigitalOcean, Vultr) IP aralıkları zaten kara listeye alınmış veya dikkat çekmektedir. GitHub bunları doğrudan engellemiyor, ancak ek doğrulama isteyebilir.
Çözüm: Avrupa veri merkezlerini (DE, NL, CH) seçin - bunlar daha az engel ile karşılaşır. Sürekli kullanım öncesinde IP'yi ipinfo.io veya scamalytics.com üzerinden kontrol edin.
Risk 3: Profilde İran verileri
Eğer GitHub profilinizde İran belirtilmişse (Location alanında), hesap IP'den bağımsız olarak kısıtlamalara daha fazla maruz kalabilir. Bu, kökeninizi gizlemeniz gerektiği anlamına gelmez - ancak bu ek bir faktör olduğunu anlamak önemlidir.
Risk 4: Kurumsal depolarla çalışma
Eğer GitHub'daki organizasyonunuz bir İran şirketi olarak kaydedilmişse veya İranlı yöneticilere sahipse, kısıtlamalar daha sert olabilir - tüm organizasyonun dondurulmasına kadar. Bu durumda, proxy kişisel hesap için yardımcı olur, ancak organizasyon düzeyinde sorunu çözmez.
Hesap zaten dondurulduysa ne yapmalıyız
GitHub, özel geliştiriciler için hesap dondurma sürecini resmi olarak sağlamaktadır. Durumu açıklayan bir e-posta yazın [email protected] adresine. E-postada belirtin:
- Bireysel bir geliştirici olduğunuzu, yaptırım altındaki kuruluşlarla bağlantınızın olmadığını
- Faaliyetinizin açık kaynak veya ticari yazılım geliştirme olduğunu
- Açık depolarınıza ve etkinliğinize bağlantılar
Topluluk deneyimlerine göre, GitHub çoğu bireysel geliştiricinin erişimini 1-4 hafta içinde geri yüklemektedir.
Kontrol listesi: proxy ayarlarını hızlı kontrol
Çalışmaya başlamadan önce her şeyin doğru ayarlandığından emin olmak için bu kontrol listesini kullanın:
✅ Ayarlamadan önce
- Proxy bilgilerini alın: HOST, PORT, tür (HTTP/SOCKS5), kullanıcı adı/şifre
- Proxy IP'sini
ipinfo.ioüzerinden kontrol edin - ülke İran olmamalıdır - IP'nin kara listede olmadığından emin olun:
scamalytics.comüzerinden kontrol edin - Sürekli çalışma için statik IP (döner olmayan) seçin
✅ Git ayarı
git config --global http.proxykomutu çalıştırıldı- Proxy sadece github.com için uygulandı (küresel değil) - eğer noktasal ayar gerekiyorsa
- Token'ı saklamak için credential.helper ayarlandı (HTTPS için)
- SSH için:
~/.ssh/configdosyasına ProxyCommand bloğu eklendi
✅ Çalışmanın kontrolü
git ls-remote https://github.com/github/gitignore HEADkomutu hash döndürüyorssh -T [email protected]komutu selamlıyor (SSH için)- Test deposuna push başarılı oldu
403 ForbiddenveyaRepository access blockedhatası yok
✅ Hesap güvenliği
- Statik IP kullanılıyor (döner olmayan)
- GitHub hesabında iki faktörlü kimlik doğrulama etkinleştirildi
- Kişisel Erişim Token'ı minimum gerekli izinlerle ayarlandı (sadece repo)
- Token'ın geçerlilik süresi var (süresiz değil)
Sonuç
GitHub'ın yaptırım kısıtlamaları, İranlı geliştiriciler için hoş olmayan bir gerçekliktir, ancak bir çıkmaz değildir. Teknik bir çözüm mevcuttur ve çalışmaktadır: yurtdışında bir IP ile proxy, doğru Git ayarları ile birleştirildiğinde tam kapsamlı bir geliştirme yapmanıza olanak tanır - commit'leri pushlamak, depoları klonlamak, GitHub Actions ile çalışmak ve açık kaynak projelerine katılmak.
Yazıdan ana çıkarımlar:
- Günlük çalışma için statik ikametgah veya veri merkezi proxy'leri Avrupa'dan seçin - döngü olmadan stabil bir IP.
- Proxy'yi Git config'te ayarlayın, sistem düzeyinde değil - bu, tüm trafiği etkilemeden noktasal kontrol sağlar.
- Eğer hesap zaten şüpheli ise - mobil IP'leri kullanın, bunlar neredeyse hiç engellenmez.
- Eğer hesap dondurulduysa - [email protected] adresine yazın, GitHub bireysel geliştiricilere erişimi geri yüklemektedir.
- SSH'yi 443 portu üzerinden kullanın (ssh.github.com) - bu, sağlayıcı düzeyindeki çoğu engellemeyi aşar.
Eğer GitHub ile sürekli çalışmak için güvenilir bir çözüm arıyorsanız, ikametgah proxy'lerini düşünmenizi öneririz - bunlar, izin verilen ülkelerden gerçek ev kullanıcılarının IP'lerini kullanır, sistem koruma dikkatini en az düzeye indirir ve Git işlemleri için stabil bir bağlantı sağlar. Yüksek yük gerektiren görevler (büyük depoları klonlama, CI/CD boru hatları) için iyi bir alternatif veri merkezi proxy'leridir - bunlar daha hızlıdır ve büyük veri hacimleri ile çalışırken daha ekonomiktir.
```