Como monitorar a largura de banda de VPN no macOS
Como ver exatamente o que seu túnel VPN está carregando no macOS: tráfego por aplicativo, overhead de criptografia e detecção de vazamentos.
- VPN
- macOS
- Bandwidth
- Privacy
Você conecta sua VPN, roda um teste web que reporta o país certo e assume que tudo agora está tunelado. Dois dias depois, você nota que um dos seus apps — digamos, um cliente de chat antigo ou um agente de sync — esteve falando direto com a internet pública o tempo todo, ignorando o túnel completamente. A VPN estava ligada. O vazamento estava num processo que se ligou à interface física antes do túnel subir e nunca soltou.
Monitorar banda de VPN no macOS é em parte confirmar que a VPN está fazendo seu trabalho e em parte flagrar os apps que silenciosamente passam por fora dela. Este post cobre o que são interfaces utun, como ler tráfego de VPN com ferramentas built-in, como detectar vazamentos e como medir o overhead que o túnel adiciona. Se você esteve procurando "monitor de banda de VPN no Mac" porque o dashboard da própria VPN não te conta o suficiente, o toolkit abaixo responde as perguntas mais difíceis.
O que são interfaces utun
Quando um cliente VPN conecta no macOS, ele cria uma interface virtual — geralmente chamada utun0, utun1, utun2, etc. ("utun" significa "user tunnel"). O processo da VPN lê pacotes que o SO roteia para aquela interface, criptografa e encapsula, e escreve os pacotes resultantes pela sua interface física (en0 para Wi-Fi, tipicamente).
Rode isso no Terminal para ver o que está ativo agora:
ifconfig | grep -E "^(en|utun)" -A 3Você vai ver algo como:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.1.42 netmask 0xffffff00 broadcast 192.168.1.255
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
inet 10.8.0.6 --> 10.8.0.1 netmask 0xffffff00en0 é sua rede real. utun0 é a VPN. Alguns clientes de VPN criam várias interfaces utun (uma para o plano de dados, outra para controle); alguns criam utun9 ou maior para evitar colisões com túneis estilo Personal Hotspot do iOS.
Como monitorar tráfego de VPN no Mac com nettop
nettop é built-in no macOS e é a forma mais direta de ver qual interface um processo está usando. A invocação relevante:
sudo nettop -P -m routeIsso mostra as conexões de cada processo agrupadas por rota. Um processo falando pela sua VPN vai mostrar tráfego pela interface utun; um processo passando por fora do túnel vai mostrar via en0 (ou en1 se ethernet).
Observe o nettop por um minuto, então pergunte: quais apps estão usando utun0 e quais estão usando en0? Se você pretende que tudo passe pelo túnel e vê o Slack no en0, isso é vazamento.
A flag -P agrega por processo; -m route mostra a coluna de rota. Adicione -x para contagens de bytes. Adicione -c e um delay para refresh periódico, por exemplo nettop -P -c 2.
O que o ova mostra para tráfego de VPN
Um monitor por app como o ova vê as mesmas estatísticas de kernel que o nettop e as agrega no tempo. A banda atribuída ao "Slack" no ova inclui o que o Slack enviou — por en0 ou utun0 não muda o total por processo. Então o ova responde "quanto o Slack usou?" de forma limpa. Atualmente ele não detalha o número por app por interface — se você precisa desse nível de detalhe, o nettop é a ferramenta.
Para a maior parte dos usuários de VPN, isso está bom. As perguntas que você costuma querer responder são:
- "Meu próprio cliente VPN está usando a banda que espero?"
- "Algo deu pico na última hora?"
- "Qual app é o mais pesado agora?"
ova te dá os três de relance, com agrupamento de processos auxiliares para que um PID auxiliar do Slack não vire uma linha separada. O próprio cliente VPN (Tailscale, Mullvad, ProtonVPN, NordVPN, etc.) aparece como sua própria linha, e o número dele é o total empacotado/criptografado saindo pelo seu link físico.
Detectando vazamentos
Um vazamento de VPN é quando o tráfego de um app passa por fora do túnel e vai direto para a internet. Causas incluem:
- O app cacheou uma rota antes da VPN subir e ainda está usando.
- A VPN não roteia certos destinos (LAN, multicast, DNS para um servidor específico).
- O toggle "excluir rede local" do macOS está fazendo o que diz.
- A VPN está com split tunneling e um app específico está na lista de bypass.
- IPv6 está habilitado e a VPN só roteia IPv4 (causa comum).
O loop de diagnóstico:
- Com a VPN conectada, rode
nettop -P -m routee observe se algum processo mostra tráfego en0 que você esperava estar tunelado. - Cruze com ova para a banda por processo. Se um processo mostra tráfego no ova mas nenhuma linha utun no nettop, está vazando.
- Confirme no nível de rede: visite
ipleak.netoudnsleaktest.comnum navegador. O IP reportado deve ser a saída da VPN, não sua casa/escritório. - Para DNS especificamente: rode
scutil --dns | grep nameserver— os nameservers listados devem ser os da sua VPN, não os do ISP.
Para IPv6 especificamente, a configuração mais segura é uma VPN que rotie IPv6 explicitamente ou desabilitar IPv6 no sistema enquanto conectado. Desabilitar por rede: Ajustes do Sistema > Rede > sua rede > Detalhes > TCP/IP > Configurar IPv6 > Apenas link-local.
Medindo o overhead da VPN
VPNs adicionam overhead de duas formas: throughput (você recebe menos da sua velocidade de linha real) e latência (cada round trip passa por um hop a mais).
Overhead de throughput
O imposto de criptografia depende do protocolo:
- WireGuard: tipicamente 5 a 10 por cento de overhead num link rápido. Acelerado por hardware no Apple Silicon.
- OpenVPN: 15 a 30 por cento de overhead. Limitado por CPU, mais lento que WireGuard em altas velocidades.
- IKEv2/IPsec: 10 a 20 por cento de overhead. Suporte nativo no macOS.
- Protocolos proprietários (Lightway, NordLynx baseado em WireGuard, etc.): eficiência aproximada de WireGuard.
Para medir: rode um teste de velocidade com a VPN desligada, anote o resultado. Rode o mesmo teste com a VPN ligada, para um servidor na mesma região metropolitana do endpoint do teste sem VPN. A razão é o overhead. Use o ova durante ambos os testes — o tráfego por app mostrado para o cliente do teste de velocidade deve ser o throughput de camada de aplicação; a taxa do sistema durante testes com VPN é maior por causa do framing de criptografia.
Overhead de latência
Rode ping 8.8.8.8 com VPN desligada, anote o RTT em estado estacionário. Conecte a VPN, rode ping 8.8.8.8 de novo. A diferença é o custo de round-trip de criptografar, ir até a saída da VPN e voltar. Números típicos:
- Saída da VPN na mesma cidade: +5 a +15 ms.
- Saída da VPN em outro país: +50 a +200 ms dependendo da geografia.
- Saída da VPN em outro continente: +150 a +400 ms.
Isso é física inevitável em sua maior parte — você não pode tunelar para Tóquio e não pagar o round trip.
Identificando o uso de banda da própria VPN
O processo do cliente VPN aparece no ova como sua própria linha — "Mullvad VPN", "Tailscale", "ProtonVPN", etc. O número que você vê ali é o total criptografado e empacotado saindo pelo seu link físico. Esse é o número certo para "quanta banda real de internet a VPN está consumindo".
Uma checagem útil de sanidade: a qualquer momento, a banda reportada da VPN deve ser aproximadamente igual à soma de todos os outros apps usando, mais um pequeno percentual de overhead de criptografia. Se forem muito diferentes, algo mais está acontecendo — split tunneling, vazamento ou o cliente VPN fazendo trabalho de manutenção (rotação de chaves, descoberta de peers).
Veja o ova em ação
Um monitor de banda na barra de menu para olhar de relance — local, assinado, ~3 MB.
VPN sempre ligada: armadilhas
Vários clientes de VPN oferecem um modo "kill switch" ou "sempre ligado" que bloqueia todo o tráfego se o túnel cair. Útil, mas com surpresas:
- Os primeiros segundos depois do wake-from-sleep podem ter tráfego desbloqueado antes do túnel se re-estabelecer. Alguns clientes seguram explicitamente; outros não.
- Mudanças de rede Wi-Fi (sair de casa para a cafeteria) disparam uma desconexão breve. O kill switch deveria segurar mas a implementação varia.
- Alguns apps têm lógica de reconexão agressiva — fazem retry a cada 100 ms quando o túnel está desligado. Isso é um pico de banda no momento da reconexão quando o túnel volta.
Observe o ova no momento depois de acordar do sleep com a VPN ligada. O padrão costuma ser: o próprio cliente VPN mostra um pequeno surto enquanto re-handshake, então em 5 a 30 segundos apps individuais começam a surtar enquanto reconectam seus próprios sockets. Se você vê um pico de 200 MB no wake, costuma ser Slack/Discord/iMessage todos se atualizando ao mesmo tempo.
Roteamento por app e split tunnels
Alguns clientes de VPN suportam rotear só apps específicos pelo túnel. O caso de uso é "manda meu cliente de torrent pela Mullvad, mas deixa o Slack ir direto para chamadas de vídeo não somarem latência da VPN".
Verificando regras de split tunnel com nettop:
sudo nettop -P -m routeOs apps em split tunnel devem mostrar só tráfego en0; os tunelados devem mostrar só utun. Se ambos aparecem para o mesmo processo, as regras não estão sendo aplicadas de forma limpa — geralmente porque o app mantém sockets de longa duração que precedem a mudança de regra. Reinicie o app para limpar.
Monitorando múltiplas conexões VPN
Usuários avançados às vezes rodam duas VPNs ao mesmo tempo — por exemplo, Tailscale para acessar serviços internos da empresa mais uma VPN comercial (Mullvad, Proton) para privacidade geral de internet. O macOS lida com isso via tabelas de roteamento: rotas mais específicas (100.64.0.0/10 do Tailscale) ganham sobre as mais amplas (a rota padrão da VPN comercial).
Você vai ver várias interfaces utun em ifconfig. Use netstat -rn | head -30 para ler a tabela de roteamento — a primeira rota correspondente ganha. ova mostra banda total por app sem distinguir qual túnel; para isso, a visão -m route do nettop é a referência.
O que fazer a seguir
Uma auditoria de 10 minutos para monitorar banda de VPN no Mac de ponta a ponta:
- Conecte a VPN.
- Abra o ova na barra de menu, anote os apps atualmente ativos.
- Rode
sudo nettop -P -m routeno Terminal. - Cruze: cada app mostrando banda significativa no ova deve ter suas conexões aparecendo sob utun0 (ou qual utun sua VPN usa) no nettop. Qualquer tráfego en0 desses processos é candidato a vazamento.
- Visite
ipleak.netpara confirmar IP e DNS saindo pela VPN. - Desconecte, rode um teste de velocidade, reconecte, rode outro. Compute o overhead.
Você sai disso sabendo se sua VPN está de fato fazendo o que você acha que está, quanto o overhead realmente custa e quais apps vigiar. Essa é uma resposta mais forte do que o indicador "Conectado" na barra de menu do seu cliente VPN.