Base de Conhecimento

WireGuard na VPS: como criar sua própria VPN

  • wireguard, vpn, vps, ubuntu, firewall, ufw
  • Usuários acharam útil: 0

Aprenda a criar uma VPN própria com WireGuard na sua VPS Ubuntu: instalar, gerar as chaves, configurar servidor e cliente, liberar a porta e ligar o túnel.

Por Redação Eleven Host · @robson.direitodigital · 31 de outubro de 2026 · 9 min de leitura

Arte da Eleven Host: janela de terminal com o título: WireGuard na VPS: como criar sua própria VPN

Capa da Redação Eleven Host para o guia: WireGuard na VPS: como criar sua própria VPN Arte: Eleven Host

O WireGuard é uma VPN simples e moderna. Numa VPS, você cria com ele um túnel entre o seu computador ou celular e o servidor, e o tráfego combinado passa por esse túnel. Este guia mostra o passo a passo no Ubuntu, com nomes e endereços de exemplo.

Se você ainda não tem um servidor, o guia completo de servidor VPS explica o que é uma VPS e como escolher. Comandos e campos vêm da documentação do Ubuntu, do wireguard.com e das páginas de manual.

Para que serve uma VPN própria na VPS

Na documentação do Ubuntu, o WireGuard é tratado como uma interface de rede, como as demais. Cada ponta da conexão tem a sua chave privada e a sua chave pública, e os guias preferem falar em "peers" (pontas) em vez de "servidor" e "cliente". Aqui, "servidor" é a VPS e "cliente" é o seu computador ou celular.

O site oficial descreve o protocolo como uma VPN extremamente simples, rápida e moderna, que encapsula pacotes IP sobre UDP.

Com uma VPN própria na VPS, há dois usos que a documentação mostra:

  • Acessar só os serviços da VPS: no cliente, o campo AllowedIPs lista apenas a rede do túnel. Só esse tráfego vai pelo túnel, e o resto da sua navegação segue o caminho normal.
  • Mandar todo o tráfego pela VPS: com 0.0.0.0/0 no AllowedIPs, a VPN vira o gateway padrão, e todo o tráfego do cliente é enviado para a VPS.

O AllowedIPs funciona como uma tabela de rotas ao enviar e como uma lista de acesso ao receber. É ele que decide o que passa pelo túnel.

Instalar o WireGuard no Ubuntu

No site oficial, o comando de instalação no Ubuntu é este:

sudo apt install wireguard

Segundo a página do pacote para o Ubuntu 24.04 (noble), o wireguard é um metapacote que depende do wireguard-tools, as ferramentas de linha de comando. A versão listada para o noble é a 1.0.20210914. Em outras versões do Ubuntu, confira a página do pacote antes de seguir.

Rode o comando na VPS.

Gerar as chaves do servidor e do cliente

Cada ponta precisa de um par de chaves. Segundo a página de manual do wg, o genkey gera uma chave privada em base64 e o pubkey calcula a chave pública a partir da privada. O guia do Ubuntu usa esta sequência, começando com umask 077. Aqui ela aparece com os nomes do nosso exemplo, para a VPS:

umask 077

wg genkey > vps-private.key

wg pubkey < vps-private.key > vps-public.key

Repita o processo para o cliente, com nomes como notebook-private.key e notebook-public.key. Você pode gerar o par do cliente na própria máquina dele.

A regra é simples: a chave privada fica com quem a gerou, e só a chave pública vai para a outra ponta. A VPS recebe a pública do notebook, e o notebook recebe a pública da VPS. Não cole chave privada em chat, e-mail ou repositório.

Configurar o servidor: o arquivo wg0.conf

O wg-quick lê o arquivo /etc/wireguard/INTERFACE.conf. Para a interface wg0, é o /etc/wireguard/wg0.conf. Este é um exemplo para o lado da VPS, montado com as opções que a documentação descreve:

[Interface]

Address = 10.8.0.1/24

ListenPort = 51820

