VPN · Guia

Como usar um ficheiro de configuração WireGuard

Atualizado September 23, 2026 17 min de leitura

Nesta página
  1. O que há dentro de um ficheiro .conf, linha a linha
  2. Windows: importar o túnel
  3. Android e iPhone: ler o código QR ou importar o ficheiro
  4. macOS e Linux
  5. No router, para cobrir a casa toda
  6. Liga mas não carrega nada, e outros problemas reais
  7. De onde vem o ficheiro de configuração
  8. FAQ

Uma ligação WireGuard é um ficheiro de texto. É mesmo só isso: meia dúzia de linhas com as suas chaves, o endereço do servidor e as regras sobre o que passa pelo túnel. Depois de ter esse ficheiro, ligar-se a um servidor VPN WireGuard resume-se a entregá-lo à app WireGuard do dispositivo que estiver a usar.

Este guia faz duas coisas. Primeiro, lê um ficheiro de configuração real linha a linha, para que saiba o que faz cada definição e qual alterar quando algo corre mal. Depois, explica como importar esse ficheiro e ligar-se no Windows, Android, iPhone, macOS, Linux e num router, terminando com o punhado de problemas que explicam quase todas as queixas sobre o WireGuard: o handshake que nunca se completa e o túnel que liga mas não carrega nenhuma página.

O que há dentro de um ficheiro .conf, linha a linha

Todas as configurações WireGuard têm a mesma estrutura em duas partes. [Interface] descreve o seu lado do túnel; [Peer] descreve a máquina a que se está a ligar. Eis uma configuração de cliente completa, com os segredos substituídos por marcadores:

[Interface]
PrivateKey = YOUR_PRIVATE_KEY_KEEP_THIS_SECRET
Address    = 10.7.0.4/32
DNS        = 10.7.0.1

[Peer]
PublicKey           = THE_SERVER_PUBLIC_KEY_FROM_YOUR_PROVIDER
Endpoint            = 198.51.100.10:51820
AllowedIPs          = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
As duas chaves acima são marcadores, e o endereço 198.51.100.10 é um endereço de documentação reservado pelo RFC 5737: nada disto se liga a lado nenhum. Use os valores do seu próprio ficheiro.

O bloco [Interface]: o seu lado

  • PrivateKey: esta é a sua identidade na VPN. Quem a tiver pode fazer-se passar por si. São 44 caracteres base64 terminados em =; se a sua tiver outro comprimento, o ficheiro ficou truncado algures ao ser copiado.
  • Address: o IP que o seu dispositivo tem dentro do túnel, não o seu IP público. O /32 significa "apenas este endereço", o que é normal num cliente.
  • DNS: o resolvedor usado enquanto o túnel está ativo. Sem ele, o dispositivo continua a perguntar ao resolvedor antigo, o que revela o que está a pesquisar e muitas vezes impede a resolução de qualquer nome do outro lado.
  • MTU: opcional, e a linha mais útil de conhecer. Falta na maioria dos ficheiros porque o valor predefinido é o correto; consulte a secção de resolução de problemas para o caso em que não é.

O bloco [Peer]: o lado do servidor

  • PublicKey: a chave pública do servidor. A sua nunca aparece no seu próprio ficheiro; quem a guarda é o servidor.
  • Endpoint: para onde enviar os pacotes, no formato host:port. O WireGuard funciona apenas por UDP, e 51820 é a porta habitual, não uma porta obrigatória.
  • AllowedIPs: que destinos passam pelo túnel. 0.0.0.0/0, ::/0 significa tudo, que é precisamente para o que serve uma VPN de privacidade. Uma lista mais restrita (por exemplo, só a rede interna da sua empresa) envia apenas isso pelo túnel e deixa o resto na ligação normal. Chama-se a isto split tunnel (túnel dividido), e é uma escolha deliberada, não um túnel completo avariado.
  • PersistentKeepalive: envia um pequeno pacote a cada 25 segundos para que o dispositivo NAT entre si e o servidor mantenha aberto o caminho de regresso. É necessário sempre que estiver atrás de NAT, e num telemóvel ou numa ligação doméstica está sempre.
