Um ícone de VPN verde é uma afirmação sobre algo, e a pergunta útil é sobre o quê. Em um celular pode refletir o túnel de um cliente, o transporte da rede atual ou uma única solicitação bem-sucedida a uma página interna. Essas observações vêm de fontes diferentes, atualizam-se em ritmos diferentes e podem discordar na mesma tela. Por isso um ícone pode parecer saudável enquanto o navegador à sua frente falha.

Defina o escopo antes de ler a cor, ou a cor responderá a uma pergunta que ninguém fez.

O ícone responde a uma pergunta mais estreita do que você pensa

Comece com um escopo declarado, como o navegador pessoal que usa o túnel pessoal aprovado. O túnel do perfil de trabalho não responde a essa pergunta para um app pessoal, e uma configuração de VPN por app pode excluir justamente o navegador que você está testando. Um cliente de filtragem local pode mostrar conectado enquanto não envia nada a um gateway remoto, porque o túnel dele termina no dispositivo.

No Android, os callbacks de rede por trás de um indicador relatam transportes e capacidades de uma rede. Um transporte VPN diz qual rede carrega o tráfego, não quais apps ou famílias de endereços o usam.

Construa a tabela de estados a partir da evidência

Três ou quatro estados bastam se cada um nomear a evidência por trás dele. As colunas abaixo partem do que pode ser observado e não da cor que você quer mostrar, o que impede que uma leitura antiga se torne uma afirmação de sucesso.

Signal actually observedWhat it establishesWhat remains open
Target client reports an established tunnelThat client believes its tunnel is up, within its own scopeOther apps, other profiles, other address families
Active network exposes a VPN transportSome tunnel carries the current networkWhich app it belongs to and where it exits
Probe to a private host returned fresh dataOne request reached one destination at one timeEverything the probe does not touch
Callbacks stopped or data is older than the refresh windowNothing current is knownAny statement about the tunnel state

A última linha é a que se descarta na prática. Um indicador que mantém o seu valor final quando a fonte morre relata a história como se fosse o presente, e os usuários leem isso como um estado vivo. Rotule esse caso como antigo ou desconhecido e escolha uma redação que não implique um túnel. Depois deixe o rótulo mudar assim que a fonte parar.

Verifique o que o dispositivo realmente relata

Uma luz física ou um widget deve ser guiado por uma observação suportada, não por um palpite sobre o último estado bom conhecido. Estes comandos do Android mostram o transporte e a configuração de conexão permanente da plataforma sem instalar nada.

adb shell dumpsys connectivity | grep -i -A4 vpn
adb shell settings get secure always_on_vpn_app
adb shell settings get secure always_on_vpn_lockdown
adb shell dumpsys netstats | head -40

As chaves de conexão permanente dizem se a plataforma está configurada para manter um túnel e bloquear o tráfego sem ele; não dizem que o túnel esteja saudável agora. Combine essa leitura de configuração com uma sonda nova antes de algo ser mostrado como conectado.

Se a observação não puder continuar, a tela deve poder dizer isso. Uma lâmpada ligada a uma automação que já não roda é pior que nenhuma lâmpada, porque afirma um estado que ninguém mede.

Mantenha o aviso separado da aplicação

Uma automação que percebe uma desconexão dispara depois do evento, então não pode ser a fronteira que impede um pacote de escapar durante a lacuna. Se o retorno direto precisar ser proibido, configure a política de bloqueio da plataforma e verifique-a desligando o túnel de propósito. O indicador relata; a política aplica.

Uma tarefa de aviso que desativa interfaces para forçar a conformidade também pode deixar o dispositivo fora da reconexão de que precisa, produzindo um ciclo em que o túnel nunca volta e o aviso nunca desaparece.

Decida o que a tela deve mostrar quando o observador não tem certeza e depois teste esse caso parando o observador. Se a resposta ainda for conectado, o indicador está medindo o passado.

Artigos relacionados