Um Raspberry Pi 5 de 8 GB é um excelente servidor WireGuard sempre ligado. Espere um débito na ordem do seu upload doméstico (comumente ~80 Mbps), um consumo de energia em torno de 6-8W, e um custo total de 5 anos bem abaixo de uma única subscrição anual do NordVPN. Este guia fornece todos os comandos, na ordem correta, sem omissões.
Para decidir se um Pi 5 é a escolha certa em comparação com um VPS na nuvem ou Tailscale, comece com a nossa comparação das melhores soluções VPN auto-hospedadas de 2026.
Por que escolher o Raspberry Pi 5 para uma VPN doméstica
Um Raspberry Pi 5 a $100 em comparação com um VPS a $5/mês — o ponto de equilíbrio ocorre aos 20 meses. Depois disso, são poupanças puras menos $10-12/ano em eletricidade.
Mas o custo não é a única razão. Argumentos concretos para um Pi em vez de um VPS:
- Controlo total de hardware e logs — Nada sai de sua casa. Um VPS, mesmo encriptado, envolve um fornecedor a gerir o hipervisor.
- Acesso LAN nativo — A partir da sua conexão VPN, pode aceder ao seu NAS, impressoras, câmaras IP diretamente via IP local. Impossível com um VPS.
- Co-instalação do Pi-hole — Bloqueio de anúncios DNS para todos os seus dispositivos móveis, em qualquer lugar do mundo. Uma lista de bloqueio típica elimina uma parte significativa das consultas DNS (pode ver o valor exato no painel do Pi-hole).
- Aprendizagem prática de redes — A melhor maneira de entender NAT, encaminhamento IP, PKI e WireGuard é configurar tudo você mesmo.
Limitações honestas: depende da conectividade e energia doméstica. Para uma VPN de viagem crítica, veja a seção de manutenção.
Hardware necessário
Aqui está exatamente o que usei, com preços em EUR/USD no início de 2026:
| Componente | Modelo | Preço indicativo |
|---|---|---|
| Raspberry Pi 5 | 8 GB RAM (recomendado) | ~$100 / €100 |
| Fonte de alimentação | USB-C 27W oficial (PI-PSU) | ~$12 / €12 |
| microSD | SanDisk Extreme 32 GB UHS-I | ~$12 / €12 |
| Caixa + dissipador | Argon NEO 5 ou caixa oficial + Cooler Ativo | ~$15-20 / €15-20 |
| Cabo Ethernet | Cat 5e/6, 2 m | ~$5 / €5 |
| Total | ~$145-150 uma vez |
Por que 8 GB de RAM? Se co-instalar Pi-hole + potencialmente Nextcloud ou Home Assistant, 4 GB podem ser insuficientes. Com 8 GB, tem margem para 3 anos de evolução da configuração.
Por que a fonte oficial de 27W? O Pi 5 sob carga de VPN + Pi-hole pode consumir até 12W no rail USB-C. Uma fonte barata de 15W causa estrangulamento silencioso da CPU (subtensão). A oficial garante tensão estável.
Ethernet é obrigatório: nunca coloque um servidor VPN em WiFi. A latência extra (2-5 ms) e micro-desconexões WiFi tornam o túnel instável. Cabo direto ao router.
Configuração do SO — Raspberry Pi OS 64-bit
Gravação do cartão
- Descarregue o Raspberry Pi Imager (Windows/Mac/Linux)
- Selecione Raspberry Pi OS Lite 64-bit (Bookworm — Debian 12) — não é necessário ambiente de trabalho
- Clique no ícone de engrenagem (opções avançadas):
- Nome do host:
vpn-pi - Ativar SSH: chave pública (cole o seu
~/.ssh/id_ed25519.pub) - Nome de utilizador:
eric(nãopi, desativado por padrão desde 2022) - Localização: o seu fuso horário, layout de teclado correto
- Nome do host:
- Grave no microSD. Insira no Pi, ligue o Ethernet, ligue a energia.
Primeiro acesso SSH e IP estático
# Do seu Mac/PC, encontre o Pi na sua rede local
ssh eric@vpn-pi.local
# IP estático em /etc/dhcpcd.conf
sudo nano /etc/dhcpcd.conf
Adicione no final do arquivo:
interface eth0
static ip_address=192.168.1.10/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
sudo reboot
# Reconectar no IP fixo:
ssh eric@192.168.1.10
Firewall UFW
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp # SSH (mude se alterar a porta)
sudo ufw allow 51820/udp # WireGuard
sudo ufw enable
sudo ufw status verbose
Instalação do WireGuard
Pacotes e geração de chaves
sudo apt update && sudo apt upgrade -y
sudo apt install -y wireguard qrencode
# Gerar chaves do servidor
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
sudo chmod 600 /etc/wireguard/server_private.key
# Exibir chaves
SERVER_PRIVKEY=$(sudo cat /etc/wireguard/server_private.key)
SERVER_PUBKEY=$(sudo cat /etc/wireguard/server_public.key)
echo "Privada: $SERVER_PRIVKEY"
echo "Pública: $SERVER_PUBKEY"
Configuração do servidor wg0.conf
sudo nano /etc/wireguard/wg0.conf
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVKEY>
# NAT — substitua eth0 pela sua interface (verifique com: ip route | grep default)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Encaminhamento IP e inicialização
# Ativar encaminhamento IP
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# Iniciar WireGuard
sudo systemctl enable --now wg-quick@wg0
sudo wg show # deve exibir a interface wg0 ativa
Configuração de rede — router, DuckDNS, MTU
Encaminhamento de portas no seu router
Cada ISP tem uma interface de administração diferente, mas a regra é a mesma: UDP, porta externa 51820 → IP local 192.168.1.10, porta interna 51820.
Teste a partir de outra rede (4G móvel): nc -zvu YOUR_PUBLIC_IP 51820.
DuckDNS — DNS dinâmico gratuito
# Crie uma conta em duckdns.org, anote o seu token
# Crie o script de atualização
mkdir -p ~/duckdns
cat > ~/duckdns/duck.sh << 'EOF'
#!/bin/bash
echo url="https://www.duckdns.org/update?domains=myvpn&token=YOUR_TOKEN&ip=" | curl -k -o ~/duckdns/duck.log -K -
EOF
chmod +x ~/duckdns/duck.sh
# Cron a cada 5 minutos
(crontab -l 2>/dev/null; echo "*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1") | crontab -
Otimização de MTU
O WireGuard tem por padrão MTU 1420. Se vir pacotes fragmentados:
# Testar fragmentação
ping -M do -s 1392 8.8.8.8
# Se falhar, adicione em wg0.conf [Interface]:
# MTU = 1380
Para detalhes completos sobre templates de configuração do WireGuard e casos de borda de MTU, veja o nosso guia de templates de configuração do WireGuard.
Configuração do cliente — Mac, Windows, iOS, Android
Gerar uma configuração de cliente
# No servidor, para cada cliente:
CLIENT_PRIVKEY=$(wg genkey)
CLIENT_PUBKEY=$(echo $CLIENT_PRIVKEY | wg pubkey)
cat << EOF
[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.8.0.2/32
DNS = 10.8.0.1
[Peer]
PublicKey = $SERVER_PUBKEY
Endpoint = myvpn.duckdns.org:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF
Adicione o cliente ao servidor:
sudo wg set wg0 peer $CLIENT_PUBKEY allowed-ips 10.8.0.2/32
sudo wg-quick save wg0 # persiste a configuração
Código QR para iOS e Android
# Salvar configuração do cliente num arquivo
cat > /tmp/client1.conf << 'EOF'
[Interface]
PrivateKey = CLIENT_PRIVKEY_HERE
Address = 10.8.0.2/32
DNS = 10.8.0.1
[Peer]
PublicKey = SERVER_PUBKEY_HERE
Endpoint = myvpn.duckdns.org:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF
# Exibir código QR no terminal
qrencode -t ansiutf8 < /tmp/client1.conf
# Apagar após escanear (não deixe chaves privadas por aí)
rm /tmp/client1.conf
Escaneie com a aplicação oficial do WireGuard (App Store iOS / Google Play). A conexão é estabelecida em <2 segundos.
macOS e Windows: descarregue a aplicação oficial do WireGuard, importe o arquivo .conf diretamente.
Para comparar com a alternativa Tailscale que elimina toda esta configuração manual, leia o guia do nó de saída do Tailscale. E para entender como o Cloudflare WARP se compara à sua configuração no Pi, veja WARP vs WireGuard auto-hospedado.
Para utilizadores que viajam para países censurados (China, Irão, Rússia): WireGuard num Pi 5 será bloqueado — o GFW identifica sessões WireGuard. Utilizadores avançados podem preferir V2Ray com VLESS + REALITY para melhor resistência à censura num VPS na nuvem com um nó de saída em Singapura ou Tóquio. A configuração do Pi 5 continua ideal para privacidade doméstica, acesso LAN local e países sem inspeção profunda de pacotes.
Otimizações e manutenção
Atualizações de segurança automáticas
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
# Escolha "Sim" para ativar atualizações automáticas de segurança
Monitorização com journalctl
# Logs do WireGuard em tempo real
sudo journalctl -u wg-quick@wg0 -f
# Ver peers conectados e estatísticas
sudo wg show
# Tráfego por peer (bytes recebidos/enviados)
sudo wg show all dump
fail2ban contra scans SSH
sudo apt install -y fail2ban
cat | sudo tee /etc/fail2ban/jail.local << 'EOF'
[sshd]
enabled = true
port = 22
maxretry = 3
bantime = 3600
findtime = 600
EOF
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
Backup da configuração do WireGuard
# Backup automático semanal para drive USB ou NAS local
(crontab -l; echo "0 3 * * 0 sudo cp -r /etc/wireguard ~/backup/wg-$(date +%Y%m%d)") | crontab -
Swap se usar 4 GB de RAM
Se estiver a usar o modelo de 4 GB com Pi-hole + WireGuard ativo:
sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile # Defina CONF_SWAPSIZE=1024
sudo dphys-swapfile setup
sudo dphys-swapfile swapon
Monitorizar temperatura
Com uma caixa passiva como a Argon NEO 5, um Pi 5 normalmente mantém-se nos 40s °C sob carga de VPN + Pi-hole. Sem uma caixa, funciona muito mais quente — o estrangulamento da CPU começa aos 80°C, por isso é recomendado um dissipador ou caixa.
# Temperatura em tempo real
watch -n 2 vcgencmd measure_temp
Para uma visão completa sobre a configuração avançada de rede que precisará ao executar múltiplos clientes simultâneos, veja o nosso guia de VPN multi-cliente WireGuard da Contabo — os conceitos de NAT são idênticos no Pi.
O que esperar: débito na ordem do seu upload doméstico, latência adicional de milissegundos de um dígito na LAN, um consumo de energia de ~6-8W, e segurança sólida com fail2ban e SSH apenas com chave. Uma coisa a planear: uma falha de energia em casa derruba o túnel — um pequeno UPS (por exemplo, um APC 500VA) mantém-no ativo durante cortes breves.
O WireGuard é suficiente para a maioria dos casos de uso de auto-hospedagem. No entanto, utilizadores avançados podem preferir V2Ray para melhor resistência à censura — particularmente útil se precisar de se conectar a partir da China, Irão ou Rússia, onde os protocolos VPN padrão são ativamente bloqueados.
★ Datacenter GDPR em Nuremberg · ✓ IPv4 dedicado incluído · 200+ Mbps garantidos
Self-host your VPN on your own VPS → ContaboFull root access · public IPv4 · pick your region→