«Desconectando» é um estado que o cliente comunica enquanto desmonta um túnel, não um veredicto de que o tráfego parou. Num Mac essa desmontagem decorre como uma sequência curta, e a etiqueta só muda depois de o componente que detém a ligação responder. Quando um passo espera por um auxiliar, um plugin ou uma decisão de política, a etiqueta pode ficar no lugar depois de a interface desaparecer, ou o túnel pode continuar a encaminhar enquanto o menu ainda o mostra. Trate o texto como «desmontagem em curso, resultado desconhecido» e descubra qual das metades é verdadeira.

Duas falhas parecem iguais na barra de menus e exigem respostas opostas. Numa, o túnel ainda transporta pacotes e só a apresentação está desatualizada. Na outra, o túnel desapareceu mas uma política separada mantém o tráfego bloqueado, o que muitas vezes é deliberado. Rotas e estado do DNS separam-nas mais depressa do que qualquer interação com o menu.

O que a etiqueta segue

Um cliente VPN mantém uma pequena máquina de estados, e a barra de menus é uma projeção dela. Para uma ligação gerida pelo próprio macOS, essa máquina está na estrutura VPN do sistema. Para um túnel gerido por uma aplicação, está na aplicação e no seu auxiliar privilegiado. O último passo de uma paragem não é fechar um socket. É libertar o que fazia o túnel funcionar: a interface utun, as rotas que apontavam para ela, as entradas de resolução que o cliente injetou e qualquer regra de firewall ou política que bloqueasse tráfego enquanto a ligação estava ativa.

Esses passos são separados, por isso uma paragem pode encravar em qualquer um deles. Um auxiliar que deixa de responder, uma rota que uma segunda interface também reclama ou uma entrada de resolução pertencente a outro perfil podem deixar o cliente à espera. A etiqueta é um relatório sobre o progresso do próprio cliente, o que a torna autoritária quanto à intenção e pouco fiável quanto à rede.

Encontre o componente que detém a ligação

Em configurações nativas, o scutil --nc list imprime os serviços que o sistema conhece e o seu estado, e o scutil --nc status "Work VPN" dá detalhes de um serviço. Um túnel mantido por uma aplicação de terceiros pode não aparecer de todo nessa lista, por isso um resultado vazio não é prova de que nada esteja ligado.

Quando o perfil pertence a uma aplicação, confie na vista de estado dela e no controlo «Desconectar» documentado. Fechar a janela não é um pedido de paragem se um auxiliar em segundo plano detiver o túnel; o ícone desaparece e o auxiliar mantém a interface viva. A referência de definições de VPN da Apple cobre os controlos nativos e de onde vêm as definições geridas.

Leia interfaces, rotas e DNS

Três verificações respondem à maior parte da pergunta sem tocar na ligação. Interpretá-las em conjunto é o que importa, porque cada uma sozinha engana.

scutil --nc list
netstat -rn -f inet | head -20
ifconfig | grep -A 3 '^utun'
scutil --dns | head -30
  • interface utun presente, rota predefinida ou dividida através dela, resolução a apontar para o fornecedor: o túnel ainda está de pé e a etiqueta está desatualizada.
  • sem utun, rota predefinida comum, DNS por DHCP, sem internet: uma política que bloqueia ao desconectar está a fazer o seu trabalho.
  • sem utun, sem rota, resolução ainda a apontar para o fornecedor: a desmontagem parou a meio, e o DNS é o resto a limpar.

Depois envie um pedido a um anfitrião interno que só deveria responder pelo túnel e outro a um anfitrião público. A alcançabilidade separa a política do estado residual sem transformar a verificação num exercício de medição. Guarde primeiro o trabalho remoto se o caminho ainda responder, e prepare uma segunda via de entrada antes de mudar a rede numa máquina que administra remotamente.

Porque é que mortes em bloco e apagar o perfil enganam

Nomes de processos como pppd, racoon e configd pertencem a implementações concretas. Matá-los pode afetar outras ligações, deixa rotas e interfaces utun para trás e não lhe dá qualquer registo do passo que encravou. Um nome de processo antigo também não é prova de que detenha o perfil atual.

Apagar e recriar o perfil é uma mudança maior do que limpar uma transição encravada. Pode deitar fora definições geridas e material de identidade local sem explicar o que falhou, e num Mac supervisionado pode simplesmente ser reposto. Guarde a remoção para uma configuração realmente obsoleta e diagnostique antes a transição.

Uma sequência de paragem que deixa rasto

A ordem abaixo deixa os controlos da própria ligação no comando e produz um registo se o encravamento voltar. Também o impede de transformar um problema de apresentação numa mudança de rede.

  1. Guarde o trabalho remoto e confirme que consegue chegar ao Mac por outra via se for remoto.
  2. Anote o nome do cliente, a versão e o perfil. Capture uma janela curta com log show --last 5m --predicate 'subsystem == "com.apple.networkextension"'; versões antigas guardam menos histórico, por isso execute-o logo após o encravamento.
  3. Use o controlo «Desconectar» documentado, espere e depois repita as verificações de interface e rotas.
  4. Se a etiqueta está desatualizada mas o túnel está em baixo, deixe-a e deixe o cliente atualizar-se em vez de forçar processos.
  5. Se a desmontagem encravou mesmo, reinicie o cliente e depois planeie um reinício do Mac assim que o trabalho estiver guardado. As máquinas geridas exigem o procedimento do administrador.

Após a recuperação, confirme que a rota predefinida comum e o resolver DHCP voltaram, e que o tráfego bloqueado foi restaurado ou continua bloqueado de propósito. Anote o perfil e a versão do cliente com o sintoma, para que a próxima ocorrência comece com provas e não com um palpite na barra de menus.

Artigos relacionados