Um pormenor que esclarece uma confusão frequente. Address e DNS não são, de todo, definições do WireGuard: são instruções para o assistente wg-quick, que configura a sua interface de rede. O próprio WireGuard nunca as vê. Pode comprová-lo: wg-quick strip wg0 mostra a configuração que o kernel realmente recebe, e essas duas linhas simplesmente desaparecem. Isto importa se alguma vez configurar um túnel com wg setconf em vez de wg-quick, porque nesse caso nada atribui o seu endereço nem o seu resolvedor e o túnel sobe ligado a coisa nenhuma.

Precisa de um ficheiro de configuração para importar? Um serviço HytHost VPN entrega-lhe uma configuração WireGuard pronta a usar desde €0.99/mês.

Ver planos VPN

Windows: importar o túnel

O Windows tem uma app WireGuard oficial, e importar um ficheiro para ela é todo o trabalho.

  1. Instale o WireGuard a partir de wireguard.com/install.
  2. Clique em Adicionar túnel no canto inferior esquerdo, o que abre um seletor de ficheiros filtrado por Ficheiros de configuração (*.zip, *.conf). Escolha o seu .conf e ele aparece na lista de túneis, com o nome do ficheiro.
  3. Ou cole-o. A seta ao lado de Adicionar túnel oferece Adicionar túnel vazio…, que lhe dá uma caixa de texto: útil quando a configuração chegou numa mensagem e não como ficheiro. Vem preenchida com uma chave privada nova, por isso apague essa linha e cole a sua configuração por cima.
  4. Clique em Activar. O estado passa a Activo e o painel começa a contar os bytes transferidos. Esse contador é a verificação mais rápida que tem: se mostrar dados a sair e nada a voltar, o seu handshake não se está a completar.
Há duas opções nesta app que vale a pena conhecer. Bloquear tráfego fora do túnel (kill-switch), no ecrã de edição do túnel, impede que qualquer coisa saia por fora do túnel se este cair: a definição certa se o objetivo da VPN é que nada escape. E Exportar registo para ficheiro é onde a app lhe explica, em linguagem simples, porque é que um túnel se recusou a arrancar.

Android e iPhone: ler o código QR ou importar o ficheiro

Num telemóvel há duas formas de o fazer, e o código QR existe precisamente porque escrever uma chave de 44 caracteres num ecrã tátil é um martírio.

Android

  1. Instale o WireGuard a partir da Play Store e toque no botão +.
  2. O ecrã Criar túnel WireGuard oferece Digitalizar a partir de código QR, Importar de ficheiro ou arquivo e a criação de um túnel de raiz. Escolha a opção que corresponde ao que recebeu.
  3. Dê um nome ao túnel, se lhe for pedido, e ative o respetivo interruptor. O Android pede uma vez autorização para adicionar uma configuração VPN: esse aviso é do sistema operativo, não da app.

iPhone e iPad

  1. Instale o WireGuard a partir da App Store e toque em Add a tunnel.
  2. Em Add a new WireGuard tunnel, escolha Create from QR code ou Create from file or archive. O ecrã do leitor chama-se Scan QR code; depois de uma leitura bem-sucedida, pede-lhe que dê um nome ao túnel.
  3. Ative-o e autorize a configuração VPN quando o iOS pedir.

Criar um código QR a partir de um ficheiro de configuração que já tem

O código QR não é algo que o fornecedor tenha obrigatoriamente de lhe dar: é apenas o seu ficheiro de configuração desenhado como imagem, e pode gerá-lo com um único comando. A própria app WireGuard sugere isto:

# prints the code straight into the terminal, ready to scan off the screen
qrencode -t ansiutf8 < wg0.conf

# or write it to an image file
qrencode -o wg0.png < wg0.conf

