Jika Anda ingin semua lalu lintas jaringan Anda melewati proksi โ tanpa pengaturan manual di setiap laptop, smartphone, atau server โ proksi transparan di router OpenWrt melalui mekanisme TPROXY adalah solusi yang tepat. Dalam panduan ini, kita akan membahas konfigurasi lengkap: dari instalasi paket yang diperlukan hingga aturan iptables dan pengujian fungsionalitas.
Apa itu TPROXY dan mengapa dibutuhkan
TPROXY (Transparent Proxy) adalah mekanisme inti Linux yang memungkinkan penangkapan lalu lintas TCP dan UDP tanpa mengubah alamat IP tujuan dalam paket. Berbeda dengan pengalihan NAT klasik (REDIRECT), TPROXY mempertahankan alamat asli penerima, yang sangat penting untuk fungsi klien proksi yang benar: ia "melihat" ke mana perangkat di jaringan mencoba terhubung.
Mengapa ini diperlukan dalam praktik? Bayangkan: Anda memiliki kantor atau laboratorium rumah dengan puluhan perangkat โ komputer, smartphone, perangkat IoT, mesin virtual uji. Mengatur proksi secara manual di setiap perangkat akan memakan waktu berjam-jam dan menjadi sakit kepala yang konstan saat mengganti server proksi. Proksi transparan di router menyelesaikan masalah secara terpusat: semua lalu lintas jaringan secara otomatis melewati proksi, dan perangkat tidak menyadarinya.
Skenario umum penggunaan TPROXY di OpenWrt:
- Pengarahan semua lalu lintas melalui proksi residensial atau mobile untuk menghindari pemblokiran geo
- Pemantauan dan penyaringan lalu lintas secara terpusat di jaringan perusahaan
- Menguji aplikasi melalui proksi dari berbagai wilayah tanpa mengubah pengaturan di mesin klien
- Pemalsuan IP otomatis untuk semua perangkat yang terhubung ke router
- Bekerja dengan browser anti-detect (Dolphin Anty, AdsPower, GoLogin) melalui satu gerbang
Keuntungan utama TPROXY dibandingkan REDIRECT biasa: dukungan untuk UDP. Ini penting untuk protokol modern (QUIC, DNS over UDP, lalu lintas game), yang REDIRECT tidak dapat menangani dengan benar.
Bagaimana proksi transparan bekerja di OpenWrt
Skema kerja TPROXY di OpenWrt terlihat sebagai berikut:
- Perangkat di jaringan mengirimkan paket ke alamat IP eksternal (misalnya,
93.184.216.34:443). - Router menangkap paket dengan aturan
iptables TPROXYdi rantai PREROUTING โ sebelum keputusan tentang pengarahannya dibuat. - Paket ditandai dengan fwmark khusus dan dialihkan ke soket lokal klien proksi (misalnya, ke port 7893).
- Klien proksi (redsocks, Xray, sing-box) "melihat" alamat tujuan asli melalui mekanisme
IP_TRANSPARENTdan membuat koneksi melalui server proksi jarak jauh. - Jawaban dikembalikan ke perangkat โ secara transparan, tanpa perubahan apa pun di sisi klien.
๐ก Poin Penting
TPROXY hanya berfungsi dalam rantai PREROUTING tabel mangle. Ini berarti bahwa hanya lalu lintas transit (dari perangkat jaringan) yang ditangkap, tetapi bukan lalu lintas router itu sendiri. Untuk menangkap lalu lintas router, pengaturan tambahan diperlukan melalui OUTPUT dan pengarahannya melalui loopback.
Persyaratan: router, firmware, paket
Sebelum mulai mengatur, pastikan konfigurasi Anda memenuhi persyaratan minimum.
Persyaratan untuk router
| Parameter | Minimum | Direkomendasikan |
|---|---|---|
| RAM | 64 MB | 256 MB atau lebih |
| Flash / Penyimpanan | 16 MB | 128 MB atau lebih |
| Arsitektur CPU | MIPS, ARM | ARM Cortex-A7/A53 dan lebih tinggi |
| Versi OpenWrt | 21.02 | 23.05 atau snapshot |
| Kernel Linux | 5.4 dengan TPROXY | 5.15 / 6.1 |
Model yang sudah terbukti baik untuk tugas ini: GL.iNet GL-MT6000 (Flint 2), Xiaomi AX3000T, Banana Pi BPi-R3, Raspberry Pi 4 dengan OpenWrt, serta router x86 mana pun dengan kapasitas RAM yang cukup.
Memeriksa dukungan TPROXY di kernel
Sambungkan ke router melalui SSH dan jalankan:
zcat /proc/config.gz | grep TPROXY
Anda harus melihat baris CONFIG_NETFILTER_XT_TARGET_TPROXY=y atau =m. Jika output kosong โ kernel tidak mendukung TPROXY dan perlu dikompilasi ulang atau mengganti firmware.
Instalasi paket yang diperlukan
Untuk menjalankan TPROXY di OpenWrt, beberapa paket diperlukan. Sambungkan melalui SSH dan perbarui daftar paket:
opkg update
Instal komponen yang diperlukan:
# Modul kernel untuk TPROXY
opkg install kmod-nft-tproxy
# Jika menggunakan iptables (tumpukan lama)
opkg install iptables-mod-tproxy
# Utilitas ip rule / ip route
opkg install ip-full
# Tambahan untuk bekerja dengan fwmark
opkg install kmod-ipt-tproxy
Tergantung pada klien proksi yang dipilih, instal salah satu paket berikut:
| Klien Proksi | Paket OpenWrt | Dukungan TPROXY |
|---|---|---|
| redsocks | redsocks |
TCP (UDP melalui redsocks2) |
| Xray-core | xray-core |
TCP + UDP (natif) |
| sing-box | sing-box |
TCP + UDP (natif) |
| mihomo (Clash Meta) | mihomo |
TCP + UDP (natif) |
Untuk sebagian besar tugas, kami merekomendasikan sing-box atau mihomo โ mereka mendukung TPROXY secara native, termasuk UDP, dan memiliki format konfigurasi yang nyaman.
Pengaturan aturan iptables dan ip rule
Ini adalah langkah kunci. Kita perlu melakukan tiga hal: menandai paket yang diperlukan dengan fwmark, mengatur tabel routing khusus, dan menambahkan aturan TPROXY di iptables.
Langkah 1: Membuat tabel routing
# Menambahkan rute khusus: paket yang ditandai pergi ke loopback
ip rule add fwmark 1 table 100
ip route add local default dev lo table 100
Ini memberi tahu kernel: "semua paket dengan label fwmark=1 anggap lokal dan kirim ke loopback". Dengan cara ini, klien proksi akan dapat menerima paket melalui soketnya.
Langkah 2: Aturan iptables (mangle/PREROUTING)
# Membuat rantai untuk TPROXY
iptables -t mangle -N TPROXY_RULES
# Mengecualikan alamat lokal (tidak diproksi)
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
# Mengalihkan TCP ke port klien proksi (7893)
iptables -t mangle -A TPROXY_RULES -p tcp \
-j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1
# Mengalihkan UDP ke port klien proksi (7893)
iptables -t mangle -A TPROXY_RULES -p udp \
-j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1
# Menerapkan rantai ke lalu lintas transit
iptables -t mangle -A PREROUTING -j TPROXY_RULES
๐ Port 7893
Port 7893 adalah port di mana klien proksi (sing-box, mihomo, Xray) mendengarkan dalam mode tproxy. Pastikan itu sesuai dengan pengaturan klien Anda.
Langkah 3: Menyimpan aturan saat reboot
Buat skrip autostart di /etc/init.d/tproxy atau tambahkan perintah ke /etc/rc.local. Untuk OpenWrt 23.05 dengan nftables sebagai pengganti iptables, gunakan aturan serupa dalam sintaks nft:
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
Konfigurasi Klien Proksi: redsocks, Xray, sing-box
Klien proksi di router adalah program yang menerima lalu lintas yang ditangkap dan mengirimkannya melalui server proksi jarak jauh. Mari kita lihat konfigurasi untuk opsi yang paling populer.
Opsi 1: redsocks (sederhana, hanya TCP)
Cocok untuk tugas dasar dengan proksi SOCKS5. File konfigurasi /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;
// Alamat proksi SOCKS5 Anda
ip = 185.220.101.50;
port = 1080;
type = socks5;
// Jika proksi memerlukan otorisasi:
login = "your_login";
password = "your_password";
}
Opsi 2: sing-box (direkomendasikan โ TCP + UDP)
sing-box mendukung TPROXY secara native dan bekerja dengan sebagian besar jenis proksi: SOCKS5, HTTP, Shadowsocks, VLESS, Trojan. Contoh konfigurasi /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"
}
}
Jalankan sing-box dan tambahkan ke autostart:
/etc/init.d/sing-box enable
/etc/init.d/sing-box start
Opsi 3: mihomo / Clash Meta
mihomo adalah fork Clash dengan kemampuan yang lebih luas. Di bagian tproxy-port, tentukan port untuk penangkapan:
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
Perlindungan dari kebocoran DNS
Proksi transparan tanpa pengaturan DNS yang benar adalah kerentanan serius. Jika permintaan DNS dikirim langsung melalui penyedia, bukan melalui proksi, lokasi nyata terungkap, meskipun IP telah dipalsukan. Ini sangat penting untuk tugas di mana anonimitas atau penggantian geo diperlukan.
Metode 1: Menangkap DNS melalui TPROXY
Tambahkan aturan untuk menangkap lalu lintas UDP di port 53:
# Menangkap permintaan DNS dari perangkat jaringan
iptables -t mangle -A TPROXY_RULES -p udp --dport 53 \
-j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1
Metode 2: DNS melalui sing-box / mihomo
sing-box dan mihomo dapat menangani permintaan DNS sendiri dan mengirimkannya melalui proksi. Dalam konfigurasi sing-box, tambahkan bagian DNS:
"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
}
Metode 3: dnsmasq dengan upstream melalui proksi
Jika Anda tidak menggunakan sing-box/mihomo, atur dnsmasq (server DNS standar OpenWrt) agar meneruskan permintaan ke server DNS terenkripsi. Dalam file /etc/dnsmasq.conf:
# Menonaktifkan penggunaan DNS dari penyedia
no-resolv
# Menggunakan DoH/DoT melalui resolver lokal
server=127.0.0.1#5335
# Melarang perangkat menggunakan DNS eksternal secara langsung
# (aturan iptables untuk memblokir permintaan DNS langsung)
# iptables -t nat -A PREROUTING -p udp --dport 53 ! -d 192.168.1.1 -j DNAT --to 192.168.1.1
Pengujian dan debugging
Setelah pengaturan, pastikan untuk memeriksa apakah proksi transparan berfungsi dengan benar. Berikut adalah daftar periksa langkah demi langkah.
Langkah 1: Memeriksa aturan iptables
# Melihat rantai TPROXY_RULES
iptables -t mangle -L TPROXY_RULES -v -n
# Memeriksa tabel routing 100
ip rule show
ip route show table 100
Langkah 2: Memeriksa apakah klien proksi mendengarkan port
ss -tlnp | grep 7893
# atau
netstat -tlnp | grep 7893
Anda harus melihat proses sing-box, mihomo, atau redsocks yang mendengarkan di 127.0.0.1:7893.
Langkah 3: Memeriksa IP dari perangkat klien
Sambungkan ke router dari perangkat mana pun di jaringan dan buka di browser ifconfig.me atau 2ip.ru. IP yang ditampilkan harus sesuai dengan IP server proksi Anda, bukan dengan IP nyata penyedia.
Langkah 4: Memeriksa kebocoran DNS
Kunjungi dnsleaktest.com dan lakukan pengujian lanjutan. Server DNS dalam hasil harus milik penyedia proksi Anda atau server DoH yang dipilih, tetapi bukan penyedia internet Anda.
Masalah umum dan solusinya
| Gejala | Penyebab | Solusi |
|---|---|---|
| Internet tidak berfungsi sama sekali | Klien proksi tidak berjalan | Periksa status layanan, log klien |
| IP tidak berubah | Aturan iptables tidak diterapkan | Periksa iptables -t mangle -L -v |
| UDP tidak berfungsi | redsocks tidak mendukung UDP | Beralih ke sing-box atau mihomo |
| Lingkaran routing | Lalu lintas klien proksi juga ditangkap | Kecualikan UID atau cgroup klien proksi dari aturan |
| Kesalahan target TPROXY | Modul kernel tidak dimuat | modprobe xt_TPROXY |
Jenis proksi apa yang cocok untuk TPROXY di OpenWrt
Pemilihan jenis proksi sangat mempengaruhi hasil. Untuk proksi transparan di router, tidak semua opsi cocok โ penting untuk mempertimbangkan protokol, stabilitas koneksi, dan tugas.
Proksi SOCKS5
Opsi paling universal untuk TPROXY. Mendukung TCP dan UDP (dengan menggunakan sing-box/mihomo). Cocok untuk sebagian besar tugas: menghindari pemblokiran geo, penggantian IP untuk seluruh jaringan, bekerja dengan marketplace. Proksi data center dalam format SOCKS5 menawarkan kecepatan tinggi dan stabilitas โ pilihan optimal jika prioritasnya adalah kecepatan, bukan menyamarkan sebagai pengguna nyata.
Proksi Residensial
Proksi residensial menggunakan alamat IP dari pengguna rumah nyata. Saat diarahkan melalui TPROXY di router, ini berarti bahwa semua lalu lintas jaringan Anda akan terlihat seperti lalu lintas pengguna internet rumah biasa dari negara yang diinginkan. Ideal untuk:
- Memantau harga di marketplace luar negeri (Amazon, eBay, Zalando)
- Menguji iklan dari berbagai wilayah
- Bekerja dengan platform yang aktif memblokir IP dari data center
- Tugas yang memerlukan penyamaran maksimal sebagai pengguna nyata
Proksi Mobile
Proksi mobile bekerja melalui IP operator seluler (4G/5G). Mereka memiliki tingkat kepercayaan tertinggi dari platform โ Facebook, Instagram, TikTok jarang memblokir IP mobile, karena satu alamat dapat digunakan oleh ribuan pengguna nyata. Dengan menggunakan TPROXY di router, semua lalu lintas jaringan Anda mendapatkan IP mobile, yang sangat penting untuk:
- Arbitrase lalu lintas melalui Facebook Ads dan TikTok Ads
- Farming akun media sosial
- Bekerja dengan browser anti-detect (Dolphin Anty, AdsPower, GoLogin) melalui satu gerbang
| Jenis Proksi | Kecepatan | Kepercayaan Platform | Skenario Terbaik |
|---|---|---|---|
| Data Center | โก Tinggi | โ โ โโโ | Parsing, pemantauan harga |
| Residensial | โกโก Sedang | โ โ โ โ โ | Pengujian geo, e-commerce |
| Mobile | โก Sedang | โ โ โ โ โ | Media sosial, arbitrase lalu lintas |
Kesimpulan
Proksi transparan melalui TPROXY di OpenWrt adalah alat yang kuat untuk pengelolaan lalu lintas terpusat di seluruh jaringan. Keuntungan utama dari pendekatan ini: tidak perlu mengatur proksi di setiap perangkat secara terpisah, mendukung lalu lintas baik TCP maupun UDP, dan konfigurasi dapat dengan fleksibel disesuaikan untuk berbagai tugas โ dari penggunaan rumah hingga infrastruktur perusahaan.
Langkah-langkah kunci yang telah kita bahas: memeriksa dukungan TPROXY di kernel OpenWrt, menginstal paket yang diperlukan, mengatur aturan iptables/nftables dengan fwmark yang benar, konfigurasi klien proksi (redsocks, sing-box, atau mihomo) dan perlindungan dari kebocoran DNS. Setiap tahap ini penting โ melewatkan satu pun akan menyebabkan fungsi yang tidak benar atau kebocoran IP nyata.
Jika tugas Anda adalah mengarahkan lalu lintas seluruh jaringan melalui proksi dengan tingkat kepercayaan maksimum dari platform (Facebook, Instagram, TikTok, marketplace luar negeri), kami merekomendasikan untuk menggunakan proksi residensial โ mereka menyediakan IP rumah nyata dari negara yang diinginkan dan risiko pemblokiran minimal saat bekerja melalui proksi transparan di router.
```