VPNSmith
self-host-vpn-headINFO

Alojamento Próprio de VPN no Raspberry Pi 5 (2026): Guia de Configuração do WireGuard

Configure uma VPN WireGuard no Raspberry Pi 5 em 2026: hardware, configuração do SO, configuração do servidor, encaminhamento de portas, DuckDNS, clientes iOS/Android/Mac/Windows. Débito típico de ~80 Mbps, consumo de energia de ~6W.

Por Eric Gerard · Fondateur · VPNSmith — Spécialiste self-host VPN & VPS GDPR9 min de leituraPhoto : Harrison Broadbent — Unsplash

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:

ComponenteModeloPreço indicativo
Raspberry Pi 58 GB RAM (recomendado)~$100 / €100
Fonte de alimentaçãoUSB-C 27W oficial (PI-PSU)~$12 / €12
microSDSanDisk Extreme 32 GB UHS-I~$12 / €12
Caixa + dissipadorArgon NEO 5 ou caixa oficial + Cooler Ativo~$15-20 / €15-20
Cabo EthernetCat 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

Filas de servidores num centro de dados
Filas de servidores num centro de dados

Gravação do cartão

  1. Descarregue o Raspberry Pi Imager (Windows/Mac/Linux)
  2. Selecione Raspberry Pi OS Lite 64-bit (Bookworm — Debian 12) — não é necessário ambiente de trabalho
  3. 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ão pi, desativado por padrão desde 2022)
    • Localização: o seu fuso horário, layout de teclado correto
  4. 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