Zurück zum Blog

Transparente Proxy auf OpenWrt-Router mit TPROXY: Vollständige Einrichtung für das gesamte Netzwerk

Die Konfiguration eines transparenten Proxys über TPROXY auf OpenWrt ermöglicht es, den gesamten Netzwerkverkehr über einen Proxy-Server zu leiten, ohne dass eine manuelle Einrichtung auf jedem Gerät erforderlich ist.

📅6. Juni 2026
```html

Wenn Sie möchten, dass der gesamte Verkehr Ihres Netzwerks über einen Proxy geleitet wird — ohne manuelle Konfiguration auf jedem Laptop, Smartphone oder Server — ist ein transparenter Proxy auf dem OpenWrt-Router über den TPROXY-Mechanismus genau das Richtige. In diesem Leitfaden werden wir die vollständige Konfiguration durchgehen: von der Installation der erforderlichen Pakete bis hin zu iptables-Regeln und der Überprüfung der Funktionalität.

Was ist TPROXY und wofür wird es benötigt

TPROXY (Transparent Proxy) ist ein Mechanismus des Linux-Kernels, der es ermöglicht, TCP- und UDP-Verkehr abzufangen, ohne die Ziel-IP-Adresse im Paket zu ändern. Im Gegensatz zur klassischen NAT-Umleitung (REDIRECT) behält TPROXY die ursprüngliche Adresse des Empfängers bei, was für das korrekte Funktionieren des Proxy-Clients von entscheidender Bedeutung ist: Er "sieht", wohin genau das Gerät im Netzwerk zu verbinden versucht.

Warum ist das in der Praxis wichtig? Stellen Sie sich vor: Sie haben ein Büro oder ein Heimlabor mit Dutzenden von Geräten — Computer, Smartphones, IoT-Geräte, Test-VMs. Den Proxy manuell auf jedem einzelnen einzurichten, kostet Stunden und ist eine ständige Kopfschmerzquelle bei der Änderung des Proxy-Servers. Ein transparenter Proxy auf dem Router löst das Problem zentral: Der gesamte Netzwerkverkehr wird automatisch über den Proxy geleitet, und die Geräte ahnen nichts davon.

Typische Anwendungsszenarien für TPROXY auf OpenWrt:

  • Routen des gesamten Verkehrs über residentielle oder mobile Proxys zur Umgehung von Geo-Blockaden
  • Zentralisierte Überwachung und Filterung des Verkehrs im Unternehmensnetzwerk
  • Testen von Anwendungen über Proxys aus verschiedenen Regionen, ohne die Einstellungen auf den Client-Maschinen zu ändern
  • Automatische IP-Änderung für alle Geräte, die mit dem Router verbunden sind
  • Arbeiten mit Anti-Detect-Browsern (Dolphin Anty, AdsPower, GoLogin) über ein einziges Gateway

Der Hauptvorteil von TPROXY gegenüber dem normalen REDIRECT: Unterstützung für UDP. Dies ist wichtig für moderne Protokolle (QUIC, DNS über UDP, Spielverkehr), die REDIRECT einfach nicht korrekt verarbeiten kann.

Wie funktioniert ein transparenter Proxy in OpenWrt

Das Schema für die Funktionsweise von TPROXY auf OpenWrt sieht folgendermaßen aus:

  1. Ein Gerät im Netzwerk sendet ein Paket an eine externe IP-Adresse (z. B. 93.184.216.34:443).
  2. Der Router fängt das Paket mit der Regel iptables TPROXY bereits in der PREROUTING-Kette ab — bevor eine Entscheidung über die Weiterleitung getroffen wird.
  3. Das Paket wird mit einem speziellen fwmark markiert und an den lokalen Socket des Proxy-Clients (z. B. Port 7893) umgeleitet.
  4. Der Proxy-Client (redsocks, Xray, sing-box) "sieht" die ursprüngliche Zieladresse über den Mechanismus IP_TRANSPARENT und stellt eine Verbindung über den entfernten Proxy-Server her.
  5. Die Antwort wird zurück an das Gerät gesendet — transparent, ohne Änderungen auf der Client-Seite.

💡 Wichtiger Punkt

TPROXY funktioniert nur in der PREROUTING-Kette der mangle-Tabelle. Das bedeutet, dass nur Transitverkehr (von Geräten im Netzwerk) abgefangen wird, nicht der Verkehr des Routers selbst. Um den Verkehr des Routers abzufangen, ist eine zusätzliche Konfiguration über OUTPUT und Routing über Loopback erforderlich.

Anforderungen: Router, Firmware, Pakete

Bevor Sie mit der Konfiguration beginnen, stellen Sie sicher, dass Ihre Konfiguration den Mindestanforderungen entspricht.

Anforderungen an den Router

Parameter Minimum Empfohlen
RAM 64 MB 256 MB oder mehr
Flash / Speicher 16 MB 128 MB oder mehr
CPU-Architektur MIPS, ARM ARM Cortex-A7/A53 und höher
OpenWrt-Version 21.02 23.05 oder Snapshot
Linux-Kernel 5.4 mit TPROXY 5.15 / 6.1

Bewährte Modelle für diese Aufgabe: GL.iNet GL-MT6000 (Flint 2), Xiaomi AX3000T, Banana Pi BPi-R3, Raspberry Pi 4 mit OpenWrt sowie jeder x86-Router mit ausreichendem RAM.

Überprüfung der TPROXY-Unterstützung im Kernel

Verbinden Sie sich per SSH mit dem Router und führen Sie aus:

zcat /proc/config.gz | grep TPROXY

Sie sollten die Zeile CONFIG_NETFILTER_XT_TARGET_TPROXY=y oder =m sehen. Wenn die Ausgabe leer ist, unterstützt der Kernel TPROXY nicht, und es ist eine Neukompilierung oder ein Firmware-Wechsel erforderlich.

Installation der erforderlichen Pakete

Für die Funktion von TPROXY auf OpenWrt sind mehrere Pakete erforderlich. Verbinden Sie sich per SSH und aktualisieren Sie die Paketliste:

opkg update

Installieren Sie die erforderlichen Komponenten:

# Kernel-Modul für TPROXY
opkg install kmod-nft-tproxy

# Wenn Sie iptables verwenden (alter Stack)
opkg install iptables-mod-tproxy

# ip rule / ip route Utilities
opkg install ip-full

# Zusätzlich für die Arbeit mit fwmark
opkg install kmod-ipt-tproxy

Je nach gewähltem Proxy-Client installieren Sie eines der folgenden Pakete:

Proxy-Client OpenWrt-Paket TPROXY-Unterstützung
redsocks redsocks TCP (UDP über redsocks2)
Xray-core xray-core TCP + UDP (nativ)
sing-box sing-box TCP + UDP (nativ)
mihomo (Clash Meta) mihomo TCP + UDP (nativ)

Für die meisten Aufgaben empfehlen wir sing-box oder mihomo — sie unterstützen TPROXY nativ, einschließlich UDP, und haben ein benutzerfreundliches Konfigurationsformat.

Konfiguration der iptables- und ip-Regeln

Dies ist ein entscheidender Schritt. Wir müssen drei Dinge tun: die erforderlichen Pakete mit fwmark kennzeichnen, eine spezielle Routing-Tabelle einrichten und eine TPROXY-Regel in iptables hinzufügen.

Schritt 1: Erstellen einer Routing-Tabelle

# Fügen Sie eine spezielle Route hinzu: markierte Pakete gehen an Loopback
ip rule add fwmark 1 table 100
ip route add local default dev lo table 100

Dies sagt dem Kernel: „Alle Pakete mit der Markierung fwmark=1 betrachte als lokal und liefere sie an Loopback“. So kann der Proxy-Client sie über seinen Socket empfangen.

Schritt 2: iptables-Regeln (mangle/PREROUTING)

# Erstellen einer Kette für TPROXY
iptables -t mangle -N TPROXY_RULES

# Lokale Adressen ausschließen (nicht proxifizieren)
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

# Leiten Sie TCP an den Port des Proxy-Clients (7893) um
iptables -t mangle -A TPROXY_RULES -p tcp \
  -j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1

# Leiten Sie UDP an den Port des Proxy-Clients (7893) um
iptables -t mangle -A TPROXY_RULES -p udp \
  -j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1

# Wenden Sie die Kette auf den Transitverkehr an
iptables -t mangle -A PREROUTING -j TPROXY_RULES

📌 Port 7893

Der Port 7893 ist der Port, an dem der Proxy-Client (sing-box, mihomo, Xray) im TPROXY-Modus lauscht. Stellen Sie sicher, dass er mit den Einstellungen Ihres Clients übereinstimmt.

Schritt 3: Regeln beim Neustart speichern

Erstellen Sie ein Autostart-Skript in /etc/init.d/tproxy oder fügen Sie die Befehle in /etc/rc.local ein. Für OpenWrt 23.05 mit nftables anstelle von iptables verwenden Sie ähnliche Regeln im nft-Syntax:

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

Konfiguration des Proxy-Clients: redsocks, Xray, sing-box

Der Proxy-Client auf dem Router ist ein Programm, das den abgefangenen Verkehr annimmt und über einen entfernten Proxy-Server sendet. Lassen Sie uns die Konfiguration für die beliebtesten Optionen betrachten.

Option 1: redsocks (einfach, nur TCP)

Geeignet für grundlegende Aufgaben mit SOCKS5-Proxys. Die Konfigurationsdatei /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;

    // Adresse Ihres SOCKS5-Proxys
    ip = 185.220.101.50;
    port = 1080;
    type = socks5;

    // Wenn der Proxy Authentifizierung erfordert:
    login = "your_login";
    password = "your_password";
}

Option 2: sing-box (empfohlen — TCP + UDP)

sing-box unterstützt TPROXY nativ und arbeitet mit den meisten Proxy-Typen: SOCKS5, HTTP, Shadowsocks, VLESS, Trojan. Beispielkonfiguration /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"
  }
}

Starten Sie sing-box und fügen Sie es zum Autostart hinzu:

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

Option 3: mihomo / Clash Meta

mihomo ist ein Fork von Clash mit erweiterten Funktionen. Geben Sie im Abschnitt tproxy-port den Port für die Abfangung an:

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

Schutz vor DNS-Leaks

Ein transparenter Proxy ohne die richtige DNS-Konfiguration ist eine ernsthafte Sicherheitsanfälligkeit. Wenn DNS-Anfragen direkt über den Anbieter und nicht über den Proxy gesendet werden, wird der tatsächliche Standort offengelegt, trotz der IP-Verschleierung. Dies ist kritisch für Aufgaben, bei denen Anonymität oder Geo-Verschleierung wichtig sind.

Methode 1: DNS-Abfangung über TPROXY

Fügen Sie eine Regel zum Abfangen von UDP-Verkehr auf Port 53 hinzu:

# Abfangen von DNS-Anfragen von Geräten im Netzwerk
iptables -t mangle -A TPROXY_RULES -p udp --dport 53 \
  -j TPROXY --on-port 7893 --on-ip 127.0.0.1 --tproxy-mark 1

Methode 2: DNS über sing-box / mihomo

sing-box und mihomo können DNS-Anfragen selbst verarbeiten und über den Proxy senden. Fügen Sie im sing-box-Config-Bereich die DNS-Sektion hinzu:

"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
}

Methode 3: dnsmasq mit Upstream über Proxy

Wenn Sie sing-box/mihomo nicht verwenden, konfigurieren Sie dnsmasq (den Standard-DNS-Server von OpenWrt) so, dass er Anfragen an einen verschlüsselten DNS-Server weiterleitet. In der Datei /etc/dnsmasq.conf:

# Deaktivieren der Verwendung von DNS vom Anbieter
no-resolv

# Verwenden Sie DoH/DoT über den lokalen Resolver
server=127.0.0.1#5335

# Verhindern Sie, dass Geräte direkt externes DNS verwenden
# (iptables-Regel zum Blockieren direkter DNS-Anfragen)
# iptables -t nat -A PREROUTING -p udp --dport 53 ! -d 192.168.1.1 -j DNAT --to 192.168.1.1

Überprüfung und Debugging

Nach der Konfiguration sollten Sie unbedingt die korrekte Funktion des transparenten Proxys überprüfen. Hier ist eine Schritt-für-Schritt-Checkliste.

Schritt 1: Überprüfung der iptables-Regeln

# Anzeigen der Kette TPROXY_RULES
iptables -t mangle -L TPROXY_RULES -v -n

# Überprüfen der Routing-Tabelle 100
ip rule show
ip route show table 100

Schritt 2: Überprüfen, ob der Proxy-Client den Port abhört

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

Sie sollten den Prozess sing-box, mihomo oder redsocks sehen, der auf 127.0.0.1:7893 lauscht.

Schritt 3: Überprüfung der IP von einem Client-Gerät

Verbinden Sie sich mit dem Router von einem beliebigen Gerät im Netzwerk und öffnen Sie im Browser ifconfig.me oder 2ip.ru. Die angezeigte IP sollte mit der IP Ihres Proxy-Servers übereinstimmen und nicht mit der tatsächlichen IP des Anbieters.

Schritt 4: Überprüfung auf DNS-Leaks

Gehen Sie zu dnsleaktest.com und führen Sie einen erweiterten Test durch. Die DNS-Server in den Ergebnissen sollten zu Ihrem Proxy-Anbieter oder dem ausgewählten DoH-Server gehören, jedoch nicht zu Ihrem Internetanbieter.

Typische Probleme und deren Lösungen

Symptom Ursache Lösung
Internet funktioniert überhaupt nicht Proxy-Client läuft nicht Überprüfen Sie den Dienststatus, die Client-Logs
IP ändert sich nicht iptables-Regeln wurden nicht angewendet Überprüfen Sie iptables -t mangle -L -v
UDP funktioniert nicht redsocks unterstützt kein UDP Wechseln Sie zu sing-box oder mihomo
Routing-Schleife Der Verkehr des Proxy-Clients wird ebenfalls abgefangen Schließen Sie UID oder cgroup des Proxy-Clients von den Regeln aus
TPROXY-Ziel Fehler Kernel-Modul nicht geladen modprobe xt_TPROXY

Welcher Proxy-Typ eignet sich für TPROXY auf OpenWrt

Die Wahl des Proxy-Typs hat entscheidenden Einfluss auf das Ergebnis. Für einen transparenten Proxy auf dem Router sind nicht alle Optionen geeignet — es ist wichtig, das Protokoll, die Stabilität der Verbindung und die Aufgabe zu berücksichtigen.

SOCKS5-Proxy

Die vielseitigste Option für TPROXY. Unterstützt TCP und UDP (bei Verwendung von sing-box/mihomo). Geeignet für die meisten Aufgaben: Umgehung von Geo-Blockaden, IP-Verschleierung für das gesamte Netzwerk, Arbeiten mit Marktplätzen. Rechenzentrums-Proxys im SOCKS5-Format bieten hohe Geschwindigkeit und Stabilität — die optimale Wahl, wenn Geschwindigkeit Priorität hat und nicht die Maskierung als echter Benutzer.

Residentielle Proxys

Residentielle Proxys verwenden IP-Adressen realer Haushaltsbenutzer. Bei der Weiterleitung über TPROXY auf dem Router bedeutet dies, dass der gesamte Verkehr Ihres Netzwerks wie der Verkehr eines normalen Haushalts-Internetnutzers aus dem gewünschten Land aussieht. Ideal für:

  • Überwachung von Preisen auf ausländischen Marktplätzen (Amazon, eBay, Zalando)
  • Testen von Werbeanzeigen aus verschiedenen Regionen
  • Arbeiten mit Plattformen, die aktiv IPs von Rechenzentren blockieren
  • Aufgaben, bei denen maximale Maskierung als echter Benutzer erforderlich ist

Mobile Proxys

Mobile Proxys arbeiten über die IPs von Mobilfunkanbietern (4G/5G). Sie genießen das höchste Vertrauen von Plattformen — Facebook, Instagram, TikTok blockieren mobile IPs äußerst selten, da hinter einer Adresse Tausende von echten Benutzern stehen können. Bei Verwendung über TPROXY auf dem Router erhält der gesamte Verkehr Ihres Netzwerks eine mobile IP, was entscheidend ist für:

  • Traffic-Arbitrage über Facebook Ads und TikTok Ads
  • Erstellung von Social-Media-Konten
  • Arbeiten mit Anti-Detect-Browsern (Dolphin Anty, AdsPower, GoLogin) über ein einziges Gateway
Proxy-Typ Geschwindigkeit Vertrauen der Plattformen Bester Anwendungsfall
Rechenzentrum ⚡ Hoch ★★☆☆☆ Scraping, Preisüberwachung
Residentielle ⚡⚡ Mittel ★★★★☆ Geo-Tests, E-Commerce
Mobile ⚡ Mittel ★★★★★ Soziale Netzwerke, Traffic-Arbitrage

Fazit

Ein transparenter Proxy über TPROXY auf OpenWrt ist ein leistungsstarkes Werkzeug zur zentralen Verwaltung des Verkehrs im gesamten Netzwerk. Die Hauptvorteile dieses Ansatzes: Es ist nicht erforderlich, den Proxy auf jedem Gerät einzeln zu konfigurieren, sowohl TCP- als auch UDP-Verkehr werden unterstützt, und die Konfiguration lässt sich flexibel an alle Anforderungen anpassen — vom Heimgebrauch bis zur Unternehmensinfrastruktur.

Die wichtigsten Schritte, die wir behandelt haben: Überprüfung der TPROXY-Unterstützung im OpenWrt-Kernel, Installation der erforderlichen Pakete, Konfiguration der iptables/nftables-Regeln mit dem richtigen fwmark, Konfiguration des Proxy-Clients (redsocks, sing-box oder mihomo) und Schutz vor DNS-Leaks. Jeder dieser Schritte ist wichtig — das Auslassen eines einzelnen kann zu einer fehlerhaften Funktion oder einer Offenlegung der echten IP führen.

Wenn Ihre Aufgabe darin besteht, den gesamten Netzwerkverkehr über einen Proxy mit maximalem Vertrauen von Plattformen (Facebook, Instagram, TikTok, ausländische Marktplätze) zu routen, empfehlen wir die Verwendung von residentiellen Proxys — sie bieten echte Haushalts-IP-Adressen aus dem gewünschten Land und minimieren das Risiko von Blockierungen bei der Verwendung eines transparenten Proxys auf dem Router.

```