VPN para Linux com WireGuard: wg-quick, systemd e diagnóstico
Publicado em · Atualizado em
VPN no Linux é um túnel WireGuard montado pelo próprio kernel: você instala as ferramentas de usuário da sua distribuição, copia um arquivo .conf para /etc/wireguard e sobe a interface com wg-quick. Este guia cobre a instalação por distribuição, a permissão do arquivo, o início automático com systemd, o DNS e o diagnóstico.
Preciso instalar um aplicativo de VPN no Linux?
Não. O WireGuard faz parte do kernel do Linux desde a versão 5.6, então não há driver de terceiros a instalar. O que você instala é o pacote de ferramentas de usuário, com dois comandos: wg, que lê e altera o estado da interface, e wg-quick, que monta o túnel a partir de um arquivo .conf.
A SuaVPN não tem aplicativo próprio nem extensão de navegador, em nenhum sistema. O painel gera um arquivo .conf no formato padrão do WireGuard, com um par de chaves por dispositivo, e quem executa a conexão é a ferramenta da sua distribuição. Confira o seu kernel com uname -r e o módulo com lsmod | grep wireguard.
Como instalar o WireGuard em cada distribuição?
Pelo gerenciador de pacotes da própria distribuição, sem repositório de terceiros. O nome do pacote muda: no Ubuntu e no Debian ele se chama wireguard, e nas demais famílias, wireguard-tools. Em kernels anteriores ao 5.6, o pacote wireguard-dkms compila o módulo na instalação e a cada atualização de kernel.
O comando wg-quick é um script em bash que depende do iproute2 e, quando a configuração tem linha DNS, de um comando resolvconf. Imagens mínimas de contêiner às vezes não trazem o bash, e é por isso que o pacote existe separado do módulo: o kernel já tem o protocolo, falta a camada que traduz o arquivo em interface, endereço e rotas.
| Distribuição | Comando de instalação | Observação |
|---|---|---|
| Ubuntu e Debian | sudo apt install wireguard | Instala wireguard-tools; o resolvconf costuma vir do pacote systemd-resolvconf |
| Fedora e RHEL | sudo dnf install wireguard-tools | Módulo no kernel padrão; nada mais a compilar |
| Arch e Manjaro | sudo pacman -S wireguard-tools | Para a linha DNS, instale openresolv ou systemd-resolvconf |
| openSUSE | sudo zypper install wireguard-tools | Mesma configuração das demais |
| Kernel anterior ao 5.6 | Instalar wireguard-dkms | Compila o módulo; exige cabeçalhos do kernel instalados |
Do arquivo .conf ao túnel ativo com wg-quick
No painel, em Dispositivos, crie um dispositivo com o nome da máquina, escolha a localização oferecida ali — a lista ao vivo fica na página de status — e salve o arquivo .conf. Copie-o para /etc/wireguard/wg0.conf. O nome do arquivo vira o nome da interface, então use letras, números, hífen e sublinhado, com no máximo 15 caracteres, que é o limite do kernel para nome de interface de rede.
Em seguida, ajuste dono e permissão: sudo chown root:root /etc/wireguard/wg0.conf e sudo chmod 600 /etc/wireguard/wg0.conf. O arquivo contém a chave privada do dispositivo em texto puro, como uma chave SSH, e o comando wg avisa quando ele está legível por qualquer usuário da máquina. Se ele vazar, exclua o dispositivo no painel e gere outro; os demais continuam funcionando.
Suba o túnel com sudo wg-quick up wg0 e derrube com sudo wg-quick down wg0. A saída mostra cada comando ip executado pelo script, o que ajuda quando algo falha no meio. Passar o caminho do arquivo também funciona (sudo wg-quick up ./wg0.conf), útil para testar antes de mover para /etc/wireguard.
Por que o ip route continua mostrando a rota antiga?
Porque o wg-quick não substitui a rota padrão: com AllowedIPs = 0.0.0.0/0, ele usa roteamento por política. O script cria uma tabela de rotas para o túnel, marca com fwmark os pacotes que o WireGuard envia ao servidor e manda para essa tabela tudo o que não tem a marca. Sem isso, o tráfego cifrado entraria no túnel, em laço.
A consequência prática é que ip route sozinho não conta a história: o comando que mostra o quadro completo é ip rule, junto de ip route show table all. A segunda diferença é que, enquanto a interface existir, o tráfego que cai nela não volta a sair pela rota antiga; se o servidor parar de responder, os pacotes são descartados em vez de seguirem em claro.
Como iniciar a VPN no boot com systemd?
O pacote instala uma unidade template chamada wg-quick@.service, em que a parte depois da arroba é o nome da interface. Para subir o túnel agora e a cada inicialização: sudo systemctl enable --now wg-quick@wg0. Para desfazer: sudo systemctl disable --now wg-quick@wg0. Cada arquivo em /etc/wireguard vira uma instância própria, e você habilita apenas as que quiser.
Confira o estado com systemctl status wg-quick@wg0 e leia os erros com journalctl -u wg-quick@wg0. Em notebook que troca de rede o dia inteiro, essa é a diferença entre lembrar de ligar a VPN e ela simplesmente estar ligada. Em servidor sem monitor, é o que faz o túnel voltar sozinho depois de um reinício.
Por que o DNS não muda no Linux?
Porque o wg-quick aplica a linha DNS do arquivo chamando o comando externo resolvconf, que nem sempre está instalado. Sem ele, a subida termina com resolvconf: command not found. E se a linha DNS for removida para contornar o erro, o túnel sobe, mas as consultas continuam indo ao resolvedor da rede local, que vê todos os domínios visitados.
A correção é instalar o pacote certo: resolvconf ou openresolv nas distribuições clássicas, ou systemd-resolvconf em sistemas com systemd-resolved, que fornece um resolvconf que repassa a configuração ao resolved. Com o túnel ativo, confira com resolvectl status, procurando o servidor de DNS associado à interface wg0, ou leia /etc/resolv.conf. O guia sobre ocultar IP explica por que esse vazamento anula boa parte do efeito da VPN.
Diagnóstico com sudo wg show
O comando sudo wg show é o primeiro a rodar quando algo não funciona. Ele lista a interface, a porta de escuta e, para o par remoto, o endpoint, os AllowedIPs, o campo latest handshake e o transfer. Handshake recente com bytes subindo nos dois sentidos significa túnel saudável; sem handshake, os seus pacotes não chegaram ao servidor ou a resposta não voltou.
A partir daí, o caminho é curto: confira a localização na página de status, teste em outra rede (o roteamento do celular serve para isolar firewall corporativo) e olhe o firewall de saída, porque o WireGuard usa UDP e algumas redes só liberam TCP nas portas 80 e 443. Se o handshake acontece mas parte dos sites não carrega, o suspeito é o MTU.
| Sintoma | Causa provável | O que fazer |
|---|---|---|
| resolvconf: command not found | Falta o utilitário que aplica a linha DNS | Instalar resolvconf, openresolv ou systemd-resolvconf |
| RTNETLINK answers: Operation not supported | Módulo do kernel ausente ou não carregado | sudo modprobe wireguard; em kernel antigo, instalar wireguard-dkms |
| Sem latest handshake em wg show | UDP de saída bloqueado ou servidor indisponível | Testar em outra rede e conferir a página de status |
| Túnel ativo, mas sem navegação | Outro túnel ou regra de roteamento em conflito | Derrubar a outra VPN e inspecionar ip rule e ip route show table all |
| Sites grandes travam, SSH congela | MTU alto demais para o caminho | Reduzir a MTU no bloco [Interface], começando em 1420, até estabilizar |
| Aviso de arquivo acessível por todos | Permissão do .conf larga demais | sudo chmod 600 no arquivo em /etc/wireguard |
Servidor, Raspberry Pi e roteador: o mesmo arquivo
A mesma configuração funciona em um VPS, em um Raspberry Pi ou em um roteador com OpenWrt, o que torna o Linux o sistema mais flexível da assinatura: um aparelho na borda da rede protege tudo o que estiver atrás dele, consumindo uma única vaga de dispositivo. Os planos diferem só no número de vagas: Básico 3, Pro 5 e Família 10, com os valores na página de planos.
A SuaVPN não tem split tunneling: a configuração roteia todo o tráfego, e restringir AllowedIPs a certas redes é uma edição manual que fica sob a sua manutenção. O pagamento é no cartão, pela Stripe, com renovação automática; o cancelamento vale a qualquer momento, o acesso segue até o fim do período pago e há 7 dias de arrependimento pelo Código de Defesa do Consumidor, art. 49. Os guias de Windows e Mac cobrem as outras máquinas.
Perguntas frequentes
O WireGuard funciona em qualquer distribuição?
Em qualquer uma com kernel 5.6 ou mais novo, e nas anteriores com o módulo compilado via DKMS. As ferramentas de usuário estão nos repositórios oficiais de Ubuntu, Debian, Fedora, Arch e openSUSE.
Preciso de interface gráfica para usar VPN no Linux?
Não. O wg-quick faz tudo pelo terminal, e é por isso que os mesmos passos valem em um servidor sem monitor. O NetworkManager é opcional, para quem quer um botão no menu de rede.
Por que chmod 600 no arquivo .conf?
Porque ele guarda a chave privada do dispositivo em texto puro. Com permissão larga, qualquer usuário da máquina copia a chave e passa a se conectar como aquele dispositivo. O comando wg avisa quando o arquivo está acessível a todos.
Como faço o túnel subir sozinho no boot?
Com a unidade template do systemd: sudo systemctl enable --now wg-quick@wg0, onde wg0 é o nome do arquivo em /etc/wireguard sem a extensão. Para parar, use systemctl disable --now com o mesmo nome.
Posso usar em um servidor, VPS ou Raspberry Pi?
Sim. O mesmo arquivo .conf funciona em servidores, contêineres com acesso à rede e roteadores com OpenWrt. Cada configuração ocupa uma vaga de dispositivo do plano.
Como troco de localização no Linux?
Cada arquivo .conf aponta para uma localização. Gere no painel uma configuração para a localização desejada, salve com outro nome em /etc/wireguard, derrube o túnel atual com wg-quick down e suba o novo com wg-quick up. A lista ao vivo do que está no ar fica na página de status.
Dá para mandar só alguns programas pela VPN?
Não como recurso da SuaVPN: não há split tunneling e a configuração cobre todo o tráfego. No Linux é possível restringir AllowedIPs no arquivo à mão, mas essa edição fica sob sua manutenção e precisa ser testada antes de ser usada para valer.
Existe aplicativo da SuaVPN para Linux?
Não, e também não existe extensão de navegador. O painel gera a configuração padrão do WireGuard, e quem conecta é o wireguard-tools ou o NetworkManager da sua distribuição.
Fontes
Experimente a SuaVPN
WireGuard, assinatura no cartão, vários dispositivos por assinatura e cancelamento quando quiser.
Ver planos