Jag tror att jag kan ha hittat anledningen till varför Adguard är så långsamt på Android med VPN-läge

Jag upptäckte att Adguard som standard sätter MTU-storleken till 9000 för VPN-tunneln. De flesta Android-enheter stöder inte jumbo-ramar, så att ställa in den på 9000 kommer att sakta ner internethastigheten eftersom paketet måste delas upp i mindre storlekar. Genom att ändra MTU till 1500 är hastigheten mycket mer stabil och snabbare. Dessutom verkar det som att inaktivering av automation förbättrar prestandan också.

Ändra MTU i Inställningar → Avancerat → Låg nivå → pref.vpn.tun.mtu

En annan person på Adguard-forumet har också upptäckt detta problem
https://forum.adguard.com/index.php?threads/webpage-performance-down-70.27865/

Här är en snabb förklaring till varför det fungerar så.

Som ni alla vet är AdGuard inte en riktig VPN. Här är vad det gör:

  1. Det skapar en VPN-tunnel utan en fjärrändpunkt.
  2. All din nätverkstrafik riktas in i den tunneln.
  3. AdGuard läser varje IP-paket, dissekerar det, ansluter till servern som detta IP-paket skulle ha skickats till, och modifierar inkommande och utgående paket på vägen (blockerar förfrågningar, etc).
  4. Modifiering innebär att AdGuard konsekvent bör ändra egenskaperna för varje IP-paket så att de matchar varandra. Det är inte så att vi bara skickar om paketen, det skulle vara omöjligt.

MTU styr storleken på de paket som operativsystemet använder för paketen som styrs in i VPN-tunneln. Ju större storlek, desto färre paket behöver vi modifiera.

För länge sedan, när AdGuard använde en TCP/IP-stack skriven i Java, spelade antalet paket verkligen roll, och att använda högre MTU-värden förbättrade prestandan. Numera är vår TCP/IP-stack helt omskriven och mycket mer presterande, så det spelar ingen roll, det gör ingen skillnad vilken MTU-storlek du väljer.

Observera att AdGuard skapar en ny riktig förbindelse för varje lokal avlyssnad förbindelse. Denna riktiga förbindelse använder MTU-storleken för din Wi-Fi/mobilanslutning. Den som är konfigurerad i pref.vpn.tun.mtu är enbart för den lokala VPN-tunneln.

Hur som helst har jag aldrig stött på ett fall där att ändra MTU verkligen spelade någon roll. /u/Laitinlok, kan du svara på några frågor?

  1. Vilken enhet använder du? Android-version?
  2. Vad är skillnaden i hastighetstestresultat mellan standard-MTU och 1500?