No Debian ou Ubuntu, o qrencode instala-se com apt install qrencode; no macOS, com brew install qrencode.

Um código QR do WireGuard contém a sua chave privada. Não é uma ligação nem um identificador: é a configuração completa, chaves incluídas, num formato que qualquer câmara consegue ler. Nunca o publique num servidor de Discord, num tópico de fórum ou num pedido de suporte, e tenha cuidado com as capturas de ecrã. Se ler um código a partir de um ecrã, feche-o a seguir. Trate a imagem exatamente como trataria o ficheiro.

macOS e Linux

macOS

Instale o WireGuard a partir da Mac App Store. A app para Mac não é a app do iPhone num ecrã maior: fica na barra de menus, e a sua janela abre-se a partir de Manage Tunnels. Clique em Import tunnel(s) from file (a barra de menus tem a mesma opção como Import Tunnel(s) from File…), escolha o seu .conf, selecione o túnel e clique em Activate. O Mac não tem leitor de QR (os códigos QR são para telemóveis), por isso use o próprio ficheiro, ou escolha Add Empty Tunnel… e cole a configuração.

Se preferir trabalhar num terminal, brew install wireguard-tools dá-lhe os mesmos comandos wg-quick do Linux, descritos a seguir.

Linux

  1. Instale as ferramentas. No Debian ou Ubuntu: sudo apt install wireguard. A maioria das distribuições tem um pacote com o mesmo nome.
  2. Coloque o ficheiro onde o wg-quick o procura. É o passo em que as pessoas se enganam, porque o nome do ficheiro passa a ser o nome da interface:
    sudo install -m 600 -o root -g root wg0.conf /etc/wireguard/wg0.conf
    O 600 é importante: o ficheiro contém a sua chave privada e não deve poder ser lido por outros utilizadores da máquina. Use um nome curto e simples; tem de ser um nome de interface de rede válido.
  3. Ative-o:
    sudo wg-quick up wg0
    sudo wg show
    wg show é o comando que vale a pena decorar. Mostra o peer, o endpoint, uma linha latest handshake e os contadores de transferência. Uma hora de handshake que nunca aparece é a assinatura do problema descrito na secção seguinte.
  4. Arranque automático: sudo systemctl enable --now wg-quick@wg0. Para parar o túnel manualmente, sudo wg-quick down wg0.