PrivateKey = <conteúdo de vps-private.key>

[Peer]

PublicKey = <conteúdo de notebook-public.key>

AllowedIPs = 10.8.0.2/32

Cada campo tem um papel:

  • Address: o endereço IP, com máscara, que a interface recebe. Aqui, 10.8.0.1/24 é um endereço de exemplo.
  • ListenPort: a porta em que a interface escuta. Nesta página, 51820 é a porta que escolhemos no arquivo, a mesma dos exemplos do site oficial. Ela não é uma porta fixa do protocolo: segundo a página de manual, se você não informar a ListenPort, a porta é escolhida de forma aleatória. Os guias do Ubuntu usam outro número nos exemplos deles. Escolha uma porta e use a mesma no firewall e no cliente.
  • PrivateKey: a chave privada da VPS, em base64. É obrigatória.
  • [Peer]: o bloco do outro lado. A PublicKey é a chave pública do notebook, e o AllowedIPs lista os IPs que entram e saem por aquele peer. Aqui, o IP do túnel do notebook, 10.8.0.2/32.

A documentação do Ubuntu tem uma dica de segurança: tirar a chave privada do arquivo e carregá-la com PostUp = wg set %i private-key /etc/wireguard/%i.key.

Configurar o cliente

Para o computador ou celular, o arquivo espelha o do servidor. Este é um exemplo montado com as opções documentadas, em que vpn.example.com representa o endereço da sua VPS:

[Interface]

Address = 10.8.0.2/24

PrivateKey = <conteúdo de notebook-private.key>

[Peer]

PublicKey = <conteúdo de vps-public.key>

Endpoint = vpn.example.com:51820

AllowedIPs = 10.8.0.0/24

PersistentKeepalive = 25

  • Endpoint: o endereço ou nome da VPS, dois-pontos e a porta. A porta é a do ListenPort do servidor.
  • AllowedIPs: com 10.8.0.0/24, só o tráfego da rede do túnel passa por ele. É o primeiro uso descrito no começo do guia.
  • PersistentKeepalive: o intervalo, em segundos, de um pacote vazio. Para quem está atrás de NAT, a documentação cita 25 segundos. Por padrão, a opção fica desligada.

Os aplicativos oficiais estão em wireguard.com, na página de instalação. No Windows, há um instalador, o wireguard-installer.exe. No macOS, o app está na Mac App Store. No iPhone, na App Store, e no Android, no Google Play.

Quer conhecer a VPS da Eleven Host? VPS a partir de R$ 17,00/mês no Plano Bronze; confira na loja o que cada plano inclui. Conhecer a VPS

Liberar a porta UDP no firewall

Antes de testar, libere a porta. A documentação do Ubuntu avisa que a porta do WireGuard precisa ser permitida nas regras de firewall, e que, como o WireGuard é só uma interface, você pode criar regras comuns de firewall para o tráfego dele.

Se a VPS usa o UFW, a página de firewall do Ubuntu mostra estes comandos, entre outros:

sudo ufw allow 22

sudo ufw enable

sudo ufw status verbose

A página libera a porta 22 antes do enable. Se você mudou a porta do SSH, libere a nova. O guia Mudar a porta do SSH: passo a passo na VPS mostra como fazer a troca.

Para o túnel, a regra por exemplo seria esta, com a porta e o protocolo UDP do nosso arquivo:

sudo ufw allow 51820/udp

Se você usa outro firewall, crie a regra equivalente: UDP, na porta do ListenPort.

Subir o túnel e ligar no boot

Na VPS, suba a interface com o wg-quick, que usa o arquivo /etc/wireguard/wg0.conf:

sudo wg-quick up wg0

Para o túnel voltar sozinho depois de um reinício do servidor, habilite o serviço do systemd:

sudo systemctl enable wg-quick@wg0

O systemctl também faz status, start, stop, reload e restart para esse serviço. Depois de acrescentar um peer ao arquivo, a documentação usa systemctl reload wg-quick@wg0. Se quiser rever o básico do comando, o guia systemctl: como iniciar, parar e ver serviços na VPS explica cada ação.

