Lokalen SOCKS-Proxy in Android-VPN-Clients verstecken – Erkennung umgehen
Beliebte VLESS-Clients unter Android lassen einen lokalen SOCKS-Proxy auf einem festen Port offen, sodass Apps die VPN erkennen und die externe IP des Servers ausmachen können. Tests mit Tools wie RKNHardering bestätigen das – selbst im Split-Tunneling-Modus sind TUN-Schnittstelle, Systemrouten, Paketlisten und der zugängliche Proxy sichtbar. Die Lösung? Dynamisch einen zufälligen Port und Authentifizierung für SOCKS5 erzeugen, die anderen Apps verwehrt bleibt.
So funktioniert die Erkennung – und wie man sie abwehrt
Apps scannen localhost nach offenen SOCKS-Ports. Standard-Clients (v2RayTun, v2rayNG, Hiddify) verstecken sie nicht, was zu Leaks führt. So umgehst du das:
- Bei jedem Start einen zufälligen Port erzeugen (z. B. 45478).
- Einmalige Zugangsdaten automatisch erstellen (z. B. upu6CHvvV:ZJC3GMDXKOLFdPKAfxBxrHiU).
- Den Proxy rein intern via tun2socks laufen lassen.
Das blockt Scans: Andere Apps kommen ohne Credentials nicht ran und finden die echte IP nicht.
Technische Umsetzung mit Xray und tun2socks
Xray-core bietet plattformübergreifende Binaries für VLESS/VMess. Für vollen TUN-Support tauschen wir Xrays natives Tunneling gegen tun2socks (statischer linux-arm64-Build) aus. Der Aufbau:
- Xray mit SOCKS5 auf zufälligem Port starten.
- tun2socks leitet Traffic vom TUN-File-Descriptor an den Proxy weiter.
- Ein Flutter + Kotlin + C++-Wrapper managt die Prozesse.
Um Android-10+-Einschränkungen (W^X-Verstöße) zu umgehen: Binaries als lib/*.so-Dateien packen.
Beispiel-Startlog:
[2026-04-12T09:44:46.641632] [INFO] VPN wird gestartet
[2026-04-12T09:44:46.641818] [INFO] Unterliegendes Netzwerk gesetzt: 176
[2026-04-12T09:44:46.641946] [INFO] nativeSetMaxFds-Ergebnis (Eltern): 0
[2026-04-12T09:44:46.643867] [INFO] TUN eingerichtet, dup fd=142
[2026-04-12T09:44:46.644004] [INFO] xray gestartet
[2026-04-12T09:44:46.644130] [INFO] tun2socks wird gestartet (nativ): /data/app/~~_xfukaXUtA4X7kd1BmB4UA==/com.teapodstream.teapodstream-zTL0GGuDWxPk8XDn0VkAiw==/lib/arm64/libtun2socks.so -device fd://142 -proxy socks5://upu6CHvvV:[email protected]:45478 -mtu 1500 -loglevel error -tcp-sndbuf 524288 -tcp-rcvbuf 524288 -tcp-auto-tuning
[2026-04-12T09:44:46.644247] [INFO] tun2socks gestartet (pid=28880)
[2026-04-12T09:44:46.644399] [INFO] VPN verbunden
tun2socks-Parameter: MTU 1500, TCP-Buffer 524288 Bytes, Auto-Tuning aktiviert. Der Prozess trackt die tun2socks-PID für sauberes Herunterfahren.
Client-Features
Die TeapodStream-Umsetzung deckt Kern-Use-Cases ab:
- Protokolle: VLESS, VMess, Trojan, Shadowsocks.
- Split-Tunneling: Apps vom VPN ausschließen.
- URL-Subscriptions mit Auto-Config-Updates.
- Dynamische Proxy-Authentifizierung.
Tests gegen Detektoren (aus dem Original-VLESS-Schwachstellen-Artikel und RKNHardering) zeigen keine SOCKS- oder IP-Leaks.
Wichtige Erkenntnisse
- Lokalen SOCKS mit zufälligen Ports und Credentials maskieren – das ist der Schlüssel gegen localhost-Scans.
- tun2socks + Xray liefert bombenfesten TUN-Support ohne native-Tunneling-Probleme.
- Binaries als .so-Dateien packen umgeht Android SELinux.
- Split-Tunneling versteckt nicht alle Spuren (TUN, Routen).
- Open-Source-Code lässt alles nachprüfen.
— Editorial Team
Noch keine Kommentare.