İranlı geliştiriciler düzenli olarak sert kısıtlamalarla karşılaşıyor: GitHub hesapları engelleniyor, npm paketleri yüklenemiyor, PyPI bağlantı hatası veriyor. Tüm bunlar, bir ülkenin temel geliştirme altyapısından kesilmesine neden olan yaptırımların sonuçlarıdır. Eğer İran'dan çalışıyorsanız veya İranlı uzmanlar işe alıyorsanız, bu makale size somut bir çözüm sunacak — gereksiz ayrıntılardan ve teorilerden uzak.
Neler engelleniyor ve neden
ABD'nin İran'a karşı uyguladığı yaptırımlar sadece finansal işlemlerle sınırlı değil — teknoloji hizmetlerini de kapsıyor. ABD yargı yetkisine tabi olan şirketler (bu, modern geliştirme yığınlarının neredeyse tamamını kapsıyor) yaptırım uygulanan ülkelerden gelen kullanıcılara erişimi kısıtlamak zorundadır. Sonuç olarak, İranlı geliştiriciler aşağıdaki sorunlarla karşılaşıyor:
- GitHub — hesapları engelliyor, depolar erişilemez hale geliyor, Actions çalışmıyor, Copilot çalışmıyor.
- npm (npmjs.com) —
npm installile paket yüklemeye çalışırken bağlantı hataları veya açık erişim reddi alınıyor. - PyPI (pypi.org) —
pip installtakılıyor veya 403 hatası veriyor. - Docker Hub — görüntü çekme engellendi.
- Cloudflare, AWS, Azure, Google Cloud — bazı hizmetler erişilemez veya kararsız çalışıyor.
- Stack Overflow, JetBrains, VS Code Marketplace — IP düzeyinde periyodik engellemeler.
Engelleme, IP adresi düzeyinde gerçekleşiyor: eğer IP'niz İranlı bir sağlayıcıya aitse (AS numaraları IRANCELL, Shatel, MCI ve diğerleri), istek otomatik olarak hesabın kontrol edilmesinden önce reddediliyor. Bu nedenle, başka bir ülkeden IP ile VPN veya proxy kullanmak, bir geçiş manevrası değil, geliştirme altyapısına erişmenin tek çalışır yolu.
Önemli:
Proxy ve VPN farklı seviyelerde sorunu çözer. VPN, sistemin tüm trafiğini yönlendirir — bu tarayıcı için kullanışlıdır, ancak komut satırı araçları (git, npm, pip) için noktasal ayar gerektirir. Proxy, yaptırımları yalnızca belirli bir araç için aşmayı sağlar, diğer trafiği etkilemeden.
Hangi proxy türü geliştirme için uygundur
Geliştirici görevleri için — depolarla çalışma, paket yükleme, CI/CD — bağlantı kararlılığı, hız ve IP'nin temizliği önemlidir. Üç ana proxy türünü ve bunların belirli senaryolara nasıl uyduğunu inceleyelim.
Konut Proxy'leri
Konut proxy'leri, farklı ülkelerden gerçek ev kullanıcılarının IP adreslerini kullanır. GitHub için bu kritik öneme sahiptir: platform, yalnızca IP'nin coğrafi konumunu değil, aynı zamanda itibarını da analiz eder. Veri merkezinden gelen bir IP şüphe uyandırırken, evdeki bir Amerikan veya Avrupa IP'si sıradan bir kullanıcı olarak algılanır. Konut proxy'leri, GitHub hesaplarıyla sürekli çalışmak için en güvenilir seçenektir.
Veri Merkezi Proxy'leri
Veri merkezi proxy'leri hızlı ve ucuzdur. npm ve pip ile paket yüklemek için iyi bir seçenektir: PyPI ve npmjs.com, IP'nin itibarını GitHub kadar sıkı kontrol etmez. Eğer CI/CD hattında bağımlılıkları yalnızca indirmek istiyorsanız, veri merkezi proxy'si bu görevi yerine getirir ve daha ucuzdur.
Mobil Proxy'ler
Mobil proxy'ler, mobil operatörlerin IP'lerini (4G/5G) kullanır. Bu, dolandırıcılık önleme sistemleri açısından en "temiz" IP türüdür: bir mobil IP'nin arkasında aynı anda binlerce gerçek kullanıcı bulunur, bu nedenle onu engellemek kârlı değildir. Mobil proxy'ler, GitHub hesabınızın engellenmesiyle ilgili sorunlar yaşadıysanız ve yeniden engellenme riskini en aza indirmek istiyorsanız geçerlidir.
GitHub için proxy ayarları
GitHub, depolarla çalışmak için iki protokol kullanır: HTTPS ve SSH. Her biri için proxy ayarları farklı şekilde yapılır. Her iki seçeneği de inceleyelim.
HTTPS üzerinden git için proxy
Bu, GitHub ile çalışmanın en yaygın yoludur. Ayarlar git yapılandırması aracılığıyla yapılır. Terminali açın ve şu komutları çalıştırın:
# git için HTTP proxy ayarları (host, port, user, password bilgilerinizi değiştirin) git config --global http.proxy http://user:password@proxy-host:port git config --global https.proxy http://user:password@proxy-host:port # Ayarları kontrol etme git config --global --get http.proxy # Eğer proxy kimlik doğrulaması yoksa: git config --global http.proxy http://proxy-host:port
Bu ayardan sonra tüm git clone, git push, git pull komutları proxy üzerinden gidecektir. Eğer proxy'yi yalnızca GitHub için ayarlamak istiyorsanız, tüm depolar için değil:
# yalnızca github.com için proxy git config --global http.https://github.com.proxy http://user:password@proxy-host:port
SSH üzerinden git için proxy
GitHub ile SSH bağlantısı, 22 (veya alternatif olarak 443) üzerinden çalışır. SSH trafiğini proxy'lemek için nc (netcat) veya connect aracını kullanın. ~/.ssh/config dosyasını düzenleyin:
Host github.com HostName github.com User git ProxyCommand nc -X connect -x proxy-host:port %h %p # veya SOCKS5 için: # ProxyCommand nc -X 5 -x proxy-host:port %h %p
Eğer Windows kullanıyorsanız, nc yerine connect.exe kullanabilir veya PuTTY üzerinden ProxyCommand ayarlayabilirsiniz. macOS ve Linux'ta netcat genellikle zaten yüklüdür.
Ortam değişkenlerini ayarlama
Alternatif bir yöntem — ortam değişkenleridir. Bunlar yalnızca git için değil, birçok diğer komut satırı aracı için de çalışır:
# Linux / macOS — ~/.bashrc veya ~/.zshrc dosyasına ekleyin export HTTP_PROXY="http://user:password@proxy-host:port" export HTTPS_PROXY="http://user:password@proxy-host:port" export NO_PROXY="localhost,127.0.0.1" # Windows (PowerShell) $env:HTTP_PROXY = "http://user:password@proxy-host:port" $env:HTTPS_PROXY = "http://user:password@proxy-host:port"
npm ve Node.js için proxy ayarları
npm, proxy desteği ile birlikte gelir. Ayar yapmak sadece bir komut alır ve hemen tüm paket yükleme işlemlerine uygulanır. Bu, JavaScript/TypeScript yığınıyla çalışan İranlı geliştiriciler için özellikle önemlidir: React, Vue, Angular, Next.js — bunların hepsi npmjs.com'u aktif olarak kullanır.
# npm için proxy ayarları npm config set proxy http://user:password@proxy-host:port npm config set https-proxy http://user:password@proxy-host:port # Mevcut yapılandırmayı kontrol etme npm config get proxy npm config get https-proxy # Proxy'yi devre dışı bırakma (doğrudan bağlantıya dönmek için) npm config delete proxy npm config delete https-proxy
Ayarlar ~/.npmrc dosyasında saklanır. Bu dosyayı doğrudan da düzenleyebilirsiniz:
# ~/.npmrc içeriği proxy=http://user:password@proxy-host:port https-proxy=http://user:password@proxy-host:port strict-ssl=false
Yarn ve pnpm
Eğer Yarn veya pnpm kullanıyorsanız, ayarlar benzerdir:
# Yarn v1 yarn config set proxy http://user:password@proxy-host:port yarn config set https-proxy http://user:password@proxy-host:port # Yarn v2/v3 (Berry) — .yarnrc.yml dosyasını düzenleyin # httpProxy: "http://user:password@proxy-host:port" # httpsProxy: "http://user:password@proxy-host:port" # pnpm pnpm config set proxy http://user:password@proxy-host:port pnpm config set https-proxy http://user:password@proxy-host:port
CI/CD için ipucu:
Eğer GitHub Actions, GitLab CI veya başka bir sistem kullanıyorsanız, HTTP_PROXY ve HTTPS_PROXY değişkenlerini proje gizliliklerine ekleyin. Bu, tüm pipeline adımlarının otomatik olarak proxy kullanmasını sağlar.
PyPI ve pip için proxy ayarları
İranlı Python geliştiricileri, PyPI'nin engellenmesiyle sık sık karşılaşıyor: pip, paketleri indirmek için HTTPS kullanıyor ve IP engellendiğinde, yükleme işlemi takılıyor veya hata veriyor. pip için proxy ayarlamanın birkaç yolu vardır.
Yöntem 1: Yükleme sırasında --proxy bayrağı
# Proxy üzerinden tek seferlik yükleme pip install requests --proxy http://user:password@proxy-host:port # pip3 için pip3 install django --proxy http://user:password@proxy-host:port
Yöntem 2: pip.conf yapılandırma dosyası
Her komutta proxy belirtmemek için ayarları pip yapılandırma dosyasına ekleyin:
# Linux/macOS: ~/.config/pip/pip.conf
# Windows: %APPDATA%\pip\pip.ini
[global]
proxy = http://user:password@proxy-host:port
trusted-host = pypi.org
pypi.python.org
files.pythonhosted.org
Yöntem 3: Ortam değişkenleri
# pip, standart ortam değişkenlerini otomatik olarak alır export HTTP_PROXY="http://user:password@proxy-host:port" export HTTPS_PROXY="http://user:password@proxy-host:port" # Bunun ardından normal pip install proxy üzerinden çalışır pip install numpy pandas scikit-learn
Poetry ve Conda
Eğer bağımlılıkları yönetmek için Poetry kullanıyorsanız, proxy ayarları ortam değişkenleri aracılığıyla yapılır — Poetry otomatik olarak HTTP_PROXY ve HTTPS_PROXY'yi alır. Conda için ~/.condarc dosyasına ekleyin:
# ~/.condarc proxy_servers: http: http://user:password@proxy-host:port https: http://user:password@proxy-host:port
Diğer geliştirici araçları: Docker, Composer, Maven
Engellemeler yalnızca GitHub, npm ve PyPI ile sınırlı değil. İran'dan erişilemeyen diğer popüler geliştirme araçları için proxy ayarlarını inceleyelim.
Docker
Docker Hub, İranlı IP'ler için engellidir. docker pull komutunu çalıştırmak için Docker daemon yapılandırmasında proxy ayarlayın:
# Linux: /etc/docker/daemon.json dosyasını oluşturun veya düzenleyin
{
"proxies": {
"http-proxy": "http://user:password@proxy-host:port",
"https-proxy": "http://user:password@proxy-host:port",
"no-proxy": "localhost,127.0.0.1"
}
}
# Docker'ı yeniden başlatın
sudo systemctl restart docker
macOS ve Windows'ta Docker Desktop için proxy ayarları grafik arayüz üzerinden yapılır: Ayarlar → Kaynaklar → Proxy'ler.
Composer (PHP)
# Composer ortam değişkenlerini kullanır export HTTP_PROXY="http://user:password@proxy-host:port" export HTTPS_PROXY="http://user:password@proxy-host:port" # Ya da Composer yapılandırması aracılığıyla composer config --global http-basic.repo.packagist.org user password
Maven (Java)
<!-- ~/.m2/settings.xml -->
<settings>
<proxies>
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>proxy-host</host>
<port>port</port>
<username>user</username>
<password>password</password>
<nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
</proxy>
</proxies>
</settings>
Go modülleri
# Go, modülleri indirmek için GOPROXY kullanır # Bir ayna belirtebilir veya sistem proxy'sini ayarlayabilirsiniz export GOPROXY="https://goproxy.io,direct" export HTTP_PROXY="http://user:password@proxy-host:port" export HTTPS_PROXY="http://user:password@proxy-host:port"
Güvenlik: GitHub hesabını kaybetmemek için
Proxy kullanmak erişim sorununu çözer, ancak yeni bir sorun yaratır: eğer GitHub'a farklı IP adreslerinden giriş yapıyorsanız (bugün İran'dan, yarın Amerikan proxy'si üzerinden, öbür gün Avrupa proxy'si üzerinden), GitHub'ın güvenlik sistemi hesabınızı şüpheli olarak engelleyebilir. Bunu nasıl önleyebilirsiniz.
IP Sürekliliği Kuralı
GitHub ile çalışırken aynı proxy sunucusunu kullanın. Eğer proxy sağlayıcınız her bağlantıda IP'yi değiştiriyorsa (dönüşümlü proxy'ler), bu şüphe uyandırabilir. GitHub için en iyi seçenek, uzun süre sizinle bağlantılı olan statik proxy'dir — tek bir IP.
- Statik konut proxy'si — sizinle bağlantılı olan tek bir Amerikan veya Avrupa IP'si. GitHub için maksimum güvenilirlik.
- Dönüşümlü proxy — npm/pip için uygundur (paket indirme), ancak GitHub hesabına giriş için uygun değildir.
- Doğrudan ve proxy bağlantısını karıştırmayın: ya her zaman proxy üzerinden ya da asla.
İki Faktörlü Kimlik Doğrulama
GitHub'da 2FA'yı etkinleştirin — bu, hesabınızı kimlik bilgileriniz ele geçirilse bile korur. SMS yerine bir kimlik doğrulama uygulaması (Google Authenticator, Authy) kullanın — SMS, İran'dan erişilemeyebilir veya güvenilir çalışmayabilir.
Parolalar yerine SSH Anahtarları
GitHub ile çalışmak için HTTPS kimlik doğrulaması yerine SSH anahtarları ayarlayın. SSH anahtarları, cihaza bağlıdır, IP'ye değil, bu nedenle SSH kullanırken IP değişikliği GitHub güvenlik sistemi için daha az kritik öneme sahiptir.
Geliştiriciler için proxy türlerinin karşılaştırılması
İranlı geliştiricilerin belirli görevleri için hangi proxy türünün daha uygun olduğunu özetleyen bir tabloyla sonuçlandıralım.
| Görev | Konut | Veri Merkezi | Mobil |
|---|---|---|---|
| GitHub (hesap, push/pull) | ✅ Harika | ⚠️ Engellenme riski | ✅ Harika |
| npm install (paket yükleme) | ✅ İyi | ✅ Harika | ✅ İyi |
| pip install (PyPI) | ✅ İyi | ✅ Harika | ✅ İyi |
| Docker Hub (görüntü çekme) | ✅ İyi | ✅ İyi | ⚠️ Pahalı |
| CI/CD hatları (toplu istekler) | ⚠️ Pahalı | ✅ Harika | ❌ Uygun değil |
| Bağlantı hızı | Orta | Yüksek | Orta |
| IP engellenme riski | Düşük | Orta | Çok düşük |
| Maliyet | Orta | Düşük | Yüksek |
Önerilen strateji
Geliştirici için optimal şema:
- GitHub için — ABD veya Almanya'dan statik konut proxy. Her zaman aynı IP.
- npm/pip/Docker için — iyi bant genişliğine sahip veri merkezi proxy. Hız, IP'nin itibarından daha önemlidir.
- Tarayıcı ve web hizmetleri için — aynı konut proxy veya ayrı bir proxy.
Protokoller: HTTP vs SOCKS5
Çoğu geliştirme aracı (git, npm, pip) HTTP/HTTPS proxy'lerini destekler. SOCKS5 daha evrenseldir — TCP düzeyinde çalışır ve SSH dahil her protokol için uygundur. Eğer proxy sağlayıcınız SOCKS5'i destekliyorsa, GitHub'a SSH bağlantıları için bunu kullanın. HTTP trafiği (npm, pip) için neredeyse bir fark yoktur.
Sonuç ve öneriler
Yaptırımlar, İranlı geliştiriciler için gerçek engeller oluşturuyor, ancak çalışmayı imkânsız hale getirmiyor. Doğru ayarlanmış bir proxy, GitHub ile tam olarak çalışmanıza, npm ve pip aracılığıyla paket yüklemenize, Docker Hub'dan görüntü çekmenize olanak tanır — hesap kaybetmeden ve sürekli engellemeler olmadan.
Makalenin ana çıkarımları:
- GitHub ile çalışmak için statik konut proxy kullanın — ABD veya Avrupa'dan tek bir sabit IP.
- Paket yüklemek için (npm, pip, Composer) daha ucuz veri merkezi proxy'leri iyi hız sunar.
- Proxy ayarlarını araç düzeyinde yapın (
git config,npm config,pip.conf), yalnızca sistem düzeyinde değil. - Bir GitHub hesabı için doğrudan bağlantı ve proxy'yi karıştırmayın.
- 2FA'yı etkinleştirin ve maksimum güvenlik için SSH anahtarları kullanın.
Eğer GitHub ve diğer engellenmiş hizmetlerle sürekli çalışmak için güvenilir bir çözüm arıyorsanız, konut proxy'lerine dikkat etmenizi öneririz — gerçek ev IP adresleri aracılığıyla kararlı erişim sağlarlar ve bu IP'ler nadiren GitHub ve diğer platformlar tarafından engellenir.
```