Wireguard Android Always-On Fungerar Inte

Uppdatering: Jag hittade en ny inställning som har löst problemet hittills. Jag gick till “Hemskärm & Låsskärm → Senaste Aktivitets Hanterare” i Androids inställningar och markerade WireGuard så att den nu är låst. Jag använder OnePlus 9 Pro med Android 12, så platsen eller tillgängligheten för denna inställning kan variera. Jag kommer att uppdatera igen om problemet kvarstår.

Jag har en Wireguard-installation som är utformad för fjärråtkomst till hemmetjänster, med flera klienter anslutna hela tiden. Alla mina Windows- och Linux-klienter har inga problem att ansluta och förbli anslutna.

Mina Android-klienter däremot tenderar att koppla ifrån slumpmässigt. Jag använder Android 12, men detta var också ett problem i Android 11 på min OnePlus 9 Pro. Jag har “Always On” markerat i inställningarna och jag har bakgrundstillgång aktiverat i batteriinställningarna.

Jag förlorar all nätverksåtkomst när jag byter mellan wifi och data tills jag stänger av och sätter på VPN:et igen, detta kommer att fortsätta oavbrutet tills jag gör det. Jag får också slumpmässiga VPN-inkopplingar under dagen, igen direkt åtgärdade genom att slå på VPN:et igen.

När jag byter mellan nätverk förmodar jag att problemet beror på att det inte går att göra en DNS-upplösning för domännamnet för att återansluta. Jag antar att Android fortfarande tror att det är anslutet och försöker skicka upplösningarna till DNS-servern som definieras i Wireguard.

När det gäller de slumpmässiga kopplingarna är jag osäker på om jag missar någon inställning, men Android verkar helt enkelt inte respektera bakgrundstillgången för Wireguard. Jag tror att kopplingarna sker när telefonen har varit inaktiv ett tag och går i djup vila. Jag trodde att “Always On”-knappen skulle tvinga den att försöka igen när telefonen vaknar, men det gör den inte. Jag får bara en notifikation om att Always On VPN är frånkopplat och jag måste ansluta manuellt igen.

Wireguard körs i OPNsense, om det påverkar. VPN-anslutningen fungerar utan problem när den är igång.

Finns det något annat jag kan prova? Jag har dynamisk IP, därav hostnamnet istället för IP-adressen för peer. Varje gång jag manuellansluter finns inga problem, jag har aldrig misslyckats med att återansluta. Alla andra tjänster i hemmet fungerar och jag får aldrig varningar om att en gateway är nere eller liknande, så nätverksanslutningen verkar vara 100% uppe.

Jag gick igenom detta nyligen. Jag har det nu på ett tillförlitligt sätt, så wireguard förblir anslutet, utan att koppla ifrån hela tiden.

Saker du kan prova att kolla: Androidinställningarna för wireguard-appen – ställ in den på autostart utan batterigränser, eller andra liknande prioriteringsinställningar du kan hitta. Om det finns några systeminställningar för djupsömn (att stänga av wifi under sömn), kan du stänga av dem också.

Du kan också ställa in persistent-keepalives och köra “wg”-kommandot på wireguard-ändpunkten för att kontrollera om det får regelbundna handskakningar. Du kan prova att pinga telefonens LAN-adress när den kopplar ifrån för att säkerställa att wifi-radion på telefonen fortfarande är på.

Jag kommer att leka med persistent-keepalives om det blir nödvändigt.

Men jag hittade en ny inställning som verkade lösa problemet med slumpmässiga avkopplingar. Jag gick till “Hemskärm & Låsskärm → Senaste Aktivitets Hanterare” i inställningarna och aktiverade WireGuard så att den är låst. Återigen, detta är på OnePlus 9 Pro med Android 12, så inställningens plats eller existens kan variera.

Under de senaste 24 timmarna, med denna inställning aktiverad, har jag inte haft några avkopplingar.