O mascote urso-polar do NordBastion em uma oficina de pedra Nórdica com um túnel criptografado ciano brilhante arqueando entre um laptop estilizado e uma torre de servidor, glifos de chave e cadeado orbitando o túnel
Tutorial · Self-host·11 min de leitura · 15 min prático

Auto-hospede uma VPN WireGuard em um VPS.
Quinze minutos para sua própria VPN pessoal.

Cinco etapas de "sem servidor" a "minha própria VPN pessoal" — sem KYC no cadastro, pago em cripto, sem provedor VPN de terceiros na cadeia de confiança. Testado no Debian 12 com WireGuard 1.0+ no kernel principal.

As cinco etapas
  1. 01

    Provisionar

    Um VPS Nordic

  2. 02

    Instalar

    apt install wireguard

  3. 03

    Configurar

    Chaves + wg0.conf

  4. 04

    Firewall

    UDP 51820 + encaminhamento

  5. 05

    Conectar

    wg-quick up wg0

Passo 01 · Provisionar

Escolha um bastion Nordic perto de onde você mora.

No painel: Solicitar → VPS → Sentinel ($5,90/mês, 2 vCPU / 4 GB / 120 GB NVMe). O Sentinel tem bandwidth ilimitado e uplink de 1 Gbps — mais que suficiente para uma VPN pessoal mesmo em streaming completo. Escolha o bastion mais próximo de onde você está fisicamente, porque cada byte que você envia passa pelo VPS antes de chegar ao destino. Um cliente europeu escolhe Stockholm ou Helsinki; um cliente das Américas / Ásia escolhe Reykjavík (menor latência transatlântica) ou Oslo.

Imagem de SO: Debian 12 é a recomendação. Ubuntu 22.04+ funciona de forma idêntica. Alpine funciona, mas usa nomes de pacotes diferentes (apk add wireguard-tools). FreeBSD também funciona, mas a sintaxe de configuração diverge. O servidor inicializa em cerca de 90 segundos; as credenciais root são exibidas uma vez no painel.

Passo 02 · Instalar

Um pacote, já no kernel.

Acesse via SSH como root. Em seguida:

apt update
apt install -y wireguard qrencode

É isso. O WireGuard está no kernel Linux principal desde a versão 5.6 (março de 2020), então o apt instala apenas as ferramentas do espaço do usuário (wg, wg-quick) — sem compilação de módulo, sem DKMS, sem reconstrução do kernel. O pacote qrencode será útil no passo 5 para enviar a configuração do cliente para um telefone como QR.

Ative o encaminhamento IP agora para não esquecer na etapa 4:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p
Passo 03 · Configurar

Gerar chaves, escrever wg0.conf. Dois minutos.

Gerar um par de chaves do servidor:

cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key

Agora gere um par de chaves de cliente por dispositivo:

wg genkey | tee laptop_private.key | wg pubkey > laptop_public.key
wg genkey | tee phone_private.key  | wg pubkey > phone_public.key

Crie /etc/wireguard/wg0.conf com as configurações do servidor + um bloco [Peer] por cliente:

[Interface]
PrivateKey = <contents of server_private.key>
Address    = 10.66.66.1/24, fd00:66::1/64
ListenPort = 51820
PostUp     = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown   = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# laptop
PublicKey  = <contents of laptop_public.key>
AllowedIPs = 10.66.66.2/32

[Peer]
# phone
PublicKey  = <contents of phone_public.key>
AllowedIPs = 10.66.66.3/32
Passo 04 · Firewall

Abra UDP 51820. Bloqueie o restante.

Se você usar UFW (padrão no Ubuntu):

ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp        # SSH (consider port-knocking or VPN-only in production)
ufw allow 51820/udp     # WireGuard
ufw enable

Os bastions da NordBastion também têm um firewall upstream gerenciado a partir do painel — você pode replicar as mesmas regras lá para defesa em profundidade. O firewall no nível do bastion bloqueia antes que o pacote chegue ao VPS, o que economiza CPU em varredura volumétrica.

Uma dica de privacidade que vale seguir: altere o ListenPort do WireGuard de 51820 (o padrão, que os scanners procuram) para uma porta aleatória entre 1024 e 65535. Isso não melhora a segurança contra um adversário determinado, mas reduz o ruído de scanners aleatórios.

Passo 05 · Conectar

Inicie o túnel. Primeiro cliente conectado em segundos.

No servidor:

systemctl enable --now wg-quick@wg0
wg                          # status: should show interface up

Crie um arquivo de configuração do cliente (laptop.conf) no servidor e copie-o para o laptop:

[Interface]
PrivateKey = <contents of laptop_private.key>
Address    = 10.66.66.2/24, fd00:66::2/64
DNS        = 1.1.1.1, 9.9.9.9       # or your favourite privacy resolver