Suba também a interface no cliente. Para ver o estado do túnel, use o wg show, que mostra a configuração e as informações de execução do WireGuard. Rodar só wg faz a mesma coisa:

sudo wg show

Mandar todo o tráfego do cliente pela VPS

Para o segundo uso, o cliente troca o AllowedIPs por 0.0.0.0/0. Segundo a documentação do Ubuntu, com esse valor a VPN vira o gateway padrão e todo o tráfego é enviado para a outra ponta. A página de manual do wg-quick confirma que o script configura a interface como gateway padrão.

Mas a VPS também precisa saber rotear esse tráfego. O guia "Using the VPN as the default gateway", do Ubuntu, faz isso em dois passos, ambos na VPS. O primeiro é ativar o encaminhamento de pacotes. O arquivo /etc/sysctl.d/70-wireguard-routing.conf recebe esta linha:

net.ipv4.ip_forward = 1

E o comando abaixo aplica o arquivo:

sudo sysctl -p /etc/sysctl.d/70-wireguard-routing.conf -w

O segundo passo é a regra de NAT do guia, com a rede do nosso exemplo no lugar da rede do guia:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Troque eth0 pelo nome da placa de rede da sua VPS, se for outro. O guia do Ubuntu usa o arquivo /etc/rc.local para manter essa regra depois do reinício.

Atenção ao DNS

Mesmo com todo o tráfego pela VPS, as consultas de DNS ainda podem vazar. O guia do Ubuntu mostra uma linha para tratar isso, que usa o resolvectl:

PostUp = resolvectl dns %i <IP do DNS>; resolvectl domain %i ~.

Por isso, não trate o WireGuard como algo que esconde tudo. Ele encapsula os pacotes IP sobre UDP entre o cliente e a VPS.

Checklist do WireGuard

  • Instalei o pacote wireguard na VPS.
  • Gerei um par de chaves para cada ponta, e nenhuma chave privada saiu da máquina que a gerou.
  • O wg0.conf da VPS tem o Address, o ListenPort, a PrivateKey e o bloco [Peer] com a chave pública do cliente.
  • O arquivo do cliente tem o Endpoint com a mesma porta do ListenPort.
  • Escolhi o AllowedIPs: só a rede do túnel, ou 0.0.0.0/0 para todo o tráfego.
  • Liberei a porta UDP no firewall, sem perder o acesso SSH.
  • Subi o túnel com wg-quick up wg0 e habilitei o wg-quick@wg0 no boot.
  • Conferi o estado com wg show.
  • Se mando todo o tráfego pela VPS, ativei o ip_forward, criei a regra de NAT e revisei o DNS.

Precisa de um servidor para a sua VPN? VPS a partir de R$ 17,00/mês no Plano Bronze; confira na loja o que cada plano inclui. Ver planos de VPS

Perguntas frequentes

A porta do WireGuard é a 51820?

Não. A porta é a que você escolhe no ListenPort. Sem esse campo, a página de manual diz que a porta é escolhida de forma aleatória. O 51820 é o número dos exemplos do site oficial e deste guia.

Como instalar o WireGuard no Ubuntu?

Com sudo apt install wireguard. O pacote traz também o wireguard-tools, com o wg e o wg-quick.

Para que serve o AllowedIPs?

Ao enviar, ele funciona como uma tabela de rotas. Ao receber, funciona como uma lista de acesso. No cliente, define o que passa pelo túnel.

O WireGuard impede o vazamento de DNS?

Não por conta própria. Com todo o tráfego pela VPS, o guia do Ubuntu avisa que as consultas de DNS ainda podem vazar e mostra a linha com resolvectl para tratar isso.

Como faço o túnel voltar sozinho depois de reiniciar a VPS?

Com sudo systemctl enable wg-quick@wg0.

Esta resposta lhe foi útil?

Artigos Relacionados