Torna al blog

Proxy trasparente su router OpenWrt tramite TPROXY: guida completa alla configurazione per tutta la rete

La configurazione di un proxy trasparente tramite TPROXY su OpenWrt consente di instradare tutto il traffico di rete attraverso un server proxy senza configurazioni manuali su ciascun dispositivo.

📅6 giugno 2026
```html

Se desideri che tutto il traffico della tua rete passi attraverso un proxy — senza configurazioni manuali su ogni laptop, smartphone o server — un proxy trasparente su un router OpenWrt tramite il meccanismo TPROXY è proprio ciò di cui hai bisogno. In questa guida esamineremo la configurazione completa: dall'installazione dei pacchetti necessari, alle regole iptables e alla verifica del funzionamento.

Che cos'è TPROXY e a cosa serve

TPROXY (Transparent Proxy) è un meccanismo del kernel Linux che consente di intercettare il traffico TCP e UDP senza modificare l'indirizzo IP di destinazione nel pacchetto. A differenza del classico reindirizzamento NAT (REDIRECT), TPROXY mantiene l'indirizzo originale del destinatario, il che è fondamentale per il corretto funzionamento del client proxy: esso "vede" esattamente a cosa sta cercando di connettersi il dispositivo nella rete.

A cosa serve questo nella pratica? Immagina di avere un ufficio o un laboratorio domestico con decine di dispositivi — computer, smartphone, dispositivi IoT, macchine virtuali di test. Configurare manualmente il proxy su ognuno di essi richiede ore di lavoro e rappresenta un costante mal di testa ogni volta che si cambia server proxy. Un proxy trasparente sul router risolve il problema in modo centralizzato: tutto il traffico della rete passa automaticamente attraverso il proxy, e i dispositivi non se ne accorgono nemmeno.

Scenari tipici di utilizzo di TPROXY su OpenWrt:

  • Instradamento di tutto il traffico attraverso proxy residenziali o mobili per bypassare le geo-restrizioni
  • Monitoraggio e filtraggio centralizzati del traffico in una rete aziendale
  • Test di applicazioni tramite proxy da diverse regioni senza modificare le impostazioni sui client
  • Sostituzione automatica dell'IP per tutti i dispositivi connessi al router
  • Lavorare con browser anti-detect (Dolphin Anty, AdsPower, GoLogin) attraverso un unico gateway

Il principale vantaggio di TPROXY rispetto al normale REDIRECT: supporto UDP. Questo è importante per i protocolli moderni (QUIC, DNS su UDP, traffico di gioco), che REDIRECT non è in grado di gestire correttamente.

Come funziona un proxy trasparente in OpenWrt

Lo schema di funzionamento di TPROXY su OpenWrt è il seguente:

  1. Un dispositivo nella rete invia un pacchetto a un indirizzo IP esterno (ad esempio, 93.184.216.34:443).
  2. Il router intercetta il pacchetto con la regola iptables TPROXY già nella catena PREROUTING — prima di prendere una decisione di instradamento.
  3. Il pacchetto viene contrassegnato con un fwmark speciale e reindirizzato a un socket locale del client proxy (ad esempio, sulla porta 7893).
  4. Il client proxy (redsocks, Xray, sing-box) "vede" l'indirizzo originale di destinazione attraverso il meccanismo IP_TRANSPARENT e stabilisce una connessione attraverso il server proxy remoto.
  5. La risposta viene restituita al dispositivo — in modo trasparente, senza alcuna modifica da parte del client.

💡 Punto importante

TPROXY funziona solo nella catena PREROUTING della tabella mangle. Questo significa che viene intercettato solo il traffico di transito (da dispositivi della rete), ma non il traffico del router stesso. Per intercettare il traffico del router sarà necessaria una configurazione aggiuntiva tramite OUTPUT e instradamento tramite loopback.

Requisiti: router, firmware, pacchetti

Prima di iniziare la configurazione, assicurati che la tua configurazione soddisfi i requisiti minimi.

Requisiti per il router

Parametro Minimo Raccomandato
RAM 64 MB 256 MB o più
Flash / Storage 16 MB 128 MB o più
Architettura CPU MIPS, ARM ARM Cortex-A7/A53 e superiori
Versione OpenWrt 21.02 23.05 o snapshot
Kernel Linux 5.4 con TPROXY 5.15 / 6.1

Modelli ben collaudati per questo compito: GL.iNet GL-MT6000 (Flint 2), Xiaomi AX3000T, Banana Pi BPi-R3, Raspberry Pi 4 con OpenWrt, così come qualsiasi router x86 con una quantità sufficiente di RAM.

Verifica del supporto TPROXY nel kernel

Connettiti al router via SSH ed esegui:

zcat /proc/config.gz | grep TPROXY

Dovresti vedere la riga CONFIG_NETFILTER_XT_TARGET_TPROXY=y o =m. Se l'output è vuoto, il kernel non supporta TPROXY e sarà necessaria una ricompilazione o un cambio di firmware.

Installazione dei pacchetti necessari

Per far funzionare TPROXY su OpenWrt saranno necessari alcuni pacchetti. Connettiti via SSH e aggiorna l'elenco dei pacchetti:

opkg update

Installa i componenti necessari:

# Modulo del kernel per TPROXY
opkg install kmod-nft-tproxy

# Se utilizzi iptables (stack vecchio)
opkg install iptables-mod-tproxy

# Utilità ip rule / ip route
opkg install ip-full

# Aggiuntivo per lavorare con fwmark
opkg install kmod-ipt-tproxy

A seconda del client proxy scelto, installa uno dei seguenti pacchetti:

Client proxy Pacchetto OpenWrt Supporto TPROXY
redsocks redsocks TCP (UDP tramite redsocks2)
Xray-core xray-core TCP + UDP (nativo)
sing-box sing-box TCP + UDP (nativo)
mihomo (Clash Meta) mihomo TCP + UDP (nativo)

Per la maggior parte dei compiti, raccomandiamo sing-box o mihomo — supportano TPROXY in modo nativo, inclusi UDP, e hanno un formato di configurazione conveniente.

Configurazione delle regole iptables e ip rule

Questo è un passaggio chiave. Dobbiamo fare tre cose: contrassegnare i pacchetti necessari con fwmark, configurare una tabella di instradamento speciale e aggiungere una regola TPROXY in iptables.

Passo 1: Creiamo la tabella di instradamento

# Aggiungiamo un percorso speciale: i pacchetti contrassegnati vanno su loopback
ip rule add fwmark 1 table 100
ip route add local default dev lo table 100

Questo dice al kernel: "tutti i pacchetti con il contrassegno fwmark=1 considera locali e consegna su loopback". In questo modo il client proxy avrà la possibilità di riceverli attraverso il proprio socket.

Passo 2: Regole iptables (mangle/PREROUTING)

# Creiamo una catena per TPROXY
iptables -t mangle -N TPROXY_RULES

# Escludiamo gli indirizzi locali (non li proxy)
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

# Reindirizziamo TCP sulla porta del client proxy (7893)
iptables -t mangle -A TPROXY_RULES -p tcp \
  -j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1

# Reindirizziamo UDP sulla porta del client proxy (7893)
iptables -t mangle -A TPROXY_RULES -p udp \
  -j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1

# Applichiamo la catena al traffico di transito
iptables -t mangle -A PREROUTING -j TPROXY_RULES

📌 Porta 7893

La porta 7893 è la porta sulla quale il client proxy (sing-box, mihomo, Xray) ascolta in modalità tproxy. Assicurati che corrisponda alle impostazioni del tuo client.

Passo 3: Salvataggio delle regole al riavvio

Crea uno script di avvio automatico in /etc/init.d/tproxy o aggiungi i comandi in /etc/rc.local. Per OpenWrt 23.05 con nftables invece di iptables, utilizza regole simili nella sintassi 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

Configurazione del client proxy: redsocks, Xray, sing-box

Il client proxy sul router è un programma che riceve il traffico intercettato e lo invia attraverso un server proxy remoto. Esaminiamo la configurazione per le opzioni più popolari.

Opzione 1: redsocks (semplice, solo TCP)

Adatto per compiti di base con un proxy SOCKS5. Il file di configurazione /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;

    // Indirizzo del tuo proxy SOCKS5
    ip = 185.220.101.50;
    port = 1080;
    type = socks5;

    // Se il proxy richiede autenticazione:
    login = "your_login";
    password = "your_password";
}

Opzione 2: sing-box (raccomandato — TCP + UDP)

sing-box supporta TPROXY in modo nativo e funziona con la maggior parte dei tipi di proxy: SOCKS5, HTTP, Shadowsocks, VLESS, Trojan. Ecco un esempio di configurazione /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"
  }
}

Avvia sing-box e aggiungilo all'avvio automatico:

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

Opzione 3: mihomo / Clash Meta

mihomo è un fork di Clash con funzionalità avanzate. Nella sezione tproxy-port specifica la porta per l'intercettazione:

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

Protezione dalle perdite DNS

Un proxy trasparente senza una corretta configurazione DNS rappresenta una seria vulnerabilità. Se le richieste DNS vengono inviate direttamente tramite il provider, e non tramite il proxy, la posizione reale viene rivelata, nonostante la sostituzione dell'IP. Questo è critico per compiti in cui l'anonimato o la sostituzione geografica sono importanti.

Metodo 1: Intercettazione DNS tramite TPROXY

Aggiungi una regola per intercettare il traffico UDP sulla porta 53:

# Intercettiamo le richieste DNS dai dispositivi della rete
iptables -t mangle -A TPROXY_RULES -p udp --dport 53 \
  -j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1

Metodo 2: DNS tramite sing-box / mihomo

sing-box e mihomo possono gestire autonomamente le richieste DNS e inviarle tramite il proxy. Nella configurazione di sing-box, aggiungi la sezione 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
}

Metodo 3: dnsmasq con upstream tramite proxy

Se non utilizzi sing-box/mihomo, configura dnsmasq (il server DNS standard di OpenWrt) in modo che inoltri le richieste a un server DNS crittografato. Nel file /etc/dnsmasq.conf:

# Disabilitiamo l'uso del DNS del provider
no-resolv

# Utilizziamo DoH/DoT tramite un resolver locale
server=127.0.0.1#5335

# Impediamo ai dispositivi di utilizzare DNS esterni direttamente
# (regola iptables per bloccare richieste DNS dirette)
# iptables -t nat -A PREROUTING -p udp --dport 53 ! -d 192.168.1.1 -j DNAT --to 192.168.1.1

Verifica e debug

Dopo la configurazione, assicurati di controllare il corretto funzionamento del proxy trasparente. Ecco un elenco di controllo passo-passo.

Passo 1: Verifica delle regole iptables

# Controlliamo la catena TPROXY_RULES
iptables -t mangle -L TPROXY_RULES -v -n

# Verifichiamo la tabella di instradamento 100
ip rule show
ip route show table 100

Passo 2: Verifica che il client proxy ascolti sulla porta

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

Dovresti vedere il processo sing-box, mihomo o redsocks che ascolta su 127.0.0.1:7893.

Passo 3: Verifica l'IP dal dispositivo client

Connettiti al router da qualsiasi dispositivo nella rete e apri nel browser ifconfig.me o 2ip.ru. L'IP visualizzato dovrebbe corrispondere all'IP del tuo server proxy, e non all'IP reale del provider.

Passo 4: Verifica delle perdite DNS

Vai su dnsleaktest.com e esegui un test avanzato. I server DNS nei risultati dovrebbero appartenere al tuo provider proxy o al server DoH scelto, ma non al tuo provider internet.

Problemi comuni e le loro soluzioni

Sintomo Causa Soluzione
Internet non funziona affatto Client proxy non avviato Controlla lo stato del servizio, i log del client
IP non cambia Le regole iptables non sono state applicate Controlla iptables -t mangle -L -v
UDP non funziona redsocks non supporta UDP Passa a sing-box o mihomo
Ciclo di instradamento Il traffico del client proxy viene anch'esso intercettato Escludi UID o cgroup del client proxy dalle regole
Errore TPROXY target Modulo del kernel non caricato modprobe xt_TPROXY

Quale tipo di proxy è adatto per TPROXY su OpenWrt

La scelta del tipo di proxy influisce criticamente sul risultato. Non tutte le opzioni sono adatte per un proxy trasparente sul router — è importante considerare il protocollo, la stabilità della connessione e il compito.

Proxy SOCKS5

L'opzione più universale per TPROXY. Supporta TCP e UDP (quando si utilizza sing-box/mihomo). Adatta per la maggior parte dei compiti: bypass delle geo-restrizioni, sostituzione dell'IP per l'intera rete, lavoro con marketplace. I proxy dei data center in formato SOCKS5 garantiscono alta velocità e stabilità — la scelta ottimale se la priorità è la velocità, non la mascheratura come un utente reale.

Proxy residenziali

I proxy residenziali utilizzano indirizzi IP di veri utenti domestici. Quando si instrada tramite TPROXY sul router, ciò significa che tutto il traffico della tua rete apparirà come traffico di un normale utente internet domestico del paese desiderato. Ideale per:

  • Monitoraggio dei prezzi su marketplace esteri (Amazon, eBay, Zalando)
  • Test di annunci pubblicitari da diverse regioni
  • Lavoro con piattaforme che bloccano attivamente gli IP dei data center
  • Compiti in cui è richiesta la massima mascheratura come un utente reale

Proxy mobili

I proxy mobili operano tramite gli IP degli operatori di telefonia mobile (4G/5G). Hanno il più alto livello di fiducia da parte delle piattaforme — Facebook, Instagram, TikTok bloccano raramente gli IP mobili, poiché dietro un indirizzo possono esserci migliaia di utenti reali. Utilizzando tramite TPROXY sul router, tutto il traffico della tua rete ottiene un IP mobile, il che è critico per:

  • Arbitraggio del traffico tramite Facebook Ads e TikTok Ads
  • Creazione di account sui social media
  • Lavoro con browser anti-detect (Dolphin Anty, AdsPower, GoLogin) attraverso un unico gateway
Tipo di proxy Velocità Fiducia delle piattaforme Miglior scenario
Data center ⚡ Alta ★★☆☆☆ Parsing, monitoraggio dei prezzi
Residenziali ⚡⚡ Media ★★★★☆ Geo-testing, e-commerce
Mobili ⚡ Media ★★★★★ Social media, arbitraggio del traffico

Conclusione

Un proxy trasparente tramite TPROXY su OpenWrt è uno strumento potente per la gestione centralizzata del traffico dell'intera rete. I principali vantaggi di questo approccio: non è necessario configurare il proxy su ogni dispositivo separatamente, supporta sia il traffico TCP che UDP, e la configurazione è flessibile e scalabile per qualsiasi compito — dall'uso domestico all'infrastruttura aziendale.

I passaggi chiave che abbiamo esaminato: verifica del supporto TPROXY nel kernel di OpenWrt, installazione dei pacchetti necessari, configurazione delle regole iptables/nftables con il corretto fwmark, configurazione del client proxy (redsocks, sing-box o mihomo) e protezione dalle perdite DNS. Ognuno di questi passaggi è importante — saltarne uno porterà a un funzionamento errato o a perdite dell'IP reale.

Se il tuo obiettivo è instradare tramite proxy il traffico dell'intera rete con il massimo livello di fiducia da parte delle piattaforme (Facebook, Instagram, TikTok, marketplace esteri), ti raccomandiamo di utilizzare proxy residenziali — forniscono veri IP domestici dal paese desiderato e un rischio minimo di blocchi quando si lavora tramite un proxy trasparente sul router.

```