Quer uma VPN própria. Sem auditoria anual de "não-registos", sem IP partilhado com 4.000 estranhos, sem duplicação de preço quando a promoção termina. Este guia coloca o WireGuard a funcionar num Contabo VPS em 20 minutos, desde a inscrição até ao primeiro curl ifconfig.me devolvendo o IP do seu VPS alemão.
Esta é a configuração exata que recomendamos para um túnel auto-hospedado em produção. A Contabo anuncia uma ligação de 200 Mbit/s, e a localização em Nuremberga, no centro da Europa, mantém a latência baixa para clientes FR/EU.
Porquê Contabo em vez de Hetzner, OVH ou DigitalOcean
A escolha do fornecedor de VPS para uma VPN auto-hospedada não é trivial e condiciona a relação preço-desempenho-jurisdição que terá nos próximos 3 a 5 anos. Comparando as especificações publicadas da Contabo, Hetzner Cloud e OVH, o veredicto resume-se a três eixos: preço, desempenho, jurisdição.
No preço, o Contabo VPS S Cloud a €4,99/mês para 4 vCPU / 8 GB RAM / 200 Mbps é imbatível na Europa. O Hetzner CX22 tem um equivalente a €4,15/mês, mas apenas 2 vCPU e 4 GB RAM, metade da capacidade se quiser hospedar Nextcloud, Pi-hole ou Vaultwarden juntamente com a VPN. O OVH VPS Value a €4,50/mês oferece 2 vCPU / 4 GB / 1 vCPU limitado a 20% de roubo de CPU em certos períodos — o pior negócio dos três na prática.
No desempenho, ambos os hosts anunciam largura de banda ampla para uma VPN pessoal (Contabo uma ligação de 200 Mbit/s, Hetzner uma porta gigabit partilhada). Para uma VPN auto-hospedada, mesmo uma ligação de 200 Mbit/s é mais do que suficiente para saturar a maioria das ligações domésticas, por isso o débito máximo raramente é o fator decisivo — jurisdição e preço geralmente importam mais. Execute iperf3 você mesmo a partir da sua própria ligação se precisar de números exatos.
Na jurisdição, a Contabo tem o seu principal DC em Nuremberga (Alemanha), Hetzner em Falkenstein (também Alemanha), OVH em Roubaix ou Estrasburgo (França). Alemanha e França têm quadros comparáveis de GDPR e ambos estão fora do US CLOUD Act. Diferença prática: a empresa-mãe da Contabo é puramente alemã (GmbH Munique), Hetzner igual (GmbH Gunzenhausen), OVHcloud está listada na bolsa de Paris desde 2021, o que adiciona uma camada de pressão de acionistas que as outras duas não têm. Para uma VPN com foco na privacidade, preferimos ligeiramente as GmbHs alemãs não listadas.
O diferenciador final é o suporte por email. A Contabo responde tipicamente entre 4 e 24h em tickets, Hetzner entre 2 e 12h, OVH entre 24h e 5 dias. Para uma VPN pessoal onde pode resolver a maioria dos problemas você mesmo via SSH, o suporte importa pouco — exceto no dia em que o seu VPS não reinicia após uma atualização de kernel e precisa de acesso à consola de resgate. Nesse dia, Hetzner ganha facilmente.
Passo 1 — Encomendar o Contabo VPS
Vá a contabo.com via nosso link /go/contabo-vps-2y e escolha:
- Plano: VPS S Cloud (4 vCPU AMD EPYC, 8 GB RAM, 50 GB NVMe, 200 Mbps garantidos, 32 TB/mês de tráfego)
- Compromisso: 24 meses (fixa o preço em 4,99 €/mês, mensal é 8,49 €)
- SO: Ubuntu 22.04 LTS (24.04 também funciona, mas 22.04 mantém-se mais estável para pacotes WireGuard)
- Datacenter: Nuremberga (DE) — melhor latência França/Europa + jurisdição GDPR alemã
- Senha root: gere uma forte, guarde temporariamente no seu gestor de senhas (apague após criar utilizador não-root)
- Add-ons: desmarque tudo (backups Contabo não são necessários, fazemos backup nós mesmos)
Total antecipado ~119 € ao longo de 24 meses. Na ativação, recebe um email com o IP público e senha root. Planeie de 5 minutos a 4 horas dependendo do horário. Horas de pico (18h-22h CET, terça/quarta-feira) são mais lentas.
Divulgação:
/go/contabo-vps-2yé um link patrocinado. Se adquirir o VPS, ganhamos uma comissão sem custo para si. Os nossos preços não são afetados. Não escreveríamos este guia se não estivéssemos a usar a Contabo nós mesmos.
Passo 2 — Primeiro SSH e reforço
No seu terminal local:
ssh root@SEU.IP.PUBLICO
# Aceite a impressão digital, cole a senha root
Uma vez conectado, atualize primeiro:
apt update && apt upgrade -y
apt install -y curl wget unzip fail2ban
Crie um utilizador não-root (SSH root será desativado):
adduser eric
# Siga as instruções (senha forte, nome completo opcional)
usermod -aG sudo eric
Copie a sua chave pública SSH do seu MacBook local (em outro terminal):
ssh-copy-id eric@SEU.IP.PUBLICO
# Se ssh-copy-id estiver em falta: cat ~/.ssh/id_ed25519.pub | ssh root@IP "mkdir -p /home/eric/.ssh && cat >> /home/eric/.ssh/authorized_keys && chown -R eric:eric /home/eric/.ssh && chmod 700 /home/eric/.ssh && chmod 600 /home/eric/.ssh/authorized_keys"
Teste o login não-root num novo terminal sem fechar o primeiro:
ssh eric@SEU.IP.PUBLICO
# Deve fazer login apenas com a frase-passe da chave SSH
Se funcionar, desative o SSH root e a autenticação por senha em /etc/ssh/sshd_config (a partir do shell root):
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd
Agora a porta 22 permanece aberta mas apenas com chave SSH e apenas para eric. Sem mais risco de força bruta no root.
Passo 3 — Firewall UFW
# Ainda como root
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp comment 'SSH'
ufw allow 51820/udp comment 'WireGuard'
ufw enable
# Responda y
ufw status verbose
O UFW está agora ativo. Saia da sessão root e continue como eric com sudo.
Passo 4 — Instalar WireGuard
# Como eric com sudo
sudo apt install -y wireguard qrencode iptables-persistent
Gerar chaves do servidor:
sudo bash -c 'umask 077 && wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub'
sudo cat /etc/wireguard/server.pub
# Anote a chave pública, vai precisar dela para os clientes
Identifique a interface pública (pode ser eth0, ens3, ens18, etc.):
ip route | awk '/default/ {print $5}'
# Na Contabo geralmente eth0 ou ens18
Passo 5 — Configurar /etc/wireguard/wg0.conf
Edite (ajuste eth0 se diferente acima):
sudo nano /etc/wireguard/wg0.conf
Cole isto (substitua SERVER_PRIVATE_KEY pelo conteúdo de /etc/wireguard/server.key):
[Interface]
PrivateKey = SERVER_PRIVATE_KEY
Address = 10.66.66.1/24
ListenPort = 51820
MTU = 1420
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Ativar ip_forward:
sudo bash -c 'echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf'
sudo sysctl -p
# Verifique: sysctl net.ipv4.ip_forward (deve dizer 1)
Iniciar WireGuard:
sudo systemctl enable --now wg-quick@wg0
sudo wg show
# Deve mostrar a interface wg0, chave pública, porta de escuta
Passo 6 — Criar o primeiro peer (cliente)
No servidor, gere uma chave de cliente:
sudo mkdir -p /etc/wireguard/clients
sudo bash -c 'umask 077 && wg genkey | tee /etc/wireguard/clients/mac.key | wg pubkey > /etc/wireguard/clients/mac.pub'
sudo cat /etc/wireguard/clients/mac.pub
# Anote esta chave pública
Adicione o peer ao servidor wg0.conf:
sudo bash -c 'cat >> /etc/wireguard/wg0.conf <<EOF
[Peer]
# MacBook
PublicKey = CLIENT_MAC_PUBKEY
AllowedIPs = 10.66.66.2/32
EOF'
Recarregue a configuração sem desligar:
sudo wg syncconf wg0 <(wg-quick strip wg0)
Gerar o ficheiro do cliente (transfira de forma segura para MacBook/iPhone):
sudo bash -c 'cat > /etc/wireguard/clients/mac.conf <<EOF
[Interface]
PrivateKey = $(cat /etc/wireguard/clients/mac.key)
Address = 10.66.66.2/24
DNS = 9.9.9.9, 149.112.112.112
MTU = 1420
[Peer]
PublicKey = $(cat /etc/wireguard/server.pub)
Endpoint = SEU.IP.PUBLICO:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
EOF'
Para iPhone / Android, codifique como QR:
sudo qrencode -t ansiutf8 < /etc/wireguard/clients/mac.conf
Digitalize este QR a partir da app WireGuard (App Store, Play Store) e o túnel está configurado.
Para macOS / Linux desktop, obtenha o .conf localmente:
# No seu Mac
scp eric@SEU.IP.PUBLICO:/etc/wireguard/clients/mac.conf ~/Downloads/
# Importe da app oficial WireGuard
Passo 7 — Testes de fuga
Ative o túnel no seu cliente, depois num navegador:
- ipleak.net: o seu IP público deve ser o VPS Contabo Nuremberga. Geo = Alemanha. Se ainda vir o IP do seu ISP francês → o túnel não está a encaminhar, verifique
AllowedIPsdo cliente. - dnsleaktest.com → botão "Extended test": o DNS retornado deve ser Quad9 (9.9.9.9) ou o seu VPS. Se vir DNS Orange/SFR/Free → fuga de DNS, verifique
DNS = 9.9.9.9no.confdo cliente. - browserleaks.com/webrtc: nenhum IP local deve vazar via WebRTC. Se vazar → desative WebRTC no navegador (uBlock Origin → "Prevent WebRTC from leaking").
curl ifconfig.mea partir do terminal do cliente: deve retornar o IP do VPS.
Tudo verde: a sua VPN auto-hospedada funciona. Bem-vindo.
Passo 8 — Backups e manutenção
O túnel está a funcionar. Bons hábitos:
- Backup de
/etc/wireguard/semanalmente:rsync -avz eric@VPS:/etc/wireguard/ ~/backup-wg/$(date +%F)/ - Atualizações mensais:
sudo apt update && sudo apt upgrade -y && sudo reboot(~30s de inatividade, ou useunattended-upgrades) - Monitorização: veja o guia de monitorização com Prometheus + Grafana
- Kill switch no lado do cliente: veja o guia de kill switch para Linux (iptables + systemd)
- Modelos específicos: veja os 8 modelos WireGuard prontos a usar
Custo total ao longo de 5 anos
Para comparar honestamente com um serviço VPN comercial:
| Opção | Custo 24 meses | Custo 5 anos (extrapolado) | Largura de banda |
|---|---|---|---|
| Contabo VPS S Cloud (auto-hospedado) | 119 € | ~298 € | 200 Mbps, 32 TB/mês |
| NordVPN 2 anos + renovação anual | 72 € | ~600 € | "Ilimitado" partilhado |
| ExpressVPN 1 ano + renovação | 100 € | ~750 € | "Ilimitado" partilhado |
E no VPS Contabo também pode hospedar: um DNS Pi-hole, Nextcloud, Vaultwarden, um bot Discord, uma instância pessoal Mastodon. A VPN em si usa ~1% de CPU e RAM em uso pessoal normal.
Veredicto
WireGuard no Contabo VPS S a 4,99 €/mês continua a ser a nossa escolha #1 para VPN auto-hospedada. Configuração em ~20 minutos, uma ligação anunciada de 200 Mbit/s, baixa latência da Europa Ocidental, jurisdição GDPR alemã. A verdadeira desvantagem: suporte apenas por email, não ideal durante uma interrupção urgente.
Para começar: Contabo VPS S Cloud via nosso link /go/contabo-vps-2y. Pode cancelar nos primeiros 30 dias se a configuração não se adequar, conforme os termos da Contabo.
A nossa revisão completa do Contabo VPS detalha pontos fortes e fracos em 5 categorias (desempenho, preço, RAM/CPU, suporte, painel) com a divisão de pontuação.
★ 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→