İçeriğe geç
Guides 6 dk okuma 1343 görüntülenme

Git proxy kurulumu

Git'i proxy sunucusu üzerinden çalışacak şekilde yapılandırmayı öğrenin. Bu rehber, clone, push ve pull komutlarının proxy üzerinden kurulumunu kapsar.

Git proxy kurulumu

Git proxy kurulumu, trafiği bir aracı sunucu üzerinden yönlendirmek için Git'in http.proxy ve https.proxy ayarlarını yapılandırmayı, ya da HTTP_PROXY ve HTTPS_PROXY gibi ortam değişkenlerinden yararlanmayı, ya da SSH tabanlı Git işlemleri için SSH yapılandırmasında ProxyCommand kullanmayı kapsar.

Git proxy gereksinimlerini anlamak

Kurumsal güvenlik duvarları, ağ güvenliği politikaları veya kısıtlı internet erişimi çoğu zaman Git trafiğinin bir proxy sunucusu üzerinden yönlendirilmesini zorunlu kılar. Bu, git clone, git fetch, git pull ve git push gibi işlemler için geçerlidir. Yapılandırma yöntemi Git URL protokolüne bağlıdır: https:// (veya http://) HTTP/HTTPS proxy'leri kullanırken, ssh:// (veya git@) SSH'a özgü proxy yöntemlerini kullanır.

HTTP/HTTPS Git proxy yapılandırması

https:// veya http:// URL'leriyle erişilen Git depoları için Git, HTTP/HTTPS proxy ayarlarını kullanır.

Git yapılandırma yöntemi (git config)

Git'te HTTP/HTTPS proxy yapılandırmak için önerilen yöntem budur. Ayarlar global (tüm depolar için) veya tek bir depoya özgü olabilir.

Global yapılandırma

Sistemdeki tüm Git depoları için proxy'yi global olarak yapılandırmak üzere:

# For HTTP proxy (e.g., for https://github.com URLs through an http proxy)
git config --global http.proxy http://proxy.example.com:8080

# For HTTPS proxy (e.g., for https://github.com URLs through an https proxy)
# Note: Often an HTTPS proxy is configured similarly to an HTTP proxy,
# but traffic is explicitly tunneled.
git config --global https.proxy http://proxy.example.com:8080

Proxy kimlik doğrulaması gerektiriyorsa:

git config --global http.proxy http://username:[email protected]:8080
git config --global https.proxy http://username:[email protected]:8080

Güvenlik açısından, parolayı doğrudan URL'ye gömmek yerine Git kimlik bilgilerini sorabilir veya bir credential helper üzerinden alabilir. Parolayı yazmazsanız Git parolayı sorar.

Depo bazında yapılandırma

Belirli bir depo için proxy yapılandırmak üzere deponun kök dizinine geçin ve --global bayrağını kullanmayın:

cd /path/to/my/repo
git config http.proxy http://proxy.example.com:8080
git config https.proxy http://proxy.example.com:8080

Bu ayarlar ilgili deponun .git/config dosyasında saklanır.

Belirli host'lar için proxy'yi devre dışı bırakma

Belirli alan adlarında (örneğin dahili Git sunucularında) proxy'yi atlamak için http.noProxy kullanın:

git config --global http.noProxy "localhost,127.0.0.1,*.internal.com"

Birden fazla host virgülle ayrılabilir.

SSL sertifika doğrulaması

Şeffaf veya araya giren proxy'lerin (MITM proxy'ler) kullanıldığı kurumsal ortamlarda, proxy kaynak sunucunun sertifikası yerine kendi sertifikasını sunduğu için Git'in SSL sertifika doğrulaması başarısız olabilir.

Bunu çözmek için Git'i kurumsal kök CA sertifikasına güvenecek şekilde yapılandırın:

git config --global http.sslCAInfo /path/to/corporate/ca-cert.pem

Alternatif olarak — ve güvenlik riskleri nedeniyle üretim ortamlarında önerilmez — SSL doğrulaması kapatılabilir:

git config --global http.sslVerify false

Bu, sertifika doğrulamasını atlar ve bağlantıları gerçek man-in-the-middle saldırılarına açık hâle getirir. Yalnızca geçici hata ayıklama için veya kontrollü, izole ortamlarda kullanın.

Ortam değişkenleri

curl dâhil komut satırı araçları (Git HTTP/HTTPS aktarımlarında sıklıkla curl kullanır) genellikle HTTP_PROXY, HTTPS_PROXY ve NO_PROXY ortam değişkenlerine uyar. Bu değişkenler, uygulamaların devralabileceği sistem geneli veya oturum geneli bir proxy ayarı sağlar.

# For HTTP proxy
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080" # Often the same for HTTPS traffic tunneling

# For SOCKS proxy
export ALL_PROXY="socks5://proxy.example.com:1080"

# Exclude specific hosts from proxy
export NO_PROXY="localhost,127.0.0.1,*.internal.com"

Git'in kendi HTTP/HTTPS işlemlerinde http.proxy ve https.proxy yapılandırmalarının bu ortam değişkenlerine göre önceliği olduğunu unutmayın. Ortam değişkenleri, git config açıkça ayarlanmadığında veya Git ile etkileşen diğer araçlar için kullanışlıdır.