[Peer]
PublicKey         = <contents of server_public.key>
Endpoint          = <server-ip>:51820
AllowedIPs        = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Para celular, passe a configuração pelo qrencode e escaneie com o aplicativo WireGuard:

qrencode -t ansiutf8 < phone.conf

É isso. O cliente conecta, o túnel sobe, e o laptop / telefone está agora acessando a internet pelo bastion Nórdico. Verifique com: curl https://api.ipify.org — o IP retornado é o IP público do VPS, não o da sua casa.

FAQ · WireGuard

Perguntas, respondidas.

Oito perguntas que um cliente VPN self-hosted de primeira vez faz.

Por que auto-hospedar uma VPN WireGuard em vez de usar NordVPN / Mullvad / ProtonVPN?

Três motivos reais. (1) A cadeia de confiança encolhe. Uma VPN comercial é "confie nesta empresa para não registrar você"; uma auto-hospedada é "confie neste provedor de VPS para não registrar você" — um participante a menos. (2) O endpoint da VPN é exclusivamente seu. IPs de saída de VPN comerciais são compartilhados entre milhares de usuários e bloqueados por muitos serviços; seu endpoint auto-hospedado é um IP novo e limpo que ninguém sinalizou. (3) Custo. Um Sentinel NordBastion custa $5,90/mês e executa uma VPN com largura de banda ilimitada; VPNs comerciais custam $5-$15/mês para infraestrutura compartilhada.

Por que WireGuard em vez de OpenVPN?

O WireGuard é menor (4.000 linhas de código de kernel vs ~100.000 do OpenVPN), mais rápido (frequentemente 3-5× maior throughput no mesmo hardware), mais simples de configurar (um único arquivo de configuração em vez de toda a plumbing de CA/cert/dhparam) e amigável para auditoria. Está no kernel Linux principal desde a versão 5.6 (2020), sem etapa de compilação. O OpenVPN continua útil para compatibilidade legada e tráfego baseado em TCP; para todo o resto, o WireGuard é o padrão moderno.

Meu ISP sabe que estou rodando uma VPN?

Seu ISP vê tráfego UDP criptografado na porta 51820 indo para um IP NordBastion. Esse padrão é reconhecível como tráfego VPN; o que está do outro lado não é. Se "usar uma VPN" é sensível no seu contexto, execute o WireGuard na porta 443 (ele fala UDP e não TCP, mas a porta é a mesma do HTTPS), e considere um wrapper de ofuscação como udp2raw se o ISP bloquear ativamente os handshakes do WireGuard.

Posso usar o VPS como VPN E como servidor para outras coisas?

Sim, padrão comum. O VPS roda WireGuard mais o que mais você precisar — um site pessoal, um nó Bitcoin, uma instância Mastodon. As regras de firewall mantêm o tráfego VPN e os serviços públicos isolados; iptables/nft pode rotear clientes VPN para serviços locais específicos e não para outros.

E quanto à geolocalização de IP — os sites vão achar que estou na Suécia?

Sim — seu IP de saída é o bastion NordBastion que você escolheu. Serviços de streaming que restringem por IP vão tratá-lo como sueco (bastion Stockholm), finlandês (Helsinki), norueguês (Oslo) ou islandês (Reykjavík). Sites bancários que sinalizam "login de novo país" vão acionar suas regras de fraude; esse é o comportamento normal, não um problema de VPN.

Quantos clientes um servidor WireGuard consegue lidar?

Praticamente ilimitado para uso pessoal. Cada peer adiciona alguns KB de memória. A restrição é o bandwidth e o uplink do bastion, não o daemon WireGuard em si. O tier Sentinel com bandwidth ilimitado e uplink de 1 Gbps vai saturar muito antes do processo WireGuard perceber.

Devo rodar isso em um VPS dedicado ou compartilhar com outros workloads?

Um VPS dedicado é mais limpo do ponto de vista de OPSEC — a única coisa associada ao IP é "minha VPN pessoal". Se você misturar cargas de trabalho, o tráfego da VPN e o tráfego da outra carga compartilharão um IP de saída, e qualquer problema de reputação de um deles se espalha para o outro. Por $5,90/mês é razoável mantê-los separados.

WireGuard self-hosted tem capacidade de kill-switch?

Sim, do lado do cliente. As configurações do WireGuard suportam um bloco PostUp / PostDown onde você adiciona regras iptables que descartam tráfego não-VPN quando o túnel está ativo; você também pode configurar o SO do cliente para recusar conexões não-VPN por padrão. Vários aplicativos gerenciadores de código aberto (wg-easy, WireGuard-UI, Pi-VPN) fazem isso por você.

Pronto

Solicite um Sentinel e inicie sua própria VPN.

Última revisão · 2026-05-20 · Testado · Debian 12 · WireGuard 1.0.20210914