Como configurar uma VPN WireGuard no seu VPS

Escrito pela equipe ApexVPS • Última atualização: julho de 2026 • leitura de 9 min

Este tutorial de configuração de VPN WireGuard mostra como construir sua própria VPN privada, rápida e moderna em um servidor Ubuntu ou Debian. WireGuard é um protocolo VPN leve embutido no kernel Linux, então é dramaticamente mais simples que OpenVPN ou IPsec, enquanto ainda oferece criptografia forte e atualizada. Ao final, você terá um servidor em execução, pelo menos um cliente conectado e controle total sobre seu próprio túnel criptografado — sem assinatura de VPN de terceiros.

Executar WireGuard em sua própria máquina significa que o tráfego termina em hardware que você aluga, não em um endpoint VPN de consumo congestionado. Se você quiser uma visão mais profunda de por que um servidor privado é a melhor base para isso, leia nosso guia sobre como escolher um VPS para uma VPN pessoal antes de começar.

O que você precisa antes de começar

Um endpoint estável e sem contenção é importante para uma VPN, por isso recursos verdadeiramente dedicados superam hospedagem compartilhada supervendida. Um IPv4 dedicado está disponível nos planos Business e Enterprise da ApexVPS, dando ao seu túnel um endereço que não é compartilhado com ninguém mais.

Passo 1: Atualize o sistema e instale o WireGuard

Comece atualizando o índice de pacotes e instalando as ferramentas de espaço do usuário do WireGuard. Em um kernel moderno, este é o único pacote que você precisa.

sudo apt update
sudo apt install wireguard -y

Isso instala wg e wg-quick, os dois comandos que gerenciam chaves, interfaces e configuração. Você pode confirmar a instalação com wg --version.

Passo 2: Gere as chaves do servidor

O WireGuard autentica peers com um par de chaves pública/privada, muito parecido com SSH. Entre no diretório de configuração, ajuste as permissões do arquivo com umask e gere as chaves em uma única etapa.

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

A linha umask 077 garante que a chave privada só possa ser lida pelo root. Imprima os dois valores para que você possa colá-los na configuração a seguir.

sudo cat /etc/wireguard/server_private.key
sudo cat /etc/wireguard/server_public.key

Mantenha a chave privada em segredo. Quem a possuir pode se passar pelo seu servidor.

Etapa 3: Crie a configuração do servidor (wg0.conf)

A interface do servidor é descrita em um único arquivo, /etc/wireguard/wg0.conf. Crie-o com seu editor de preferência:

sudo nano /etc/wireguard/wg0.conf

Cole o bloco abaixo, substituindo <SERVER_PRIVATE_KEY> pela chave privada da Etapa 2 e eth0 pelo nome real da sua interface, se for diferente.

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>

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

Aqui, 10.8.0.1/24 é a sub-rede VPN privada, 51820/udp é a porta de escuta, e as regras PostUp/PostDown adicionam e removem NAT para que o tráfego do cliente seja mascarado através da interface pública do servidor. Para descobrir o nome da sua interface, execute:

ip route list default

A palavra após dev na saída (frequentemente eth0, ens3 ou enp1s0) é a interface a ser usada nas duas linhas de firewall acima.

Etapa 4: Ative o encaminhamento de IP e NAT

Por padrão, o Linux não roteia pacotes entre interfaces, então o kernel precisa ser instruído a encaminhar. Ative isso de forma persistente com um arquivo drop-in do sysctl.

echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl -p /etc/sysctl.d/99-wireguard.conf

Se você também rotear IPv6 através do túnel, adicione net.ipv6.conf.all.forwarding = 1 ao mesmo arquivo. A regra MASQUERADE da Etapa 3 já lida com o NAT em si, então, com o encaminhamento ativo, o caminho de roteamento está completo.

Abra a porta no firewall

Permita a porta UDP do WireGuard. Se você usar ufw, execute o seguinte e lembre-se de manter o SSH aberto para não se trancar para fora.

sudo ufw allow 51820/udp
sudo ufw allow OpenSSH
sudo ufw enable

Se você gerenciar as regras diretamente com iptables em vez de ufw, as linhas PostUp já adicionam as regras de encaminhamento e NAT; você só precisa garantir que o UDP 51820 de entrada seja permitido por qualquer firewall do host ou grupo de segurança do provedor.

Etapa 5: Inicie o WireGuard com systemd

O wg-quick vem com um modelo de serviço systemd, então você pode iniciar o túnel agora e ele voltará automaticamente após uma reinicialização.

sudo systemctl enable --now wg-quick@wg0
sudo systemctl status wg-quick@wg0

A flag enable --now inicia a interface e a configura para iniciar na inicialização. Uma verificação rápida confirma que a interface está ativa:

sudo wg show

Você deve ver uma interface wg0 com sua chave pública e porta de escuta. Ainda não há peers — isso é a próxima etapa.

Etapa 6: Adicione um cliente (peer)

Cada dispositivo que se conecta é um peer com seu próprio par de chaves. Gere um par de chaves para seu primeiro cliente:

wg genkey | sudo tee client1_private.key | wg pubkey | sudo tee client1_public.key

Agora registre o cliente no servidor. Acrescente um bloco [Peer] ao /etc/wireguard/wg0.conf, usando a chave pública do cliente e o próximo endereço livre na sub-rede VPN.

[Peer]
PublicKey = <CLIENT1_PUBLIC_KEY>
AllowedIPs = 10.8.0.2/32

Recarregue a interface para que o novo peer tenha efeito:

sudo systemctl restart wg-quick@wg0

Prefere não derrubar o túnel? Você pode adicionar o peer a quente sem reiniciar:

sudo wg set wg0 peer <CLIENT1_PUBLIC_KEY> allowed-ips 10.8.0.2/32

Etapa 7: Crie a configuração do cliente e um QR code

No servidor, monte o arquivo de configuração do cliente. É isso que o dispositivo — um laptop ou celular — carregará. Substitua os placeholders pela chave privada do cliente e pela chave pública e IP público do servidor.

[Interface]
PrivateKey = <CLIENT1_PRIVATE_KEY>
Address = 10.8.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = <SERVER_PUBLIC_IP>:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Definir AllowedIPs = 0.0.0.0/0, ::/0 roteia todo o tráfego do cliente através do túnel — o comportamento clássico de VPN completa. PersistentKeepalive = 25 mantém a conexão ativa através de NAT e firewalls. Salve isso como client1.conf.

Para um desktop, copie client1.conf para a máquina e importe-o no cliente WireGuard oficial. Para um celular, renderize o arquivo como um QR code escaneável diretamente no terminal:

sudo apt install qrencode -y
qrencode -t ansiutf8 < client1.conf

Abra o app WireGuard no Android ou iOS, escolha "Adicionar túnel" e depois "Escanear QR code", e o túnel é importado em segundos. Os apps e clientes oficiais estão todos linkados a partir de wireguard.com.

Etapa 8: Verifique o túnel

Ative o túnel no cliente e confirme o handshake no servidor. Uma conexão saudável mostra um handshake recente e contadores de transferência crescentes.

sudo wg show

Procure por um timestamp latest handshake e valores transfer diferentes de zero sob o seu peer. Finalmente, verifique a partir do cliente se o seu IP público agora é o IP do servidor:

curl ifconfig.me

Se isso retornar o endereço do VPS, seu tráfego está fluindo pelo túnel e a configuração do WireGuard VPS está completa. Para adicionar mais dispositivos, repita os Passos 6 e 7 com um novo par de chaves e o próximo endereço no intervalo 10.8.0.0/24.

Solucionando problemas de uma conexão que não sobe

Se wg show nunca relatar um handshake, verifique os suspeitos usuais em ordem. Primeiro, confirme se a porta está realmente aberta: de outra máquina execute nc -uzv <SERVER_PUBLIC_IP> 51820, e verifique se o security group ou firewall do seu provedor permite UDP 51820 de entrada, não apenas TCP. Segundo, certifique-se de que o encaminhamento de IP está realmente habilitado com sysctl net.ipv4.ip_forward — deve retornar 1. Terceiro, verifique se o nome da interface na regra NAT PostUp corresponde à saída de ip route list default; uma incompatibilidade é a razão mais comum para o tráfego autenticar mas nunca alcançar a internet. Finalmente, verifique se as chaves não estão trocadas: a configuração do servidor contém a chave privada do servidor e a chave pública do cliente, enquanto a configuração do cliente espelha esse arranjo. Uma única chave cruzada bloqueia silenciosamente o handshake.

Escolhendo o VPS certo para WireGuard

O WireGuard em si é minúsculo — o protocolo mal toca a CPU — então até um plano básico roda uma VPN pessoal confortavelmente. O que realmente molda a experiência é a rede: largura de banda, latência para sua região, e se o IP é só seu. A ApexVPS opera em vCPU, RAM e armazenamento NVMe verdadeiramente dedicados em 39 localizações, com baixa latência nas principais regiões, então a taxa de transferência permanece previsível em vez de cair sob vizinhos barulhentos.

Se você quer que o túnel viva em um endereço estável e não compartilhado, um IPv4 dedicado está incluído nos planos Business e Enterprise. E porque a privacidade tende a ser o objetivo principal de auto-hospedar uma VPN, vale notar como você se registra: ApexVPS é um VPS sem KYC com cadastro apenas por e-mail e checkout exclusivamente em criptomoedas através da OxaPay, aceitando Bitcoin, Ethereum, USDT e mais de 30 criptomoedas — sem nome, endereço, cartão de crédito ou conta bancária.

Perguntas frequentes

É difícil configurar WireGuard em um VPS?

Não. O WireGuard usa um arquivo de configuração pequeno e legível e um punhado de comandos padrão. Em um VPS Ubuntu ou Debian recém-instalado, você pode instalá-lo, gerar chaves, escrever wg0.conf e conectar seu primeiro cliente em aproximadamente dez a quinze minutos.

Preciso de um IP dedicado para uma VPN WireGuard?

Um IP dedicado não é estritamente necessário, mas dá ao seu túnel um ponto de extremidade estável que não é compartilhado com outros clientes. Na ApexVPS, um IPv4 dedicado está incluído no plano Business, com dois no Enterprise.

Quais versões do Ubuntu e Debian suportam WireGuard?

O WireGuard está integrado ao kernel Linux desde a versão 5.6, então Ubuntu 20.04 e posteriores e Debian 11 e posteriores o incluem por padrão. Você só precisa instalar as ferramentas de userspace com apt.

Posso usar o mesmo servidor no meu celular?

Sim. Adicione um segundo peer para o celular, gere uma configuração de cliente e renderize-a como um código QR com qrencode. Os aplicativos oficiais do WireGuard para Android e iOS escaneiam o código e conectam instantaneamente.

Posso pagar pelo VPS sem cartão de crédito?

Sim. O checkout da ApexVPS é exclusivamente em criptomoedas e aceita Bitcoin, Ethereum, USDT e mais de 30 criptomoedas. O cadastro pede apenas um e-mail para enviarmos os dados de acesso — sem nome, endereço ou documento.

Pronto para hospedar sua própria VPN? Veja por que a ApexVPS é ideal para VPNs privadas →