Karşılaştırma: git config ve ortam değişkenleri

Özellik git config http.proxy / https.proxy HTTP_PROXY / HTTPS_PROXY ortam değişkenleri
Kapsam Git'e özgü (global veya depo bazında) Bunlara uyan uygulamalar için sistem geneli veya oturum geneli
Öncelik Git işlemlerinde daha yüksek; ortam değişkenlerini geçersiz kılar. Git için daha düşük; yedek olarak veya diğer araçlar için işler.
Kalıcılık Oturumlar arası kalıcı (.gitconfig veya .git/config içinde saklanır). Varsayılan olarak kalıcı değil; kalıcılık için shell profiline (.bashrc, .zshrc) eklenmesi gerekir.
Kimlik doğrulama URL'de username:password@ destekler veya kimlik bilgilerini sorar. URL'de username:password@ destekler.
Esneklik Git deposu bazında ayrıntılı denetim. Değişkenlere uyan tüm uygulamalar üzerinde daha geniş etki.

SSH Git proxy yapılandırması

ssh:// veya git@ URL'leriyle erişilen Git depolarında proxy kurulumu SSH istemci yapılandırmasıyla, özellikle ~/.ssh/config içindeki ProxyCommand yönergesiyle yönetilir. Standart HTTP/HTTPS proxy ayarları (örneğin http.proxy) SSH bağlantılarını etkilemez.

~/.ssh/config ile ProxyCommand kullanımı

ProxyCommand, SSH'a hedef host'a (%h) ve porta (%p) bağlantıyı önce harici bir komut — genellikle bir proxy istemcisi — üzerinden yönlendirerek kurmasını söyler.

Ön koşullar
  • netcat (nc): temel TCP tünelleme ve SOCKS proxy'ler için.
  • corkscrew veya connect-proxy: kimlik doğrulama isteyen HTTP/HTTPS proxy'ler üzerinden SSH tünellemek için.
HTTP/HTTPS proxy tünelleme

Proxy'niz bir HTTP/HTTPS proxy ise corkscrew veya connect-proxy kullanabilirsiniz.

  1. corkscrew veya connect-proxy kurun (kurulu değilse).

    • Debian/Ubuntu'da: sudo apt-get install corkscrew
    • macOS'ta (Homebrew ile): brew install corkscrew
    • connect-proxy genelde openssh ile birlikte gelir veya ayrıca temin edilebilir.
  2. ~/.ssh/config dosyasını düzenleyin:
    ~/.ssh/config dosyasını şu içerikle oluşturun veya değiştirin:

    ```ssh
    Host github.com
    ProxyCommand corkscrew proxy.example.com 8080 %h %p
    # If proxy requires authentication:
    # ProxyCommand corkscrew proxy.example.com 8080 %h %p /path/to/proxy_auth_file

    Host gitlab.com
    ProxyCommand corkscrew proxy.example.com 8080 %h %p

    Or for all hosts

    Host *
    ProxyCommand corkscrew proxy.example.com 8080 %h %p
    ``proxy.example.comve8080yerine kendi proxy adresinizi ve portunuzu yazın./path/to/proxy_auth_filedosyası tek satırdausername:passwordiçermelidir. Bu dosyanın kısıtlı izinlere sahip olmasını sağlayın (örneğinchmod 600`).

SOCKS proxy tünelleme

Proxy'niz bir SOCKS proxy ise netcat'i (nc) -X seçeneğiyle kullanın:

  1. netcat'in kurulu olduğundan emin olun. Çoğu Unix benzeri sistemde genellikle önceden kuruludur.

  2. ~/.ssh/config dosyasını düzenleyin:

    ```ssh
    Host github.com
    ProxyCommand nc -X 5 -x proxy.example.com:1080 %h %p

    Host gitlab.com
    ProxyCommand nc -X 5 -x proxy.example.com:1080 %h %p

    Or for all hosts

    Host *
    ProxyCommand nc -X 5 -x proxy.example.com:1080 %h %p
    ``proxy.example.comve1080yerine kendi SOCKS proxy adresinizi ve portunuzu yazın. *-X 5: SOCKS sürüm 5'i belirtir. SOCKS sürüm 4 için-X 4kullanın. *-x`: proxy adresini ve portunu belirtir.

SOCKS proxy için kimlik doğrulama