Dois erros que convém reconhecer à primeira vista. wg-quick: `/etc/wireguard/wg0.conf' does not exist significa que o nome indicado não corresponde a nenhum ficheiro dessa pasta: pediu wg0 e o ficheiro chama-se outra coisa. E se o túnel se recusar a subir queixando-se do resolvconf, a culpa é da linha DNS: o wg-quick precisa do resolvconf ou do systemd-resolved para a aplicar. Instale um deles, ou remova a linha DNS e configure o resolvedor manualmente.

No router, para cobrir a casa toda

Pôr o túnel no router cobre todos os dispositivos que estão atrás dele, incluindo os que não conseguem de todo correr uma app de VPN: uma consola de jogos, uma televisão, uma coluna inteligente. Poder fazê-lo ou não depende inteiramente do firmware.

FirmwareSuporte a WireGuardOnde procurar
OpenWrtSim, com um pacoteInstale luci-proto-wireguard, adicione uma interface com o protocolo WireGuard VPN e preencha os campos com os dados do seu ficheiro
Asus (firmware de origem recente)Sim, em muitos modelosA secção VPN tem um cliente WireGuard que importa diretamente um .conf
Asuswrt-MerlinSimA mesma ideia, com mais controlo sobre o encaminhamento
Mikrotik RouterOS 7SimO WireGuard vem integrado; o RouterOS 6 não o tem de todo
Router típico do operadorNormalmente nãoSem WireGuard e sem forma de o adicionar: veja abaixo

Se o seu router é a caixa que o operador de internet lhe entregou, as opções realistas são colocar atrás dele um router que controle, ou continuar a usar configurações por dispositivo. Nenhuma das duas é um fracasso; a configuração por dispositivo é muitas vezes até melhor, porque pode deixar o túnel desligado nos dispositivos que não precisam dele.

Não reutilize uma configuração que já está noutro dispositivo. Um ficheiro de configuração é um peer, e um peer é um dispositivo. Carregar a configuração do telemóvel no router faz com que os dois disputem a mesma identidade e ambas as ligações ficam instáveis. Encomende uma segunda configuração, ou adicione um segundo peer no seu próprio servidor.

Uma coisa a decidir antes de encaminhar a casa toda por um túnel: a partir daí passa tudo por ele. Sites de bancos que desconfiam de endereços estrangeiros, serviços de streaming que verificam a sua região e tudo o que comunique com dispositivos da sua própria rede podem comportar-se de forma diferente. É aqui que um AllowedIPs mais restrito mostra o seu valor: envie apenas o que precisa de ir e deixe o resto como está.

Liga mas não carrega nada, e outros problemas reais

O WireGuard é invulgarmente silencioso quando falha, e isso é uma opção de design deliberada: um pacote não autenticado não recebe qualquer resposta, pelo que um scanner não consegue perceber se há algo à escuta. O efeito secundário é que uma chave errada, uma porta errada e uma rede bloqueada parecem idênticas do seu lado: silêncio. Parta do sintoma.

O que vêO que costuma serOnde procurar
Nunca há handshake; os bytes enviados sobem e os recebidos ficam a zeroNada responde, ou a resposta não consegue voltarEndpoint, a PublicKey do servidor, UDP bloqueado
Handshake correto, coisas pequenas funcionam, as páginas web ficam a meioMTUAdicione uma linha MTU a [Interface]
Ligado, mas nada é resolvidoDNSA linha DNS, e o resolvconf no Linux
Ligado, resolve nomes, mas nenhum tráfego passa pelo túnelAllowedIPs demasiado restritoAllowedIPs em [Peer]
Funciona e deixa de funcionar ao fim de um ou dois minutos sem atividadeO mapeamento NAT expirouPersistentKeepalive = 25

"Handshake did not complete"

O seu dispositivo enviou um pacote de iniciação e não recebeu nada de volta. Verifique, por esta ordem:

  • O endpoint. Host certo, porta certa, e a porta tem de ser UDP. Um erro de escrita aqui produz exatamente este sintoma e mais nenhum.
  • Se o UDP chega de todo ao exterior. Redes wi-fi de convidados, redes de hotéis, algumas redes empresariais e alguns operadores móveis só permitem TCP nas portas comuns. Se a mesma configuração funciona na sua ligação de casa e falha numa rede específica, a configuração está boa e o problema é a rede.
  • Se as chaves estão no sítio certo. A PublicKey em [Peer] é a chave pública do servidor, e o servidor tem de ter, por seu lado, a chave pública que corresponde à sua PrivateKey. Uma configuração copiada de outro dispositivo falha aqui.
  • O seu relógio. O handshake do WireGuard inclui uma marca temporal e rejeita as que estejam muito desfasadas. É raro, mas acontece em dispositivos que perderam a hora.

Se o túnel funciona em casa mas nunca a partir de dados móveis, a causa pode estar do lado do seu operador e não do seu: o CGNAT e soluções semelhantes alteram o que consegue chegar até si. O guia de reencaminhamento de portas explica como identificar isso a partir do seu próprio router em poucos minutos.

O problema do MTU, que vale a pena perceber de uma vez

Este é o caso clássico de "ligado, mas a internet não funciona", e o padrão é inconfundível: o ping funciona, o DNS funciona, as páginas pequenas carregam e tudo o que seja mais pesado fica pendurado para sempre.

A causa é o tamanho. Encapsular o tráfego para o túnel acrescenta cabeçalhos, pelo que um pacote que cabia à justa na ligação normal deixa de caber quando está dentro do WireGuard. Os pacotes pequenos passam sem problemas; os grandes são descartados. Normalmente a rede avisa o emissor para usar pacotes mais pequenos, mas a mensagem que o faz é muitas vezes filtrada, por isso, em vez de um erro, fica simplesmente à espera.

A solução é dizer ao WireGuard para usar pacotes mais pequenos logo de início. O wg-quick já tenta: pega no MTU da sua rota normal e subtrai 80 bytes para a sobrecarga do túnel, pelo que numa ligação comum de 1500 bytes obtém 1420. Quando isso ainda é demasiado (algumas redes móveis, a maioria das ligações que já correm dentro de outro túnel), defina-o explicitamente e vá descendo:

[Interface]
MTU = 1420      # what wg-quick would have picked
# still stalling? try 1380, then 1280

1280 é o mínimo que vale a pena experimentar, porque é o tamanho de pacote mais pequeno que o IPv6 exige que tudo transporte, pelo que sobrevive praticamente a qualquer caminho. Custa um pouco de eficiência e é muito melhor do que um túnel que bloqueia.

O túnel está ativo mas nada passa por ele

Verifique primeiro o AllowedIPs. Não é uma firewall nem uma lista de permissões: decide que destinos são encaminhados para o túnel. Se não incluir 0.0.0.0/0, o tráfego para o resto da internet nunca foi feito para passar por lá, e a sua ligação está a comportar-se exatamente como foi configurada. No Linux, ip route show table all | grep wg0 mostra o que foi realmente encaminhado.

Se o encaminhamento está correto e os nomes simplesmente não são resolvidos, é a linha DNS: ou falta, ou existe mas não é aplicada porque o resolvconf não está instalado.

De onde vem o ficheiro de configuração

Tudo o que está acima pressupõe que tem um ficheiro. Há exatamente duas formas de o obter.

Gerir o servidor por conta própria

Gera um par de chaves, instala o WireGuard numa máquina com endereço público, adiciona o seu dispositivo como peer e escreve à mão a configuração do cliente. Não é difícil e é mesmo algo que vale a pena aprender. O custo é contínuo: um servidor para pagar e manter atualizado, e uma edição manual nos dois lados sempre que adiciona um dispositivo, porque, lembre-se, um peer é um dispositivo.

Obtê-lo de um fornecedor

A alternativa é o ficheiro ser gerado por si e só ter de o transferir. Com a HytHost VPN, desde €0.99/mês, está aqui:

  1. Encomende o serviço e inicie sessão na área de cliente, depois abra o seu serviço VPN na lista.
  2. Procure a secção WireGuard Configuration. Tem dois botões: Copy to Clipboard, que copia o texto da configuração para a área de transferência, e Download Configuration, que lhe entrega o ficheiro já pronto.
  3. Se o copiou, cole-o num editor de texto simples e guarde-o com a extensão .conf; wg0.conf é um bom nome. Confirme que o editor não acrescentou .txt no fim.
  4. Importe-o seguindo a secção acima correspondente ao seu dispositivo. Num telemóvel, transforme-o primeiro num código QR com o qrencode.

A mesma página mostra se o túnel está neste momento ligado ao servidor, o que responde à pergunta "o problema é meu ou deles?" antes de começar a mexer em definições. Não há botão de código QR: gere-o a partir do ficheiro, o que também significa que o código nunca viaja para onde não precisava de ir.

Precisa de um ficheiro de configuração para importar? Um serviço HytHost VPN entrega-lhe uma configuração WireGuard pronta a usar desde €0.99/mês.

Ver planos VPN
FAQ

Perguntas frequentes

Instale a app oficial do WireGuard, importe o ficheiro de configuração que o seu servidor ou fornecedor lhe deu e ative o túnel. No Windows, isso é Adicionar túnel seguido de Activar; no Android e no iPhone pode ler o ficheiro como código QR em vez de o importar; no Linux, coloque o ficheiro em /etc/wireguard/ e execute wg-quick up com o respetivo nome. Uma hora de handshake e dados recebidos na app confirmam que a ligação está ativa.

Um ficheiro de texto simples, normalmente terminado em .conf, com dois blocos. [Interface] descreve o seu dispositivo: a chave privada, o endereço que assume dentro do túnel e o resolvedor a usar. [Peer] descreve o servidor: a chave pública, o host e a porta UDP, e que destinos devem ser encaminhados pelo túnel. Esse ficheiro é a ligação inteira: não fica mais nada guardado em lado nenhum do seu dispositivo.

Não de forma fiável, e vale a pena saber porquê. Uma configuração é um peer, identificado por um par de chaves, e o servidor regista uma única localização atual para cada peer. Se ligar um telemóvel e um portátil com o mesmo ficheiro, o servidor envia o tráfego de regresso para o que fez o handshake mais recente, e as duas ligações caem e voltam sem parar. Cada dispositivo precisa da sua própria configuração com o seu próprio par de chaves.

Gera-o a partir do ficheiro de configuração que já tem: um código QR do WireGuard é simplesmente esse ficheiro codificado como imagem. Execute qrencode -t ansiutf8 < wg0.conf para o mostrar num terminal e lê-lo a partir do ecrã, ou qrencode -o wg0.png < wg0.conf para o guardar como imagem. Como o código contém a chave privada, deve ser tratado como o próprio ficheiro: nunca publicado em lado nenhum.

Não. A chave privada é o que identifica o seu dispositivo na VPN, por isso quem tiver o ficheiro pode ligar-se como se fosse você. Nunca deve ser publicada num chat, num fórum, num gestor de incidências ou num pedido de suporte, e o mesmo se aplica a um código QR ou a uma captura de ecrã do ficheiro. Se uma configuração tiver sido exposta, a solução é gerar um novo par de chaves e substituir o peer, e não esperar que ninguém a tenha lido.

Essa mensagem significa que o pacote de iniciação saiu e nada voltou, e o WireGuard não lhe consegue dizer porquê, porque nunca recebeu resposta. Verifique o host e a porta do Endpoint, confirme que a rede onde está permite UDP de saída e confirme que a PublicKey em [Peer] é a chave do servidor, enquanto o servidor tem a chave pública correspondente à sua chave privada. Se o mesmo ficheiro funciona noutra rede, o ficheiro está correto e é a rede que está a filtrar o UDP.

Este padrão (handshake correto, ping correto, páginas web que ficam paradas) é quase sempre o MTU. Quando o tráfego é encapsulado para o túnel, cada pacote cresce, pelo que os pacotes que antes cabiam são descartados, e a mensagem que normalmente o assinalaria é muitas vezes filtrada. Adicione uma linha MTU a [Interface]: 1420 é o que o wg-quick calcularia numa ligação comum, e 1380 ou 1280 funcionam quando isso ainda é demasiado.

Não para usar um ficheiro de configuração. O cliente faz uma ligação UDP de saída para o servidor, e a resposta volta pelo mapeamento que essa ligação cria, que é o que o PersistentKeepalive mantém aberto. Só é preciso abrir uma porta do lado que corre o servidor WireGuard e tem de aceitar ligações de entrada.

Num fornecedor que a gere por si. Um serviço HytHost VPN, desde €0.99/mês, mostra na área de cliente uma secção WireGuard Configuration com um botão para copiar o texto da configuração e outro para transferir o ficheiro já pronto. A partir daí, importa-se na app WireGuard em qualquer dispositivo, e a mesma página indica se o túnel está neste momento ligado.

Um ficheiro de configuração que fica consigo

A HytHost VPN dá-lhe uma configuração WireGuard que transfere uma vez e importa em qualquer dispositivo: Windows, Android, iPhone, macOS, Linux ou o seu router. Desde €0.99/mês.

Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours

Este guia foi útil?