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:
- Ağdaki bir cihaz, bir dış IP adresine (örneğin,
93.184.216.34:443) paket gönderir. - Yönlendirici, yönlendirme kararı verilmeden önce PREROUTING zincirinde
iptables TPROXYkuralı ile paketi yakalar. - Paket, özel bir fwmark ile işaretlenir ve proxy istemcisinin yerel soketine (örneğin, 7893 numaralı porta) yönlendirilir.
- Proxy istemcisi (redsocks, Xray, sing-box),
IP_TRANSPARENTmekanizması aracılığıyla orijinal hedef adresini "görür" ve uzak proxy sunucusu ile bağlantı kurar. - 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.
```