---
title: "wget ile Proxy Kullanımı: Komutlar ve Örnekler"
description: "wget'e proxy'yi ortam değişkeni, .wgetrc dosyası veya -e seçeneğiyle tanıtabilirsiniz. Kimlik doğrulama, HTTPS ve sık hataları örneklerle anlatıyoruz."
url: https://proxynet.io/tr/blog/wget-proxy
date: 2026-09-13
author: "Acar Diveroli"
category: "Nasıl Yapılır, Entegrasyon"
lang: tr
---

# wget ile Proxy Kullanımı: Komutlar ve Örnekler

**wget**, Linux ve macOS sistemlerde çoğunlukla hazır gelen, dosya indirmek ve web sayfalarını çekmek için kullanılan bir komut satırı aracıdır. Sunucularda betik içinden dosya indirmek, bir siteyi yansılamak ya da basit bir erişim testi yapmak için sıkça tercih edilir. Bu yazıda wget'i proxy üzerinden çalıştırmanın üç yolunu, kimlik doğrulamayı, HTTPS ayrıntılarını, toplu indirmelerde dikkat edilecekleri ve sık karşılaşılan hataları örnek komutlarla anlatıyoruz.

Anlatılan seçeneklerin tamamı [GNU Wget kılavuzunda](https://www.gnu.org/software/wget/manual/wget.html) belgelenmiştir.

> **Not: Kısa cevap**
>
> Hızlı test için `export https_proxy="http://kullanici:parola@sunucu:port"` yazıp wget'i normal çalıştırın. Betikte tek seferlik kullanım için `-e use_proxy=yes -e https_proxy=...` seçeneklerini, sürekli kullanım için `~/.wgetrc` dosyasını tercih edin. wget yalnızca HTTP/HTTPS proxy destekler; SOCKS5 gerekiyorsa cURL kullanın.

## Başlamadan önce: wget kurulu mu?

Terminalde sürümü kontrol edin:

```bash
wget --version
```

Komut bulunamazsa Debian ve Ubuntu'da `sudo apt install wget`, macOS'ta Homebrew ile `brew install wget` kullanabilirsiniz. Windows'ta wget yerleşik değildir; aynı işler için Windows 10 ve sonrasında gelen `curl.exe` tercih edilebilir. PowerShell'deki `wget` yazımı ise gerçek wget değil, `Invoke-WebRequest` komutunun takma adıdır ve bu yazıdaki seçenekleri kabul etmez.

Denemelerde IP adresinizi döndüren bir test adresi kullanmak işinizi kolaylaştırır. Proxy çalışıyorsa bu adres sizin değil, proxy'nin IP'sini gösterir:

```bash
wget -qO- https://httpbin.org/ip
```

Buradaki `-q` çıktıyı sessizleştirir, `-O-` ise indirilen içeriği dosyaya yazmak yerine ekrana basar. Proxy tanımlamadan önce bir kez çalıştırıp kendi IP'nizi not edin; sonraki denemelerde farkı hemen görürsünüz.

## Proxy adresinin biçimi

Üç yöntemde de proxy aynı biçimde yazılır:

```text
http://kullanici:parola@sunucu:port
```

- `http://` şeması, proxy ile kurulan bağlantının protokolüdür. HTTPS sitelere giderken de bu şema kullanılır; nedenini aşağıda açıklıyoruz.
- `kullanici:parola@` bölümü isteğe bağlıdır. Proxy panelinizden sunucunuzun IP'sini yetkilendirdiyseniz bu bölümü tamamen bırakabilirsiniz.
- `sunucu:port` bilgisi paketinize göre değişir; doğru değerleri müşteri panelinizde bulabilirsiniz.

## Yöntem 1: Ortam değişkenleriyle

wget, sistemdeki standart proxy ortam değişkenlerini okur: `http_proxy`, `https_proxy`, `ftp_proxy` ve `no_proxy`. En hızlı yöntem budur ve aynı terminalde çalışan diğer birçok araç da bu değişkenleri kullanır.

```bash
export http_proxy="http://kullanici:parola@pr.proxynet.io:8000"
export https_proxy="http://kullanici:parola@pr.proxynet.io:8000"

wget -qO- https://httpbin.org/ip
```

Dikkat edilecek üç nokta var:

- **`https_proxy` değeri de `http://` ile başlar.** Bu değişken HTTPS sitelere giderken kullanılacak proxy'yi belirtir; proxy ile kurulan bağlantının kendisi HTTP'dir ve HTTPS trafiği bu bağlantının içinde tünellenir.
- **Değişkenler yalnızca o terminal oturumunda geçerlidir.** Kalıcı olsun istiyorsanız `~/.bashrc` veya `~/.zshrc` dosyasına ekleyin.
- **Küçük harf yazımı tercih edin.** wget küçük harfli değişkenleri okur; bazı sistemlerde büyük harfli `HTTP_PROXY` de tanımlı olabilir ve iki tanım çelişirse kafa karıştırır. İkisini aynı değere ayarlamak en güvenlisidir.

Belirli adreslerin proxy'ye gitmemesini istiyorsanız `no_proxy` kullanın:

```bash
export no_proxy="localhost,127.0.0.1,.sirketiniz.local"
```

Bu değişken, iç ağdaki servislerin ya da yerel geliştirme sunucularının proxy üzerinden dolaşmasını önler. Nokta ile başlayan bir alan adı, o alanın tüm alt alanlarını kapsar.

## Yöntem 2: Komut satırında, tek seferlik

Ortam değişkenlerini değiştirmeden yalnızca tek bir komutu proxy'den geçirmek için `-e` (`--execute`) seçeneğiyle wget ayarlarını doğrudan komuta verebilirsiniz:

```bash
wget -e use_proxy=yes \
     -e https_proxy=http://pr.proxynet.io:8000 \
     --proxy-user=kullanici \
     --proxy-password=parola \
     https://httpbin.org/ip -O -
```

Bu yöntem betiklerde özellikle kullanışlıdır: Proxy ayarı başka komutları etkilemez ve her çağrıda farklı bir proxy verebilirsiniz. Örneğin bir döngü içinde her indirmeyi farklı bir çıkış noktasından yapmak isterseniz `-e https_proxy=` değerini döngü değişkeninden alırsınız.

`-e` ile verilen her satır, `.wgetrc` dosyasına yazılabilen bir ayardır. Yani aşağıdaki yöntemde göreceğiniz her anahtar burada da geçerlidir.

> **Uyarı**
>
> Parolayı komut satırına yazmak, onu kabuk geçmişine ve sistemdeki işlem listesine açık bırakır. Paylaşılan sunucularda kimlik bilgilerini ortam değişkeninden veya izinleri kısıtlanmış bir yapılandırma dosyasından okutun. Mümkünse panelinizden sunucunuzun IP adresini yetkilendirerek parolasız kullanıma geçin.

## Yöntem 3: .wgetrc dosyasıyla, kalıcı olarak

Aynı makinede wget'i sürekli proxy ile kullanıyorsanız ayarları kullanıcı dizininizdeki `~/.wgetrc` dosyasına yazabilirsiniz:

```ini
use_proxy = on
http_proxy = http://pr.proxynet.io:8000
https_proxy = http://pr.proxynet.io:8000
proxy_user = kullanici
proxy_password = parola
```

Dosyada parola bulunduğu için yalnızca sizin okuyabileceğiniz şekilde izinleri kısıtlayın:

```bash
chmod 600 ~/.wgetrc
```

Sistem genelinde bir ayar gerekiyorsa aynı satırlar `/etc/wgetrc` dosyasına yazılabilir; kullanıcı dizinindeki dosya sistem dosyasındaki değerleri geçersiz kılar.

Bu dosya tanımlıyken proxy'yi geçici olarak devre dışı bırakmak isterseniz tek bir komut için `--no-proxy` seçeneğini ekleyin:

```bash
wget --no-proxy https://httpbin.org/ip -O -
```

## Hangi yöntemi seçmeli?

| Durum | Önerilen yöntem |
|---|---|
| Terminalde hızlı bir test | Ortam değişkeni |
| Betikte, her çağrıda farklı proxy | `-e` ile komut satırı |
| Sunucuda sürekli proxy kullanımı | `.wgetrc` |
| Belirli adresleri proxy dışında tutmak | `no_proxy` |
| cron ile zamanlanmış indirme | `.wgetrc` (cron ortam değişkenlerini taşımaz) |
| Docker konteyneri içinde | Ortam değişkeni (`ENV` ile) |

Üç yöntem aynı anda tanımlıysa öncelik sırası şöyledir: komut satırı seçenekleri ortam değişkenlerini, ortam değişkenleri de `.wgetrc` dosyasını geçersiz kılar.

## HTTPS sitelerde proxy nasıl çalışır?

HTTPS bir adrese proxy üzerinden giderken wget, proxy'ye önce `CONNECT hedef:443` isteği gönderir. Proxy hedefle bir TCP bağlantısı açar ve bundan sonra yalnızca şifreli baytları aktarır. Yani proxy, sitenin içeriğini göremez; yalnızca hangi alan adına bağlanıldığını bilir.

Bunun pratik sonucu şudur: Proxy adresi `http://` ile başlasa bile HTTPS sitelere güvenle gidebilirsiniz. Sertifika doğrulaması sizin makineniz ile hedef site arasında yapılır, proxy bu doğrulamaya karışmaz. Proxy'nin bu davranışını ve SOCKS ile farkını [SOCKS ve HTTP Proxy Farkı](/tr/blog/socks-vs-http-proxy) yazımızda karşılaştırdık.

## Sık kullanılan seçeneklerle birlikte

Proxy ayarı tek başına nadiren yeterlidir; gerçek işlerde birkaç seçenek daha gerekir. Aşağıdaki örnek, proxy üzerinden bir dosyayı yeniden deneme ve zaman aşımı ayarlarıyla indirir:

```bash
wget --timeout=30 --tries=3 --waitretry=5 \
     --user-agent="Mozilla/5.0 (X11; Linux x86_64)" \
     -O rapor.pdf https://example.com/rapor.pdf
```

- `--timeout` her ağ işlemi için bekleme süresini sınırlar.
- `--tries` başarısız indirmeyi kaç kez deneyeceğini belirler; `--waitretry` denemeler arasına bekleme koyar.
- `--user-agent` tarayıcı kimliğini değiştirir. wget'in varsayılan kimliği bazı sitelerde doğrudan engellenir; tanıtıcı bir değer kullanmak hem daha şeffaf hem de daha az sorunludur.
- `-O` çıktı dosyasını adlandırır; `-c` eklerseniz yarım kalan indirmeye kaldığı yerden devam eder.

Sayfa çekerken çerez gerekiyorsa `--load-cookies` ve `--save-cookies` seçenekleri oturumu dosyada tutar; giriş yapılmış bir oturumu proxy ile birlikte sürdürmek bu şekilde mümkündür.

## wget SOCKS proxy destekliyor mu?

GNU wget'in yerleşik bir SOCKS desteği yoktur; yukarıdaki yöntemlerin hepsi HTTP ve HTTPS proxy içindir. SOCKS5 kullanmanız gerekiyorsa iki seçeneğiniz var:

- **cURL kullanmak.** cURL, `socks5://` ve `socks5h://` şemalarını doğrudan destekler ve wget'in yaptığı hemen her işi yapar. Ayrıntılar [cURL ile Proxy Nasıl Kullanılır?](/tr/blog/curl-proxy) yazımızda.
- **Bir yönlendirme aracı kullanmak.** Linux'ta `proxychains` gibi araçlar, SOCKS desteği olmayan programların bağlantılarını SOCKS proxy'ye yönlendirebilir. Windows'ta aynı işi [Proxifier](/tr/blog/proxifier) yapar.

wget ile doğrudan çalışan paketler için [HTTPS Proxy](https://proxynet.io/tr/https-proxy) sayfasına göz atabilirsiniz.

## Sık görülen hatalar ve çözümleri

### "407 Proxy Authentication Required"

Proxy kimlik bilgileri eksik veya yanlış. Kullanıcı adı ile parolayı kontrol edin. Parolada `@`, `:` veya `#` gibi özel karakterler varsa bunları adresin içinde yüzde kodlamasıyla yazın (`@` için `%40`) ya da `--proxy-user` ve `--proxy-password` seçeneklerini kullanın; bu seçenekler kodlama gerektirmez.

### Komut proxy'yi hiç kullanmıyor

- Değişkeni `export` ile tanımladığınızdan emin olun; yalnızca `http_proxy=...` yazmak onu alt süreçlere aktarmaz.
- HTTPS bir adrese gidiyorsanız `http_proxy` değil `https_proxy` değişkeninin tanımlı olması gerekir.
- `.wgetrc` içinde `use_proxy = off` satırı olup olmadığını kontrol edin.
- `sudo wget` çalıştırıyorsanız, `sudo` varsayılan olarak ortam değişkenlerinizi taşımayabilir; `sudo -E` ile taşıyın ya da ayarı `/etc/wgetrc` dosyasına yazın.
- Hedef adres `no_proxy` listesindeki bir alanla eşleşiyor olabilir.

### "Unable to establish SSL connection"

Önce hedef adresin proxy olmadan açılıp açılmadığını kontrol edin. Sorun sertifikadaysa `--no-check-certificate` seçeneği doğrulamayı atlar; ancak bu seçenek bağlantının güvenliğini zayıflatır ve yalnızca test amacıyla kullanılmalıdır. Proxy'nin sertifika doğrulamasına karışmadığını hatırlayın: Bu hata genellikle sistemdeki kök sertifika deposunun eski olmasından ya da hedef sitenin yapılandırmasından kaynaklanır.

### Bağlantı zaman aşımına uğruyor

Proxy adresini ve portu yeniden kontrol edin. Güvenlik duvarının proxy portuna giden trafiğe izin verdiğinden emin olun. Uzun indirmelerde zaman aşımını ve yeniden deneme sayısını açıkça belirlemek betiklerin takılmasını önler:

```bash
wget --timeout=30 --tries=3 https://httpbin.org/ip -O -
```

### "ERROR 403: Forbidden"

Hedef site isteği reddediyor. Nedeni proxy olmayabilir; wget'in varsayılan User-Agent değeri bazı sitelerde doğrudan engellenir. `--user-agent` ile tanıtıcı bir değer verin. Sorun devam ediyorsa hedef site proxy'nin IP türüne göre davranıyor olabilir; veri merkezi adreslerinin neden daha sık reddedildiğini [Residential ve Datacenter Proxy Farkı](/tr/blog/residential-vs-datacenter-proxy) yazımızda anlattık.

## Toplu indirmelerde dikkat edilmesi gerekenler

wget'in `-r` (özyinelemeli indirme) seçeneği bir sitenin tamamını tek komutla çekebilir. Bu güç, hedef sunucuya ciddi yük bindirebilir. Toplu indirmelerde şu seçenekler hem sizin hem hedefin yararınadır:

```bash
wget -r -l 2 --wait=2 --random-wait --limit-rate=500k \
     --no-parent -A pdf https://example.com/belgeler/
```

- `-l 2` derinliği iki seviyeyle sınırlar; sınırsız derinlik tüm siteyi indirir.
- `--wait=2` istekler arasına iki saniye koyar, `--random-wait` bu süreyi rastgele değiştirir.
- `--limit-rate=500k` indirme hızını sınırlar.
- `--no-parent` üst dizinlere çıkmayı engeller, `-A pdf` yalnızca belirtilen uzantıları alır.

wget varsayılan olarak `robots.txt` kurallarına uyar; bu davranışı kapatmayın. Hangi verinin hangi koşullarda toplanabileceğini [Web Scraping Yasal mı?](/tr/blog/web-scraping-legal) yazımızda anlattık. Yalnızca tek bir sayfanın görsellerini istiyorsanız terminale gerek yok; kodsuz yolları [Sayfadaki Tüm Resimleri İndirme](/tr/blog/download-all-images-from-website) yazımızda topladık.

Çok sayıda istek gerektiren projelerde trafiği tek bir IP'ye yığmak yerine [Rotating Proxy](https://proxynet.io/tr/rotating-proxy) ile adresleri dağıtmak hem engellenme riskini azaltır hem de hedef siteye daha dengeli bir yük bindirir. Daha kapsamlı ihtiyaçlar için [veri kazıma çözümlerimize](/tr/data-scraping) bakabilirsiniz.

## Sık sorulan sorular

### wget mi cURL mü?

Dosya indirme, yansılama ve özyinelemeli çekim için wget daha pratiktir; API istekleri, özel HTTP yöntemleri ve SOCKS proxy için cURL daha yeteneklidir. İkisi de HTTP proxy'yi aynı ortam değişkenlerinden okur, bu yüzden bir kez tanımlanan ayar iki araçta da çalışır.

### Proxy ayarı diğer programları etkiler mi?

Ortam değişkeniyle tanımlanan proxy, aynı kabuktan başlatılan ve bu değişkenleri okuyan her programı etkiler (cURL, pip, git gibi). `.wgetrc` ve `-e` yöntemleri yalnızca wget'i etkiler.

### Parolamı kaydetmeden proxy kullanabilir miyim?

Evet. Proxy sağlayıcınızın panelinden sunucunuzun IP adresini yetkilendirirseniz kullanıcı adı ve parola gerekmez; adres yalnızca `http://sunucu:port` biçiminde yazılır. Sabit IP'li sunucular için en temiz yöntem budur.

### wget ile her istekte farklı IP alabilir miyim?

wget'in kendisi rotasyon yapmaz. İki yol vardır: Rotating proxy kullanmak (tek adres, her bağlantıda farklı çıkış IP'si) ya da bir betikte her çağrıya `-e https_proxy=` ile farklı bir proxy vermek.

### Proxy üzerinden FTP indirebilir miyim?

`ftp_proxy` değişkeni tanımlıysa wget FTP adreslerini HTTP proxy üzerinden çeker; proxy'nin bu kullanımı desteklemesi gerekir. Günümüzde FTP kaynakları azaldığı için çoğu proxy paketi HTTP ve HTTPS'e odaklanır.

## Özetle

wget'i proxy ile kullanmanın üç yolu var: hızlı testler için ortam değişkenleri, betiklerde tek seferlik kullanım için `-e` seçeneği ve sürekli kullanım için `.wgetrc` dosyası. HTTPS adresler için `https_proxy` tanımlamayı, kimlik bilgilerini güvenli saklamayı, toplu indirmelerde hızı sınırlamayı ve SOCKS gerektiğinde cURL'e geçmeyi unutmayın.
