Bloga geri dön

İranlı Geliştiriciler için Proxy: 2024'te Yaptırımlara Rağmen GitHub, npm ve PyPI'ye Erişim Nasıl Sağlanır

İranlı geliştiriciler, yaptırımlar nedeniyle GitHub, npm ve PyPI erişim engelleriyle karşılaşıyor. Kısıtlamaları proxy kullanarak nasıl aşacaklarını ve kesintisiz çalışmaya nasıl devam edeceklerini anlatıyoruz.

📅10 Temmuz 2026
```html

İ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 install ile paket yüklemeye çalışırken bağlantı hataları veya açık erişim reddi alınıyor.
  • PyPI (pypi.org)pip install takı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:

  1. GitHub için — ABD veya Almanya'dan statik konut proxy. Her zaman aynı IP.
  2. npm/pip/Docker için — iyi bant genişliğine sahip veri merkezi proxy. Hız, IP'nin itibarından daha önemlidir.
  3. 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.

```