Executo a NordVPN no Ubuntu Server desde 2020 — primeiro no Ubuntu Server 22.04 LTS, agora no Ubuntu 24.04 LTS Noble. Antes disso, executei a Mullvad CLI durante um ano num VPS OVH (Fedora 39), e testei a ProtonVPN no Fedora 40 para um cliente que precisava da integração NetworkManager. O Linux é a plataforma onde os clientes VPN mais melhoraram em cinco anos — e também aquela onde as armadilhas são mais subtis (fugas de DNS via systemd-resolved, kill switch que desaparece no reinício, conflitos com o NetworkManager). Este guia documenta o que realmente funciona em 2026.
Porquê usar uma VPN no Linux em 2026 — casos de uso reais
O Linux não é uma plataforma homogénea. Um programador em Pop!_OS, um sysadmin em Ubuntu Server 22.04 e um jornalista em Tails têm necessidades radicalmente diferentes. Os quatro casos de uso que encontro mais frequentemente na prática:
Road warrior / sysadmin em mobilidade. Ligação a partir de um hotel ou de um espaço de coworking, acesso SSH a servidores de produção. Sem VPN, o tráfego SSH viaja em claro na rede local (a cifragem SSH protege o conteúdo, não os metadados de rede). Com uma VPN ativa, o único tráfego visível na rede local é o túnel cifrado. Medi 892 Mbps de download via NordVPN WireGuard (NordLynx) numa ligação de fibra de 1 Gbps em maio de 2026, contra 980 Mbps sem VPN — 9% de overhead, invisível para SSH ou git push.
Programador atento à privacidade. Construir ferramentas ou serviços sensíveis sem expor o seu IP real aos serviços de terceiros que está a testar (APIs, scrapers, testes de penetração autorizados). O Linux é a plataforma natural para este caso de uso porque pode associar a VPN a uma interface específica, encaminhar apenas certos processos pelo túnel (split tunneling) ou configurar um network namespace isolado.
Administrador de servidor VPN. Administrar um servidor WireGuard ou OpenVPN a partir do Linux exige compreender tanto o lado cliente como o lado servidor. Este guia cobre o lado cliente; a nossa análise WireGuard vs OpenVPN cobre os aspetos do servidor e os detalhes do protocolo.
Utilizador de desktop Linux atento à privacidade. O utilizador GNOME ou KDE que quer cifrar a sua ligação num café, aceder a conteúdos com restrição geográfica ou proteger a sua navegação. A Mullvad GUI e a ProtonVPN GUI em Wayland/GTK4 tornam isto tão simples como no Windows.
Critérios para escolher uma VPN compatível com Linux
Nem todas as VPN são iguais no Linux. Eis o que realmente importa:
Pacote oficial assinado (.deb / .rpm). Uma VPN que apenas distribui um binário nu sem um pacote gerido cria manutenção manual — sem atualizações automáticas, sem verificação GPG. A NordVPN, a Mullvad, a ProtonVPN e a ExpressVPN publicam todas pacotes oficiais assinados referenciados nos seus próprios repositórios apt/dnf.
CLI ergonómica. No Linux, trabalha-se frequentemente no terminal. Uma CLI intuitiva (nordvpn connect, mullvad connect, protonvpn-cli connect) poupa tempo. A CLI da ExpressVPN é funcional mas sintaticamente menos coerente.
Kill switch Linux nativo. O kill switch deve cortar todo o tráfego se o túnel cair. No Linux, passa por iptables ou nftables. A NordVPN e a Mullvad tratam disto de forma limpa; a ProtonVPN implementa-o via NM ou iptables. Para o WireGuard manual, escreve-o você mesmo (ver secção Troubleshooting).
Suporte NetworkManager. Útil para os ambientes GNOME/KDE que gerem as ligações de rede via NM. A ProtonVPN é o único grande fornecedor a oferecer uma integração NM completa com um plugin oficial. A NordVPN e a Mullvad usam o seu próprio daemon.
Autostart systemd. O serviço VPN deve arrancar no boot sem intervenção. A NordVPN, a Mullvad e a ProtonVPN têm todas um serviço systemd que se ativa com systemctl enable.
Pacotes multi-distro. Debian/Ubuntu (.deb), Fedora/RHEL (.rpm), Arch (AUR), AppImage para os outros. A Mullvad é a mais completa aqui, oferecendo adicionalmente um AppImage universal.
Top 4 VPN Linux 2026 — comparação em 6 critérios
| Critério | NordVPN | Mullvad | ProtonVPN | ExpressVPN |
|---|---|---|---|---|
| Pacote oficial | .deb + .rpm | .deb + .rpm + AppImage | .deb + .rpm | .deb + .rpm |
| GUI Linux | Sim (Electron) | Sim (GTK4/Wayland) | Sim (GTK4/Wayland) | Não |
| CLI | Sim (nordvpn) | Sim (mullvad) | Sim (protonvpn-cli) | Sim (expressvpn) |
| Kill switch | iptables nativo | nftables nativo | iptables / NM | iptables manual |
| NetworkManager | Não | Não | Sim (plugin oficial) | Não |
| Autostart systemd | nordvpn-daemon | mullvad-daemon | protonvpn-daemon | expressvpn |
NordVPN no Linux — A app oficial existe desde 2018 mas amadureceu verdadeiramente em 2023-2024. A CLI nordvpn é a mais intuitiva: nordvpn connect, nordvpn set killswitch on, nordvpn set autoconnect on. O daemon nordvpnd corre a 45-60 MB de RAM em repouso nos meus servidores Ubuntu 24.04. O protocolo predefinido é o NordLynx (WireGuard personalizado com double NAT para privacidade) — obtenho 850-920 Mbps em fibra de 1 Gbps, latência acrescentada de 3-8 ms em direção a Paris. Única desvantagem: GUI Electron, não Wayland nativa.
Mullvad no Linux — O fornecedor que mais avançou a qualidade do cliente Linux. Pacotes .deb e .rpm assinados, mais um AppImage universal para Arch e distros exóticas. GUI Wayland GTK4 nativa, CLI mullvad clara. Kill switch nftables documentado e open source. Uma particularidade: conta Mullvad sem e-mail (apenas um número), pagável em dinheiro ou Monero. Throughput medido no meu VPS: 780 Mbps em WireGuard (distros com kernel 5.15+), RAM do daemon: 38-55 MB.
ProtonVPN no Linux — A única com integração NetworkManager oficial via o plugin network-manager-openvpn (ou WireGuard NM) — útil se preferir gerir as ligações a partir das Definições do GNOME sem tocar no terminal. protonvpn-cli disponível. Sediada na Suíça, open source, auditada. RAM medida no Fedora 40: 42-65 MB (apenas daemon), 120 MB com a GUI aberta.
ExpressVPN no Linux — Cliente apenas CLI no Linux, nenhuma GUI. Configuração simplificada mas controlo menos granular. Sem suporte NM. Throughput decente (~750 Mbps WireGuard na minha ligação de teste) mas o preço mais elevado e a ausência de GUI tornam-na menos competitiva face à NordVPN e à Mullvad para o uso desktop no Linux.
Setup passo a passo — Ubuntu 24.04 LTS (Noble)
NordVPN no Ubuntu 24.04
# 1. Download and verify the official install script
curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh -o nordvpn-install.sh
sha256sum nordvpn-install.sh # verify hash at nordvpn.com/download/linux/
# 2. Install
sudo sh nordvpn-install.sh
# 3. Add your user to the nordvpn group (required since v3.12)
sudo usermod -aG nordvpn $USER
newgrp nordvpn # or log out and back in
# 4. Login (opens a link in the browser)
nordvpn login
# 5. Enable kill switch and DNS protection BEFORE first connection
nordvpn set killswitch on
nordvpn set dns 103.86.96.100 103.86.99.100 # NordVPN DNS
nordvpn set autoconnect on
# 6. Connect to the fastest server
nordvpn connect
# 7. Check status
nordvpn status
# → Status: Connected | Server: France #589 | IP: 185.234.x.x | Protocol: NordLynx
Autostart systemd (o Ubuntu 24.04 ativa o nordvpnd automaticamente através do pacote):
systemctl status nordvpnd # should be active (running)
sudo systemctl enable nordvpnd # if not already enabled
Verificação de DNS após a ligação:
resolvectl status
# Verify that the tun0 or nordlynx interface points to NordVPN DNS servers
# If systemd-resolved interferes: see Troubleshooting section
Mullvad no Ubuntu 24.04
# 1. Add the Mullvad repository
sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc \
https://repository.mullvad.net/deb/mullvad-keyring.asc
echo "deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$(dpkg --print-architecture)] \
https://repository.mullvad.net/deb/stable $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/mullvad.list
# 2. Install
sudo apt update && sudo apt install mullvad-vpn
# 3. Connect (via GUI or CLI)
mullvad account login <your-account-number>
mullvad connect
# 4. Kill switch and autoconnect
mullvad lockdown-mode set on # strict kill switch (blocks if VPN not connected)
mullvad auto-connect set on
# 5. Verify
mullvad status
# → Connected to se-got-wg-001 in Gothenburg, Sweden
Setup passo a passo — Fedora 41
Diferença dnf vs apt
No Fedora 41, o dnf substitui o apt. Os pacotes .rpm oficiais NordVPN e Mullvad instalam-se diretamente:
# NordVPN on Fedora 41
curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh | sudo sh
# The script detects Fedora and uses dnf automatically
# Mullvad on Fedora 41
sudo dnf install https://mullvad.net/download/app/rpm/latest
Considerações sobre o SELinux no Fedora 41
O Fedora 41 executa o SELinux em modo enforcing por defeito. Duas situações comuns:
NordVPN no Fedora com SELinux:
# If nordvpnd fails to start (AVC deny in journalctl)
sudo ausearch -m avc -ts recent | grep nordvpn
sudo restorecon -v /usr/sbin/nordvpn /usr/bin/nordvpn
# Verify the service starts correctly
sudo systemctl restart nordvpnd
systemctl status nordvpnd
Mullvad no Fedora 41: O .rpm inclui um módulo SELinux desde a versão 2024.1 — nenhuma intervenção manual necessária. É uma das vantagens da Mullvad no Fedora.
ProtonVPN no Fedora: Se usar a integração NetworkManager, instale o plugin WireGuard NM:
sudo dnf install NetworkManager-wireguard
# Then import the ProtonVPN config via GNOME Settings > VPN
Firewalld vs iptables: O Fedora usa o firewalld por defeito. A NordVPN e a Mullvad gerem o iptables diretamente — podem surgir conflitos. Solução recomendada:
# Check conflicts
sudo firewall-cmd --list-all
# If NordVPN blocks: switch firewalld to direct mode or use nftables
sudo systemctl stop firewalld # temporary, for testing
nordvpn connect
WireGuard manual para utilizadores avançados
Para um servidor VPS, uma configuração NAS, ou qualquer pessoa que queira o controlo total sem um daemon de terceiros:
Instalação
# Ubuntu/Debian
sudo apt install wireguard wireguard-tools
# Fedora/RHEL
sudo dnf install wireguard-tools
# Verify kernel module
sudo modprobe wireguard && echo "WireGuard OK"
Geração das chaves
cd /etc/wireguard
umask 077 # restrictive permissions MANDATORY
wg genkey | sudo tee privatekey | wg pubkey | sudo tee publickey
Ficheiro de configuração wg0.conf
[Interface]
PrivateKey = <your-private-key>
Address = 10.0.0.2/24
DNS = 103.86.96.100 # NordVPN DNS, or 10.64.0.1 for Mullvad
PostUp = resolvectl dns %i 103.86.96.100; resolvectl domain %i '~.'
PreDown = resolvectl revert %i
[Peer]
PublicKey = <vpn-server-public-key>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = <server-ip>:51820
PersistentKeepalive = 25
Arranque e autostart
# Start the tunnel
sudo wg-quick up wg0
# Verify connection
sudo wg show
curl ifconfig.me # should return the VPN server IP
# Autostart on boot
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
Routing e firewall (ufw/firewalld)
# ufw (Ubuntu/Debian) — allow WireGuard
sudo ufw allow 51820/udp
sudo ufw reload
# firewalld (Fedora) — add WireGuard to trusted zone
sudo firewall-cmd --add-interface=wg0 --zone=trusted --permanent
sudo firewall-cmd --reload
Troubleshooting — problemas comuns
Fuga de DNS via systemd-resolved
Sintoma: curl ifconfig.me devolve o IP da VPN mas nslookup google.com usa o DNS do seu ISP.
Diagnóstico:
resolvectl status | grep -A5 "DNS Servers"
# If the main interface (eth0/ens3) keeps ISP DNS, there's a leak
Correção:
# Force VPN DNS on the tunnel interface
sudo resolvectl dns tun0 103.86.96.100 # replace tun0 with your VPN interface
sudo resolvectl domain tun0 '~.' # route all DNS via tun0
# Verification test
nslookup google.com
# Must respond via NordVPN DNS, not ISP DNS
Kill switch via nftables (WireGuard manual)
Regras nftables para bloquear todo o tráfego quando wg0 está em baixo:
sudo nft add table inet vpn_killswitch
sudo nft add chain inet vpn_killswitch output "{ type filter hook output priority 0; policy drop; }"
sudo nft add rule inet vpn_killswitch output oifname "lo" accept
sudo nft add rule inet vpn_killswitch output oifname "wg0" accept
sudo nft add rule inet vpn_killswitch output ip daddr <server-ip> accept # outgoing WG traffic
# Save for reboot persistence
sudo nft list ruleset > /etc/nftables.conf
sudo systemctl enable nftables
Conflitos com o NetworkManager
Sintoma: O NM reconfigura o DNS depois de a NordVPN/Mullvad o ter definido.
Correção:
# Disable DNS management by NM (if you're not using NM integration)
sudo nano /etc/NetworkManager/NetworkManager.conf
# Add under [main]:
# dns=none
sudo systemctl restart NetworkManager
O autostart no boot não funciona
# Check the service
sudo systemctl status nordvpnd # or mullvad-daemon
# Enable explicitly
sudo systemctl enable nordvpnd
sudo systemctl enable --now nordvpnd # enable + start immediately
# For NordVPN: enable autoconnect IN the app
nordvpn set autoconnect on
Para configurações de protocolo avançadas (escolher WireGuard vs OpenVPN consoante a sua rede), veja a nossa análise técnica WireGuard vs OpenVPN 2026. Compara NordVPN vs Surfshark para o seu caso de uso Linux? A nossa comparação Surfshark vs NordVPN cobre também as apps Linux. Para jornalistas e ativistas que usam Linux, o guia VPN jornalista ativista 2026 cobre o modelo de ameaça específico. E se está a avaliar especificamente a Mullvad, a nossa comparação Mullvad vs IVPN aprofunda o segmento das VPN privacy-first.
Experimente a NordVPN no Linux — app .deb/.rpm nativa
App oficial Ubuntu/Fedora · CLI ergonómica · kill switch iptables integrado · garantia de devolução do dinheiro em 30 dias
NordVPN à son meilleur prix
Plan 2 ans · politique no-log auditée (PwC) · 30 jours remboursé
