Richtig, Capitive-Check Leak ist bekannt und mit GOS ja nicht das große Problem.
Das mit NetGuard ist ja aber mal hochinteressant. Deine Recherche ist plausibel nachvollziehbar und erklärt auch den beschriebenen Workaround. Schon mal DANKE dafür !
Was mich jetzt allerdings ziemlich perplex macht ist, wenn dem NG-Entwickler das Thema (mindestens) seit Anfang 2021 bekannt ist (Deine Anfrage bei XDA) aber dann gemäß dem Blogeintrag ein Jahr später das zu lesen ist
Nach einem Austausch mit Marcel konnte das Problem dann eingegrenzt werden. Es betrifft GrapheneOS, vermutlich aber auch andere Android Custom-ROMs bzw. Android-Versionen. […] Fakt ist: GrapheneOS routet DNS-Anfragen teilweise am VPN vorbei.
Den kurzzeitige Fallback werde ich mal bei Gelegenheit testen - ebenso ob dies auch bei Verwendung von Portforwarding passiert.
>>>>> NACHTRAG 12.10.2023 <<<<<
Zumindest meine Frage b) konnte ich nach Analyse des NG-Quelltextes und praktischer Nachstellung für mich zufriedenstellend beantworten:
Wenn beide Felder sinnvoll mit IPs gefüllt sind (auch identisch), benutzt NG ausschließlich diese Angaben für DNS-Anfragen. Bei „sinnvoll“ ist zu beachten, dass es sich nicht um loopback (127.0.0.1) oder wildcard (0.0.0.0) handeln darf. Ob die Adresse tatsächlich existiert oder erreichbar ist, ist dabei nicht relevant. DNS funktioniert dann halt nur nicht - das kann aber für gewisse Anwendungsfälle auch nützlich sein.
Erst wenn o.g. Bedingungen nicht erfüllt sind, kann das Dilemma seinen Weg nehmen:
- Der/die vom System (über die aktuell aktive Netzwerkverbindung) definierte/n DNS wird/werden zur DNS-Liste hinzugenommen.
- Wenn die Funktion „LAN-Zugriff erlauben“ eingeschaltet ist, werden DNS innerhalb des aktuell verbundenen Netzwerks aus der DNS-Liste entfernt !
- Wenn unter 2) mindestens ein DNS entfernt wurde oder in Summe keiner mehr übrig blieb, werden die Google-Server (NG default) zur DNS-Liste hinzugefügt !
Solange beide Felder „richtig“ gefüllt waren, ist es mir nicht gelungen, seitens NG irgendwie einen Fallback auf Google (oder sonstwo hin) zu provozieren.
Bzgl. Thema „Fallback bei GOS“ konnte ich lediglich feststellen, dass bei der manuellen Einrichtung einer WiFi-Verbindung die Angabe mindestens eines DNS zwingend erforderlich ist und hier Cloudflare (1.0.0.1) voreingestellt wird. D.h. ändert man dies nicht bewusst, wird dies auch übernommen.
Zum eigentlichen Thema des „Leaks“ von Android/GOS bin ich aber leider nicht weiter gekommen. Solange NG auch mit „falscher“ DNS-Einstellung läuft, konnte ich hier auch bei wildestem hin- und her, aus- und einschalten von Netzwerken keine Daten von in NG geblockten Domains laden. Das wäre super, wenn @kuketzblog hier noch mal einen Hinweis geben könnte, wie sich die beobachtete Situation konkret darstellte und wie sich das zum testen ggfs. nachstellen ließe.