Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Lack of UDP Support and Game Compatibility

Aperta
#39 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
android, kotlin
Ambito
mobile, networking

Direzione di ricerca

Start by reading the Android VPN service and HTTP/2 tunnel implementation; the issue does not name their files or tests. Check how the current tunnel handles UDP, then determine which proposed approach fits the project. Done means UDP traffic and online games work through a documented routing or tunneling path; the issue proposes several substantial alternatives without choosing one.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

I am using FoxyVPN (v1.0.7) and I've noticed a critical issue with online gaming. While TCP traffic (like web browsing) works perfectly, online games fail to connect. I understand this is because the current HTTP/2 tunnel architecture primarily supports TCP and is not properly routing or encapsulating UDP packets.

To fix this and make the app suitable for gaming, please consider the following technical implementations:

  1. Implement UDP-over-TCP/HTTP2 Encapsulation (UDP Relay)

· Issue: The current tunnel drops UDP traffic, which is essential for online games (VoIP, multiplayer sessions).
· Solution: Please implement a mechanism to encapsulate UDP packets inside TCP/HTTP2 streams. (Similar to how udp2raw or V2Ray's mKCP/TCP transport handles UDP). If the edge server (Fastly) supports it, enable UDP Associate over SOCKS5.

  1. Add a Robust TUN Stack (tun2socks / gVisor)

· Issue: The current VPN interface (VpnService) does not properly capture and forward UDP packets to the proxy.
· Solution: Integrate a proper userspace network stack for Android like gVisor or tun2socks (using smoltcp or lwip). This ensures that UDP packets from the OS are correctly converted to SOCKS5 UDP datagrams or encapsulated into the HTTP/2 tunnel.

  1. Add "Routing Rules" (Bypass UDP or Specific IPs)

· Issue: When a game sends UDP packets, the app either drops them or sends them through a tunnel that doesn't support them, causing the game to hang or timeout.
· Solution: Add a routing engine (like the one in v2rayNG or NekoBox). Add an option to route all UDP traffic to direct (bypassing the VPN) by default, or allow users to add specific game server IP ranges to the direct routing table while TCP remains proxied.

  1. Fix MTU and Fragmentation Issues

· Issue: HTTP/2 tunneling adds overhead (headers, framing) to packets. The default MTU of 1480 might be too high for UDP, leading to packet fragmentation and dropping by the edge network (Fastly).
· Solution: Allow dynamic MTU adjustments or implement internal fragmentation for UDP packets before they enter the HTTP/2 tunnel.

  1. Granular Split Tunneling (Protocol-based)

· Issue: The current "Excluded apps" (Split Tunneling) completely removes the app from the VPN.
· Solution: Enhance split tunneling to allow protocol-based routing. For example, allow TCP traffic of a specific app to go through the VPN, but route its UDP traffic directly.

  1. Consider Core Replacement (sing-box / Xray-core)

· Suggestion: Instead of maintaining a custom HTTP/2 client, consider wrapping the app around sing-box or Xray-core. These cores have native, highly optimized support for UDP (via Full-Cone NAT), TUN mode, and complex routing rules out of the box.

Thank you for your hard work on this open-source project. I look forward to seeing these networking features implemented.

Lingua principale
Kotlin
Stelle
242
Fork
51
Merge medio
21m
PR unite (30g)
3

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Vauth/FoxyVPN

Tutte le issue di Vauth/FoxyVPN

Issue simili

Altre issue su Kotlin

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.