Ícone do Kivuko

Kivuko

Um cliente NordVPN para a barra de menus do Mac, escrito em Rust e baseado no WireGuard.

Kivuko (ki-VU-ko) significa “travessia” ou “balsa” em suaíli.

O Kivuko é um projeto independente. Não é feito, endossado nem apoiado pela Nord Security. Você precisa ter a sua própria assinatura da NordVPN.

O menu do Kivuko conectado: Disconnect, Location definido como United States e Kill Switch, Auto-Connect e Block Ads and Trackers marcados

Kill switch, reconexão automática e bloqueio de anúncios

O Kivuko é um cliente NordVPN gratuito e de código aberto para macOS que se conecta via WireGuard (NordLynx).

O kill switch do Kivuko é aplicado pelo macOS. O Kivuko se reconecta depois do repouso e de mudanças de rede, e pode bloquear anúncios e rastreadores pelo DNS da NordVPN. O app da barra de menus usa cerca de 23 MB de memória, e o túnel, cerca de 8 MB.

O túnel roda o GotaTun, a implementação do WireGuard em Rust feita pela Mullvad, dentro de uma extensão packet-tunnel do macOS. O macOS inicia e reinicia essa extensão, por exemplo depois do repouso.

Quando um servidor para de responder

O Kivuko verifica o handshake do WireGuard a cada 15 segundos.

  1. 8 sTenta o próximo servidorSe um servidor não responder em 8 segundos, o Kivuko tenta o próximo, até três servidores.
  2. 3 minForça um handshakeSe nenhum handshake do WireGuard chegar em 3 minutos, o Kivuko força um novo handshake.
  3. 6 minReinicia em um novo servidorApós 6 minutos, o macOS reinicia o túnel em um novo servidor (com Auto-Connect ativado).

Como funciona

Kivuko.app                     app/       menu bar app: menu, token prompt, VPN configuration
└── Contents/PlugIns/
    └── KivukoTunnel.appex     provider/  packet-tunnel extension: server choice, GotaTun, watchdog
  • O app da barra de menus gerencia a configuração de VPN que o macOS mantém em Ajustes do Sistema › VPN, incluindo o kill switch, a regra de conexão sob demanda e a escolha de DNS.
  • O túnel é um provedor packet-tunnel do NetworkExtension. O macOS o inicia sempre que a VPN é iniciada, inclusive nas reconexões automáticas enquanto o app não está aberto.
  • A cada início, o túnel pede à NordVPN servidores WireGuard recomendados, passa ao macOS os endereços, as rotas e o DNS, e roda o GotaTun na interface de túnel que o macOS cria.
  • O docs/architecture.md explica as decisões de design, a sequência de conexão e o watchdog.

Privacidade e segurança

O Kivuko se comunica apenas com a API da NordVPN e com o servidor VPN ao qual você está conectado, e não envia telemetria.

  • O seu token de acesso da NordVPN fica guardado nas suas chaves de início de sessão. Quando você clica em Connect, o app o entrega ao túnel, que o usa para buscar a sua chave WireGuard na NordVPN.
  • O túnel guarda a chave WireGuard no próprio contêiner de sandbox, legível apenas pelo seu usuário (modo 0600).
  • Qualquer usuário do Mac pode ler a configuração de VPN do macOS, por isso o Kivuko guarda ali apenas o país e a escolha de DNS.
  • Os logs registram eventos, nunca o token nem a chave. O docs/setup.md lista todos os arquivos que o Kivuko grava.

Uso de recursos

Medido em um MacBook Pro com macOS 26.

ProcessoMemóriaCPU
App da barra de menus23 MB0% quando ocioso
Túnel8 MBMenos de 1% com tráfego em segundo plano; cerca de 26% de um núcleo ao baixar a 212 Mbit/s

Obtenha o Kivuko

Não há download pronto. O macOS só carrega extensões de VPN assinadas por meio de uma associação paga ao Apple Developer Program, por isso você mesmo compila e assina o Kivuko. O guia completo é o docs/setup.md.

Requisitos

Mac
Apple silicon
macOS
14 ou posterior (até agora testado apenas no macOS 26)
Serviço de VPN
A sua própria assinatura da NordVPN
Assinatura de código
Associação paga ao Apple Developer Program

Para compilar

Xcode
Com sessão iniciada nessa conta
Rust
1.95 ou posterior
  1. Clone o repositório e escolha um prefixo de bundle ID seu, como com.yourname:

    git clone https://github.com/piedol/kivuko.git
    cd kivuko && cp signing/local.env.example signing/local.env

    Defina KIVUKO_BUNDLE_PREFIX em signing/local.env, e KIVUKO_TEAM se o seu ID Apple fizer parte de várias equipes de desenvolvedor. scripts/bundle.sh --check mostra o que será assinado.

  2. Compile, assine e instale. Na primeira execução, o Xcode registra o seu Mac e os dois bundle IDs e baixa os perfis de desenvolvimento:

    scripts/bundle.sh --install
  3. Obtenha um token de acesso da NordVPN em Nord Account › NordVPN › Advanced settings › Access token.

  4. Clique no escudo na barra de menus e escolha Set Up and Connect. Cole o token, clique em Save and Connect e depois em Permitir quando o macOS pedir para adicionar uma configuração de VPN.

Os perfis de desenvolvimento valem por um ano. Quando expiram, o macOS deixa de carregar o Kivuko, e executar scripts/bundle.sh --install de novo os renova. Não mantenha uma segunda cópia do Kivuko no Mac. Quando há duas cópias da extensão de túnel registradas, abrir qualquer uma das cópias do app faz o macOS parar o túnel da outra, o que derruba a VPN.

Para desinstalar, siga na ordem os passos de desinstalação. Se você apagar o app primeiro, o kill switch pode continuar bloqueando a sua conexão até você remover a configuração de VPN.

Perguntas frequentes

O Kivuko é gratuito e de código aberto?

Sim. O Kivuko é gratuito para baixar e usar, e o código-fonte está no GitHub sob a GNU General Public License v3.0 ou posterior.

Preciso de uma assinatura da NordVPN?

Sim. O Kivuko se conecta à NordVPN com a sua própria assinatura, usando um token de acesso obtido em Nord Account › NordVPN › Advanced settings.

O Kivuko é afiliado à Nord Security?

Não. O Kivuko é um projeto independente. Não é feito, endossado nem apoiado pela Nord Security.

Como instalo o Kivuko?

Compile-o a partir do código-fonte em um Mac com Apple silicon e macOS 14 ou posterior. O macOS só carrega extensões de VPN assinadas por meio de uma associação paga ao Apple Developer Program, por isso não há download pronto. O docs/setup.md traz os passos.

O que o Kivuko envia pela rede?

Ele se comunica apenas com a API da NordVPN e com o servidor VPN ao qual você está conectado, e não envia telemetria. O seu token de acesso fica nas suas chaves de início de sessão.

Como desinstalo o Kivuko?

Encerre o Kivuko primeiro, depois remova a configuração dele em Ajustes do Sistema › VPN, mova o Kivuko.app para o Lixo e apague o token dele das chaves de início de sessão. Se você apagar o app primeiro, o kill switch pode continuar bloqueando a sua conexão.

Licença

O Kivuko é software livre sob a GNU General Public License v3.0 ou posterior. Relatos de bugs e pull requests são bem-vindos no GitHub.

Use em qualquer lugar, inclusive no trabalho, e leia, modifique e compartilhe o código-fonte. Se você distribuir uma versão modificada, publique o código-fonte dela sob a mesma licença.

Créditos: GotaTun, da Mullvad, wireguard-apple e objc2.