Bloga geri dön

OpenWrt Yönlendiricisinde TPROXY ile Şeffaf Proxy: Tüm Ağ için Tam Kurulum

TPROXY ile OpenWrt'de şeffaf proxy ayarlamak, ağdaki tüm trafiği her cihazda manuel ayar yapmadan proxy sunucusu üzerinden yönlendirmeyi sağlar.

📅6 Haziran 2026
```html

Tüm ağ trafiğinizin proxy üzerinden geçmesini istiyorsanız — her dizüstü bilgisayarda, akıllı telefonda veya sunucuda manuel ayar yapmadan — OpenWrt yönlendiricisinde TPROXY mekanizması ile şeffaf proxy tam olarak ihtiyacınız olan şeydir. Bu kılavuzda, gerekli paketlerin kurulumu, iptables kuralları ve çalışmanın kontrolü dahil olmak üzere tam yapılandırmayı inceleyeceğiz.

TPROXY nedir ve neden gereklidir

TPROXY (Şeffaf Proxy) — IP adresini değiştirmeden TCP ve UDP trafiğini yakalamaya olanak tanıyan bir Linux çekirdek mekanizmasıdır. Klasik NAT yönlendirmesinin (REDIRECT) aksine, TPROXY orijinal alıcı adresini korur, bu da proxy istemcisinin doğru çalışması için kritik öneme sahiptir: ağdaki cihazın nereye bağlanmaya çalıştığını "görür".

Pratikte bunun neye yaradığına bir göz atın. Diyelim ki: ofisiniz veya ev laboratuvarınızda onlarca cihaz var — bilgisayarlar, akıllı telefonlar, IoT cihazları, test sanal makineleri. Her birinde proxy ayarlamak — saatler süren bir iş ve proxy sunucusunu değiştirdiğinizde sürekli bir baş ağrısıdır. Yönlendiricideki şeffaf proxy, merkezi bir çözüm sunar: ağın tüm trafiği otomatik olarak proxy üzerinden geçer ve cihazlar bunun farkında bile olmaz.

OpenWrt'de TPROXY'nin tipik kullanım senaryoları:

  • Coğrafi engelleri aşmak için tüm trafiği yerleşik veya mobil proxyler üzerinden yönlendirme
  • Kurumsal ağda merkezi izleme ve trafik filtreleme
  • Müşteri makinelerinde ayarları değiştirmeden farklı bölgelerden proxy üzerinden uygulama test etme
  • Yönlendiriciye bağlı tüm cihazlar için IP'yi otomatik olarak değiştirme
  • Tek bir geçit üzerinden anti-tespit tarayıcıları (Dolphin Anty, AdsPower, GoLogin) ile çalışma

TPROXY'nin normal REDIRECT ile karşılaştırıldığında en önemli avantajı: UDP desteği. Bu, REDIRECT'in düzgün bir şekilde işleyemediği modern protokoller (QUIC, DNS over UDP, oyun trafiği) için önemlidir.

OpenWrt'de şeffaf proxy nasıl çalışır

OpenWrt'de TPROXY'nin çalışma şeması şu şekildedir:

  1. Ağdaki bir cihaz, bir dış IP adresine (örneğin, 93.184.216.34:443) paket gönderir.
  2. Yönlendirici, yönlendirme kararı verilmeden önce PREROUTING zincirinde iptables TPROXY kuralı ile paketi yakalar.
  3. Paket, özel bir fwmark ile işaretlenir ve proxy istemcisinin yerel soketine (örneğin, 7893 numaralı porta) yönlendirilir.
  4. Proxy istemcisi (redsocks, Xray, sing-box), IP_TRANSPARENT mekanizması aracılığıyla orijinal hedef adresini "görür" ve uzak proxy sunucusu ile bağlantı kurar.
  5. Cevap, cihazın geri döner — şeffaf bir şekilde, istemci tarafında herhangi bir değişiklik olmadan.

💡 Önemli Nokta

TPROXY yalnızca PREROUTING zincirinde mangle tablosunda çalışır. Bu, yalnızca ağ cihazlarından gelen geçiş trafiğinin yakalandığı, ancak yönlendiricinin kendisinin trafiğinin yakalanmadığı anlamına gelir. Yönlendiricinin trafiğini yakalamak için OUTPUT ve loopback üzerinden yönlendirme ile ek ayarlar gerekecektir.

Gereksinimler: yönlendirici, firmware, paketler

Ayarlara başlamadan önce, yapılandırmanızın minimum gereksinimleri karşıladığından emin olun.

Yönlendirici gereksinimleri

Parametre Minimum Tavsiye Edilen
RAM 64 MB 256 MB ve üzeri
Flash / Depolama 16 MB 128 MB ve üzeri
CPU Mimarisi MIPS, ARM ARM Cortex-A7/A53 ve üzeri
OpenWrt Sürümü 21.02 23.05 veya snapshot
Linux Çekirdeği 5.4 ile TPROXY 5.15 / 6.1

Bu görev için iyi sonuç veren modeller: GL.iNet GL-MT6000 (Flint 2), Xiaomi AX3000T, Banana Pi BPi-R3, Raspberry Pi 4 OpenWrt ile, ayrıca yeterli RAM kapasitesine sahip herhangi bir x86 yönlendirici.

TPROXY desteğini kontrol etme

Yönlendiriciye SSH ile bağlanın ve aşağıdaki komutu çalıştırın:

zcat /proc/config.gz | grep TPROXY

CONFIG_NETFILTER_XT_TARGET_TPROXY=y veya =m satırını görmelisiniz. Çıktı boşsa — çekirdek TPROXY'yi desteklemiyor demektir ve yeniden derleme veya firmware değişikliği gerekecektir.

Gerekli paketlerin kurulumu

OpenWrt'de TPROXY'nin çalışması için birkaç pakete ihtiyaç vardır. SSH ile bağlanın ve paket listesini güncelleyin:

opkg update

Gerekli bileşenleri kurun:

# TPROXY için çekirdek modülü
opkg install kmod-nft-tproxy

# Eğer iptables kullanıyorsanız (eski yığın)
opkg install iptables-mod-tproxy

# ip rule / ip route araçları
opkg install ip-full

# fwmark ile çalışmak için ek olarak
opkg install kmod-ipt-tproxy

Seçtiğiniz proxy istemcisine bağlı olarak aşağıdaki paketlerden birini kurun:

Proxy İstemcisi OpenWrt Paketi TPROXY Desteği
redsocks redsocks TCP (UDP redsocks2 üzerinden)
Xray-core xray-core TCP + UDP (yerel)
sing-box sing-box TCP + UDP (yerel)
mihomo (Clash Meta) mihomo TCP + UDP (yerel)

Çoğu görev için sing-box veya mihomo öneriyoruz — bunlar TPROXY'yi yerel olarak destekler, UDP dahil ve kullanımı kolay bir yapılandırma formatına sahiptir.

iptables ve ip rule kurallarının ayarlanması

Bu, ana aşamadır. Üç şey yapmamız gerekiyor: gerekli paketleri fwmark ile işaretlemek, özel bir yönlendirme tablosu ayarlamak ve iptables'a TPROXY kuralı eklemek.

Adım 1: Yönlendirme tablosu oluşturma

# Özel bir yönlendirme ekliyoruz: işaretlenmiş paketler loopback'a gidiyor
ip rule add fwmark 1 table 100
ip route add local default dev lo table 100

Bu, çekirdeğe "fwmark=1 işaretine sahip tüm paketleri yerel olarak kabul et ve loopback'a ilet" demektir. Böylece proxy istemcisi, bunları kendi soketi aracılığıyla alabilecektir.

Adım 2: iptables kuralları (mangle/PREROUTING)

# TPROXY için bir zincir oluşturuyoruz
iptables -t mangle -N TPROXY_RULES

# Yerel adresleri hariç tutuyoruz (proxy üzerinden yönlendirmiyoruz)
iptables -t mangle -A TPROXY_RULES -d 0.0.0.0/8 -j RETURN
iptables -t mangle -A TPROXY_RULES -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A TPROXY_RULES -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A TPROXY_RULES -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A TPROXY_RULES -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A TPROXY_RULES -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A TPROXY_RULES -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A TPROXY_RULES -d 240.0.0.0/4 -j RETURN

# TCP'yi proxy istemcisinin portuna (7893) yönlendiriyoruz
iptables -t mangle -A TPROXY_RULES -p tcp \
  -j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1

# UDP'yi proxy istemcisinin portuna (7893) yönlendiriyoruz
iptables -t mangle -A TPROXY_RULES -p udp \
  -j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1

# Zinciri geçiş trafiğine uyguluyoruz
iptables -t mangle -A PREROUTING -j TPROXY_RULES

📌 Port 7893

7893 portu, proxy istemcisinin (sing-box, mihomo, Xray) tproxy modunda dinlediği porttur. Bunun, istemci ayarlarınızla eşleştiğinden emin olun.

Adım 3: Kuralların yeniden başlatıldığında kaydedilmesi

/etc/init.d/tproxy dosyasında bir başlangıç betiği oluşturun veya komutları /etc/rc.local dosyasına ekleyin. OpenWrt 23.05 için nftables kullanıyorsanız, iptables yerine nft sözdiziminde benzer kuralları kullanın:

nft add table ip tproxy_table
nft add chain ip tproxy_table prerouting \
  '{ type filter hook prerouting priority mangle; policy accept; }'
nft add rule ip tproxy_table prerouting \
  ip daddr { 10.0.0.0/8, 127.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 } return
nft add rule ip tproxy_table prerouting \
  tcp tproxy to 127.0.0.1:7893 meta mark set 1
nft add rule ip tproxy_table prerouting \
  udp tproxy to 127.0.0.1:7893 meta mark set 1

Proxy istemcisi yapılandırması: redsocks, Xray, sing-box

Yönlendiricideki proxy istemcisi, yakalanan trafiği alıp uzak bir proxy sunucusuna gönderen bir programdır. En popüler seçenekler için yapılandırmayı inceleyelim.

Seçenek 1: redsocks (basit, yalnızca TCP)

SOCKS5 proxy ile temel görevler için uygundur. Yapılandırma dosyası /etc/redsocks.conf:

base {
    log_debug = off;
    log_info = on;
    log = "file:/var/log/redsocks.log";
    daemon = on;
    redirector = tproxy;
}

redsocks {
    local_ip = 127.0.0.1;
    local_port = 7893;

    // SOCKS5 proxy adresiniz
    ip = 185.220.101.50;
    port = 1080;
    type = socks5;

    // Eğer proxy kimlik doğrulaması gerektiriyorsa:
    login = "your_login";
    password = "your_password";
}

Seçenek 2: sing-box (önerilir — TCP + UDP)

sing-box, TPROXY'yi yerel olarak destekler ve SOCKS5, HTTP, Shadowsocks, VLESS, Trojan gibi çoğu proxy türü ile çalışır. Yapılandırma örneği /etc/sing-box/config.json:

{
  "inbounds": [
    {
      "type": "tproxy",
      "listen": "127.0.0.1",
      "listen_port": 7893,
      "tcp_fast_open": false,
      "udp_fragment": true,
      "sniff": true
    }
  ],
  "outbounds": [
    {
      "type": "socks",
      "tag": "proxy-out",
      "server": "185.220.101.50",
      "server_port": 1080,
      "version": "5",
      "username": "your_login",
      "password": "your_password"
    },
    {
      "type": "direct",
      "tag": "direct"
    }
  ],
  "route": {
    "rules": [
      {
        "geoip": ["private"],
        "outbound": "direct"
      }
    ],
    "final": "proxy-out"
  }
}

sing-box'ı başlatın ve otomatik başlatmaya ekleyin:

/etc/init.d/sing-box enable
/etc/init.d/sing-box start

Seçenek 3: mihomo / Clash Meta

mihomo, Clash'ın genişletilmiş özelliklere sahip bir çatallamasıdır. tproxy-port bölümünde yakalama için portu belirtin:

mixed-port: 7890
tproxy-port: 7893
allow-lan: false
mode: rule
log-level: info

proxies:
  - name: "my-socks5"
    type: socks5
    server: 185.220.101.50
    port: 1080
    username: your_login
    password: your_password
    udp: true

proxy-groups:
  - name: "PROXY"
    type: select
    proxies:
      - my-socks5

rules:
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT
  - MATCH,PROXY

DNS sızıntılarına karşı koruma

Doğru DNS ayarları olmadan şeffaf proxy, ciddi bir güvenlik açığıdır. DNS sorguları doğrudan sağlayıcıya gidiyorsa ve proxy üzerinden geçmiyorsa, gerçek konum açığa çıkar, IP değişikliği olsa bile. Bu, anonimlik veya coğrafi değiştirme gerektiren görevler için kritik öneme sahiptir.

Yöntem 1: DNS'i TPROXY ile yakalama

UDP trafiğini 53 numaralı porta yakalamak için bir kural ekleyin:

# Ağ cihazlarından gelen DNS sorgularını yakalıyoruz
iptables -t mangle -A TPROXY_RULES -p udp --dport 53 \
  -j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1

Yöntem 2: DNS sing-box / mihomo üzerinden

sing-box ve mihomo, DNS sorgularını kendi başlarına işleyebilir ve bunları proxy üzerinden gönderebilir. sing-box yapılandırmasına DNS bölümünü ekleyin:

"dns": {
  "servers": [
    {
      "tag": "remote",
      "address": "8.8.8.8",
      "detour": "proxy-out"
    },
    {
      "tag": "local",
      "address": "192.168.1.1",
      "detour": "direct"
    }
  ],
  "rules": [
    {
      "geoip": ["private"],
      "server": "local"
    }
  ],
  "final": "remote",
  "independent_cache": true
}

Yöntem 3: dnsmasq ile upstream üzerinden proxy

Eğer sing-box/mihomo kullanmıyorsanız, dnsmasq'ı (OpenWrt'nin standart DNS sunucusu) şifreli bir DNS sunucusuna sorguları yönlendirecek şekilde yapılandırın. /etc/dnsmasq.conf dosyasında:

# Sağlayıcının DNS'ini kullanmayı devre dışı bırakıyoruz
no-resolv

# Yerel çözümleyici üzerinden DoH/DoT kullanıyoruz
server=127.0.0.1#5335

# Cihazların dış DNS'i doğrudan kullanmasını engelliyoruz
# (doğrudan DNS sorgularını engellemek için iptables kuralı)
# iptables -t nat -A PREROUTING -p udp --dport 53 ! -d 192.168.1.1 -j DNAT --to 192.168.1.1

Kontrol ve hata ayıklama

Ayarlamaları yaptıktan sonra, şeffaf proxy'nin düzgün çalıştığını kontrol edin. İşte adım adım kontrol listesi.

Adım 1: iptables kurallarını kontrol etme

# TPROXY_RULES zincirini kontrol ediyoruz
iptables -t mangle -L TPROXY_RULES -v -n

# 100 numaralı yönlendirme tablosunu kontrol ediyoruz
ip rule show
ip route show table 100

Adım 2: Proxy istemcisinin portu dinlediğini kontrol etme

ss -tlnp | grep 7893
# veya
netstat -tlnp | grep 7893

127.0.0.1:7893 üzerinde dinleyen sing-box, mihomo veya redsocks sürecini görmelisiniz.

Adım 3: İstemci cihazından IP kontrolü

Ağınızdaki herhangi bir cihazdan yönlendiriciye bağlanın ve tarayıcıda ifconfig.me veya 2ip.ru adresini açın. Gösterilen IP, proxy sunucunuzun IP'si ile aynı olmalı, gerçek sağlayıcınızın IP'si ile değil.

Adım 4: DNS sızıntılarını kontrol etme

dnsleaktest.com adresine gidin ve genişletilmiş testi gerçekleştirin. Sonuçlardaki DNS sunucuları, proxy sağlayıcınıza veya seçtiğiniz DoH sunucusuna ait olmalı, ancak internet sağlayıcınıza ait olmamalıdır.

Tipik sorunlar ve çözümleri

Belirti Sebep Çözüm
İnternet hiç çalışmıyor Proxy istemcisi çalışmıyor Hizmet durumunu ve istemci günlüklerini kontrol edin
IP değişmiyor iptables kuralları uygulanmadı Kontrol edin iptables -t mangle -L -v
UDP çalışmıyor redsocks UDP'yi desteklemiyor sing-box veya mihomo'ya geçin
Yönlendirme döngüsü Proxy istemcisinin trafiği de yakalanıyor Proxy istemcisinin UID veya cgroup'unu kurallardan hariç tutun
TPROXY hedef hatası Çekirdek modülü yüklenmedi modprobe xt_TPROXY

TPROXY için hangi proxy türü uygundur

Proxy türünün seçimi sonuç üzerinde kritik bir etkiye sahiptir. Yönlendiricide şeffaf proxy için tüm seçenekler uygun değildir — protokol, bağlantı kararlılığı ve görev dikkate alınmalıdır.

SOCKS5 Proxy

TPROXY için en evrensel seçenektir. TCP ve UDP'yi destekler (sing-box/mihomo kullanıldığında). Çoğu görev için uygundur: coğrafi engelleri aşma, tüm ağ için IP değiştirme, pazar yerleri ile çalışma. Veri merkezi proxyleri SOCKS5 formatında yüksek hız ve kararlılık sağlar — öncelik hız ise, gerçek bir kullanıcı gibi gizlenmekten ziyade en iyi seçimdir.

Yerleşik Proxyler

Yerleşik proxyler, gerçek ev kullanıcılarının IP adreslerini kullanır. Yönlendiricide TPROXY üzerinden yönlendirme yapıldığında, bu, ağınızdaki tüm trafiğin, gerekli ülkeden bir ev internet kullanıcısının trafiği gibi görünmesi anlamına gelir. Aşağıdaki durumlar için idealdir:

  • Yurt dışındaki pazar yerlerinde fiyat izleme (Amazon, eBay, Zalando)
  • Farklı bölgelerden reklamları test etme
  • Veri merkezi IP'lerini aktif olarak engelleyen platformlarla çalışma
  • Gerçek bir kullanıcı gibi gizlenmenin maksimum düzeyde gerektiği görevler

Mobil Proxyler

Mobil proxyler, mobil operatörlerin IP'leri (4G/5G) üzerinden çalışır. Platformlar tarafından en yüksek güvenilirlik seviyesine sahiptir — Facebook, Instagram, TikTok mobil IP'leri nadiren engeller, çünkü tek bir adresin arkasında binlerce gerçek kullanıcı olabilir. TPROXY üzerinden kullanıldığında, ağınızdaki tüm trafik mobil IP alır, bu da aşağıdaki durumlar için kritik öneme sahiptir:

  • Facebook Reklamları ve TikTok Reklamları üzerinden trafik arabuluculuğu
  • Sosyal medya hesaplarının oluşturulması
  • Tek bir geçit üzerinden anti-tespit tarayıcıları (Dolphin Anty, AdsPower, GoLogin) ile çalışma
Proxy Türü Hız Platformların Güveni En İyi Senaryo
Veri Merkezi ⚡ Yüksek ★★☆☆☆ Parse, fiyat izleme
Yerleşik ⚡⚡ Orta ★★★★☆ Coğrafi test, e-ticaret
Mobil ⚡ Orta ★★★★★ Sosyal medya, trafik arabuluculuğu

Sonuç

OpenWrt'de TPROXY aracılığıyla şeffaf proxy, tüm ağ trafiğini merkezi olarak yönetmek için güçlü bir araçtır. Bu yaklaşımın ana avantajları: her cihazda ayrı ayrı proxy ayarlamaya gerek yoktur, hem TCP hem de UDP trafiği desteklenir ve yapılandırma, ev kullanımından kurumsal altyapıya kadar her türlü göreve esnek bir şekilde ölçeklenebilir.

İncelediğimiz ana adımlar: OpenWrt çekirdeğinde TPROXY desteğini kontrol etme, gerekli paketlerin kurulumu, doğru fwmark ile iptables/nftables kurallarının ayarlanması, proxy istemcisinin (redsocks, sing-box veya mihomo) yapılandırılması ve DNS sızıntılarına karşı koruma. Bu aşamaların her biri önemlidir — herhangi birinin atlanması, hatalı çalışmaya veya gerçek IP sızıntısına yol açabilir.

Göreviniz, tüm ağ trafiğini proxy üzerinden yönlendirmek ve platformlar (Facebook, Instagram, TikTok, yurt dışındaki pazar yerleri) tarafından maksimum güven düzeyini sağlamak ise, yerleşik proxyleri kullanmanızı öneririz — bunlar, gerekli ülkeden gerçek ev IP'leri sağlar ve yönlendiricide şeffaf proxy üzerinden çalışırken engellenme riskini en aza indirir.

```