Lack of UDP Support and Game Compatibility
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
- 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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Vauth/FoxyVPN
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
-
VPN DisconnectsAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
-
Auto-Connect on InternetApertaenhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Notification problemsAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
Tutte le issue di Vauth/FoxyVPN
Issue simili
-
Messages: Subscribe to the new communication websocket topicsForse già presa @krusche l’ha presa oggi. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
ls1intum/artemis-android#801 ·
I maintainer di solito rispondono entro 1 giorno
-
Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
keiyoushi/extensions-source#20362 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
enhancement good first issue
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
software-mansion/enriched-markdown#1084 ·
I maintainer di solito rispondono entro 2 giorni