Bazı netcat sürümleri (Linux'ta çoğu zaman varsayılan olan OpenBSD nc) SOCKS proxy kimlik doğrulamasını destekler. Örneğin:

Host *
    ProxyCommand nc -X 5 -x user:[email protected]:1080 %h %p

Kesin kimlik doğrulama sözdizimi ve yetenekler için netcat sürümünüzün man sayfasına bakın.

Proxy kurulumunu doğrulama

Proxy'yi yapılandırdıktan sonra Git işlemlerinin doğru yönlendirildiğini doğrulayın.

HTTP/HTTPS Git işlemleri için

Git yapılandırmanızı kontrol edin:

git config --global --get http.proxy
git config --global --get https.proxy
git config --global --get http.noProxy

Bir HTTPS deposunda git clone veya git fetch işlemi yapın:

git clone https://github.com/git/git.git

Proxy çalışıyorsa bağlantı başarılı olmalıdır. Ağ izleme araçları trafiğin yönlendirmesini doğrulayabilir.

SSH Git işlemleri için

SSH bağlantınızı ayrıntılı modda test edin:

ssh -vT [email protected]

Çıktıda ProxyCommand çalıştırıldığını gösteren satırı arayın. Örneğin:

debug1: Executing proxy command: exec corkscrew proxy.example.com 8080 github.com 22

Ardından bir Git işlemi deneyin:

git clone [email protected]:git/git.git

Sık karşılaşılan sorunların giderilmesi

  • Yanlış proxy adresi veya portu: proxy sunucusunun IP adresini veya hostname'ini ve belirtilen portu iki kez kontrol edin.
  • Kimlik doğrulama hatası: proxy kullanıcı adını ve parolasını doğrulayın. git config için kimlik bilgilerinin doğru olduğundan veya bir credential helper yapılandırıldığından emin olun. ProxyCommand için kimlik doğrulama dosyasının ya da gömülü kimlik bilgilerinin doğru olduğunu kontrol edin.
  • SSL sertifika sorunları (https://): SSL certificate problem: self signed certificate in certificate chain hataları alıyorsanız kurumsal proxy'niz SSL denetimi yapıyor olabilir. http.sslCAInfo ayarını kurumsal kök CA sertifikanızla yapılandırın veya son çare olarak hata ayıklama amacıyla geçici olarak http.sslVerify false ayarlayın (üretim için önerilmez).
  • Güvenlik duvarı engelleri: yerel güvenlik duvarınızın (varsa) ve kurumsal güvenlik duvarının, belirtilen portta proxy sunucusuna giden bağlantılara izin verdiğinden emin olun. Proxy sunucusunun kendisi de Git barındırma servislerine bağlantıya izin vermelidir.
  • ProxyCommand yardımcı programı bulunamadı (ssh://): ProxyCommand "command not found" hatasıyla başarısız olursa netcat, corkscrew veya connect-proxy'nin kurulu olduğundan ve çalıştırılabilir dosya yolunun sisteminizin PATH ortam değişkeninde bulunduğundan emin olun. Gerekirse çalıştırılabilir dosyanın tam yolunu belirtin (örneğin ProxyCommand /usr/bin/corkscrew ...).
  • Proxy atlanıyor: git config içindeki http.noProxy fazla geniş kapsamlıysa veya ortam değişkenleri yanlış ayarlanmışsa Git doğrudan bağlantı deneyebilir. noProxy ayarlarını doğrulayın.
  • Proxy zaman aşımı: proxy'nin agresif zaman aşımı ayarları varsa uzun süren işlemler zaman aşımına uğrayabilir. Bu genellikle sunucu tarafı bir yapılandırma sorunudur.
Güncellendi: 04.03.2026
Kategoriye dön

Bunları da okuyun

Guides 2 dk

Nike SNKRS için Proxy: Sınırlı Sürümler ve Çoklu Katılım

Nike SNKRS'ta birden fazla hesapla çekilişlere katılmak, IP limitlerini aşmak ve ban yemeden sınırlı sürümleri kapmak için residential veya mobil proxy kullanın. Hangi türü seçmeli ve nasıl kurmalı.

Guides 2 dk

iPhone'da Proxy Nasıl Kurulur (Wi-Fi ve SOCKS5)

iPhone'da proxy'yi yerleşik Wi-Fi ayarlarından (HTTP/HTTPS) veya SOCKS5 ile hücresel kapsama için Shadowrocket gibi bir uygulamayla kurun. Adım adım iOS kurulumu ve bilinmesi gereken kısıtlar.

Guides 3 dk

Tinder için proxy: çoklu hesap ve ban'lerden kaçınma

Birden fazla profil işletmek ve IP shadowban'lerinden kaçınmak için Tinder'da mobil veya residential proxy kullanın. Mobilin neden kazandığı, kurulumu ve proxy'nin şehri neden değiştirmediği.

Guides 2 dk

StockX için proxy: fiyat takibi ve hesap yönetimi

StockX'te fiyatları izlemek, birden fazla hesap çalıştırmak ve drop'ları yasaklanmadan kapmak için residential, ISP veya mobil proxy kullanın. Hangi türü seçeceğinizi ve nasıl kuracağınızı anlatıyoruz.

Guides 3 dk

OpenAI API için Proxy: Erişim, Hız Limitleri ve Kurulum

OpenAI API'yi residential veya ISP proxy üzerinden yönlendirerek desteklenen bölgelere erişin, 429 hız limitlerinden kaçının ve hesapları izole edin. Hangi proxy'yi seçmeli ve Python kurulum örnekleri.

Guides 1 dk

E2E testleri için Cypress'te proxy kurulumu

Cypress'te proxy kurulumu: HTTP_PROXY değişkenleri, cy-proxy-middleware ve coğrafi konuma bağlı içeriğin test edilmesi.

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.