VPN Wireguard · 16 min read · Oct 05, 2025

Como Instalar o Wireguard VPN no Debian 11

Wireguard é um protocolo VPN gratuito e de código aberto, alternativa ao IPSec, IKEv2 e OpenVPN. O Wireguard é projetado para sistemas operacionais Linux e Unix. Ele opera no espaço do kernel Linux, o que torna o Wireguard mais rápido e confiável. O Wireguard é usado para criar conexões de túnel seguras entre dois ou mais computadores.

O Wireguard visa substituir protocolos VPN como IPSec, IKEv2 e OpenVPN. O Wireguard é mais leve, mais rápido, fácil de configurar e mais eficiente. E ao mesmo tempo, o Wireguard não sacrificou o aspecto de segurança do protocolo VPN. O Wireguard suporta criptografia moderna de última geração, como o framework de protocolo Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF e construções seguras e confiáveis.

Comparado a outros protocolos VPN, como OpenVPN, IPSec e IKEv2, o Wireguard é um novo protocolo VPN. O Wireguard foi lançado em 2015 por Jason A. Donenfeld como um protocolo VPN alternativo, foi mesclado ao kernel Linux v5.6 por Linus Torvalds em 2020 e, no mesmo ano, também foi portado para o FreeBSD 13.

Neste tutorial, você instalará e configurará um servidor VPN via Wireguard em servidores Debian 11. Você configurará um servidor VPN Wireguard com o servidor Debian 11 e, em seguida, configurará uma máquina cliente para se conectar ao servidor VPN Wireguard.

Quanto à máquina cliente, você pode usar qualquer distribuição Linux, mas este exemplo usa uma máquina Debian.

Pré-requisitos

Para começar este tutorial, você deve ter os seguintes requisitos:

  • Um servidor Debian 11 - Este exemplo usa um servidor Debian com o nome do host ‘ wireguard-server ‘ e um endereço IP estático externo ‘ SERVER-IP ‘.
  • Uma máquina Linux que será usada como cliente - Você pode usar qualquer distribuição Linux, mas este exemplo usa uma máquina Debian com o nome do host ‘client1’.
  • Um usuário não-root com privilégios de administrador sudo/root.

Se todos esses requisitos estiverem prontos, vamos começar.

Instalando o Wireguard

Antes de instalar o Wireguard, execute o comando apt abaixo para atualizar e refrescar seu índice de pacotes Debian.

sudo apt update

Uma vez que os repositórios Debian estejam atualizados, execute o comando apt abaixo para instalar o pacote Wireguard em seu servidor Debian. Isso também instalará o pacote wireguard-tools que será usado para gerenciar a instalação do seu servidor Wireguard.

sudo apt install wireguard

Quando solicitado para confirmação, digite y para confirmar e pressione ENTER para prosseguir. Agora a instalação deve começar.

instalar wireguard

Com o Wireguard instalado em seu servidor, você está pronto para gerar o par de chaves pública e privada para o servidor e cliente Wireguard.

Gerando Par de Chaves Pública/Privada

Nesta etapa, você gerará um par de chaves pública e privada para o servidor Wireguard e a máquina cliente. E isso pode ser feito via o comando ‘wg’ fornecido pelo pacote wireguard-tools.

O par de chaves para o servidor será usado pelo servidor Wireguard, e a máquina cliente usará o par de chaves para o cliente. Se você tiver várias máquinas clientes, pode gerar vários pares de chaves para seus clientes.

Gerando Par de Chaves para o Servidor Wireguard

Execute o comando ‘ wg genkey ‘ abaixo para gerar a chave privada para o servidor Wireguard. Em seguida, altere a permissão da chave privada para ‘ 0400 ‘, o que desativará o acesso de leitura e gravação para o grupo e outros.

Neste exemplo, você gerará a chave privada ‘/etc/wireguard/server.key’.

wg genkey | sudo tee /etc/wireguard/server.key  
sudo chmod 0400 /etc/wireguard/server.key

Você receberá uma saída de uma chave base64 aleatória na tela do seu terminal.

Em seguida, execute o comando ‘ wg pubkey ‘ abaixo para gerar a nova chave pública do servidor para ‘ /etc/wireguard/server.pub ‘. A chave pública do servidor é derivada da chave privada do servidor ‘ /etc/wireguard/server.key ‘.

sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub

Você receberá uma saída de uma chave pública base64 aleatória no seu terminal.

gerar par de chaves do servidor

Agora que você gerou pares de chaves pública e privada para o servidor Wireguard. A chave privada está localizada em ‘/etc/wireguard/server.key’, e a chave pública está localizada em ‘/etc/wireguard/server.pub ‘.

Execute o comando cat abaixo para mostrar e verificar o par de chaves gerado para o servidor Wireguard.

cat /etc/wireguard/server.key  
cat /etc/wireguard/server.pub

Gerando Par de Chaves para o Cliente

Para o par de chaves do cliente, você pode gerá-lo em qualquer máquina (servidor ou cliente Wireguard) com o wireguard-tools instalado. Nesta etapa, você gerará um par de chaves do cliente a partir do servidor Wireguard.

O processo para gerar um par de chaves para o servidor e cliente é o mesmo, usando o comando ‘ wg genkey ‘ para gerar a chave privada e usando o ‘ wg pubkey ‘ para gerar a chave pública, que é derivada da chave privada.

Agora execute o comando abaixo para criar um novo diretório ‘ /etc/wireguard/clients ‘. Este diretório será usado para armazenar o par de chaves do cliente.

mkdir -p /etc/wireguard/clients

Execute o comando ‘wg genkey’ abaixo para gerar a chave privada do cliente para ‘ /etc/wireguard/clients/client1.key ‘. Em seguida, gere a chave pública do cliente via o comando ‘ wg pubkey ‘ para ‘/etc/wireguard/clients/client1.pub ‘.

wg genkey | tee /etc/wireguard/clients/client1.key  
cat /etc/wireguard/clients/client1.key | wg pubkey | tee /etc/wireguard/clients/client1.pub

gerar par de chaves do cliente

Agora que o par de chaves do cliente foi gerado, a chave pública está localizada em ‘/etc/wireguard/clients/client1.pub’ e a chave privada está ‘ /etc/wireguard/clients/client1.key ‘. Execute o comando abaixo para mostrar e verificar o par de chaves gerado.

cat /etc/wireguard/clients/client1.key  
cat /etc/wireguard/clients/client1.pub

verificar par de chaves do cliente

Configurando o Servidor Wireguard

Você criará um novo arquivo de configuração para o Servidor Wireguard nesta etapa. Mas antes disso, você deve decidir quais sub-redes usará para o servidor VPN Wireguard. Você também pode decidir se habilita ou desabilita o IPv6 para o seu Servidor VPN Wireguard.

Neste exemplo, o servidor VPN Wireguard terá endereços IP com a sub-rede ‘10.8.0.2/24’ e desabilitará o IPv6 para o VPN Wireguard.

Crie um novo arquivo de configuração do Wireguard ‘/etc/wireguard/wg0.conf ‘ usando o comando do editor nano abaixo.

sudo nano /etc/wireguard/wg0.conf

Primeiro, adicione as seguintes linhas ao arquivo para definir os detalhes do servidor Wireguard. E tenha certeza de alterar a ‘ PrivateKey ‘ pela chave privada do servidor Wireguard ‘ server.key ‘. Com isso, a interface do servidor Wireguard será executada no endereço IP ‘ 10.8.0.1 ‘, abrirá a porta UDP 51820 que estará disponível para os clientes se conectarem, e o parâmetro SaveConfig garantirá que quaisquer alterações sejam salvas no arquivo de configuração, mesmo quando a interface Wireguard estiver desligada.

[Interface]  
# Chave privada do servidor Wireguard - server.key  
PrivateKey = SIybp8GHtKIPtHPBOQFP1kbQg4UCLCMyNIfCLBQR2EA=  
  
# A interface Wireguard será executada em 10.8.0.1  
Address = 10.8.0.1/24  
  
# Os clientes se conectarão à porta UDP 51820  
ListenPort = 51820  
  
# Garantir que quaisquer alterações sejam salvas no arquivo de configuração do Wireguard  
SaveConfig = true

Em seguida, adicione as linhas abaixo para definir a conexão do cliente peer. Altere o parâmetro ‘ PublicKey ‘ pela chave pública do cliente ‘ client1.pub ‘. E o parâmetro ‘ AllowedIPs ‘ especificará quais clientes Wireguard têm acesso a este peer. Neste exemplo, apenas clientes com IP ‘ 10.8.0.2 ‘ serão permitidos a acessar esta conexão peer. Mas você também pode permitir o intervalo de sub-redes, como ‘ 10.8.0.0/24 ‘.

[Peer]  
# Chave pública do cliente Wireguard - client1.pub  
PublicKey = ENokvIsS2euXrmM4OVFHPmTdCZ4wfEIR/UHuGCW64lw=  
  
# endereços IP do VPN dos clientes que você permite conectar  
# possível especificar sub-rede ⇒ [10.8.0.0/24]  
AllowedIPs = 10.8.0.2/24

Salve o arquivo e saia do editor quando terminar.

Com o arquivo de configuração do servidor Wireguard criado e a conexão do cliente peer adicionada, você configurará o encaminhamento de porta no servidor Wireguard e configurará o firewall para configurar o roteamento de tráfego.

Habilitar Encaminhamento de Porta via /etc/sysctl.conf

Nesta etapa, você habilitará o encaminhamento de porta no servidor Wireguard via o arquivo /etc/sysctl.conf’. Você pode habilitar o encaminhamento de porta para IPv4 e IPv6 no servidor Wireguard.

Para começar, abra o arquivo de configuração ‘/etc/sysctl.conf ‘ usando o comando do editor nano abaixo.

sudo nano /etc/sysctl.conf

Adicione as seguintes linhas ao arquivo. Isso habilitará o encaminhamento de porta em seu servidor Wireguard. Você pode usar ambos para IPv4 e IPv6, ou pode usar IPv4 se tiver o IPv6 desabilitado em seu servidor Wireguard.

# Encaminhamento de Porta para IPv4  
net.ipv4.ip_forward=1  
  
# Encaminhamento de porta para IPv6  
net.ipv6.conf.all.forwarding=1

Salve o arquivo e saia do editor quando terminar.

Em seguida, execute o utilitário de comando sysctl abaixo para aplicar as alterações.

sudo sysctl -p

Você receberá uma saída como esta - O encaminhamento de porta deve ser habilitado imediatamente.

habilitar encaminhamento de porta

Com o Encaminhamento de Porta habilitado no servidor Wireguard, você configurará o firewall que roteará o tráfego dos clientes Wireguard para a interface de rede específica.

Configurando o Firewall para o Servidor Wireguard

Nesta etapa, você configurará o firewall que será usado para o servidor Wireguard para roteamento das conexões dos clientes para a interface de rede apropriada que será usada para acessar a internet. Isso também permitirá que os clientes Wireguard acessem a internet através da interface específica no servidor Wireguard.

Primeiro, execute o comando apt abaixo para instalar o pacote de firewall ufw em seu servidor Debian.

sudo apt install ufw

Digite y quando solicitado e pressione ENTER para prosseguir.

instalar ufw

Após a instalação do ufw, execute o comando abaixo para abrir o serviço SSH e habilitar o firewall ufw.

sudo ufw allow OpenSSH  
sudo ufw enable

Quando solicitado para confirmação para habilitar o firewall ufw, digite y e pressione ENTER. O firewall ufw agora deve estar em execução em seu sistema e também está habilitado.

iniciar habilitar ufw

Agora verifique o status do firewall ufw via o comando abaixo. Você deve receber uma saída como ‘ Status: active ‘, o que significa que o status do firewall ufw está em execução.

sudo ufw status

Com o firewall ufw em execução, você configurará o firewall para roteamento das conexões dos clientes Wireguard para a interface de rede específica.

Agora execute o comando abaixo para verificar a tabela de roteamento padrão na interface do servidor Wireguard. Na maioria das vezes, isso detectará uma interface que é usada para acessar a internet ou onde o endereço IP público está disponível em cima dela.

ip route list default

Você receberá uma saída como esta - Este exemplo é a interface eth0 que é a tabela de roteamento padrão para o servidor Wireguard. E esta é a interface que é usada para acessar a Internet. Você pode ter um nome de interface diferente.

Em seguida, abra o arquivo de configuração do servidor Wireguard ‘ /etc/wireguard/wg0.conf ‘ usando o comando do editor nano abaixo.

sudo nano /etc/wireguard/wg0.conf

Adicione as seguintes linhas à seção ‘ [Interface] ‘.

[Interface]  
...  
....  
PostUp = ufw route allow in on wg0 out on eth0  
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE  
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE  
PreDown = ufw route delete allow in on wg0 out on eth0  
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE  
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Salve o arquivo e saia do editor quando terminar.

  • O parâmetro ‘ PostUp ‘ será executado sempre que o servidor Wireguard iniciar o túnel VPN.
  • O parâmetro ‘ PreDown ‘ será executado sempre que o servidor Wireguard parar o túnel VPN.
  • O comando ‘ ufw route allow in on wg0 out on eth0 ‘ permite o encaminhamento de tráfego que chega na interface wg0 para a interface de internet eth0.
  • O comando ‘iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE’ habilitará o masquerading e reescreve o tráfego IPv4 da interface wg0 para fazê-lo parecer como a conexão direta do servidor Wireguard.
  • O comando ‘ ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE ‘ habilitará o masquerading e reescreve o tráfego IPv46 da interface wg0 para fazê-lo parecer como a conexão direta do servidor Wireguard.

Agora execute o comando ufw abaixo para abrir a porta UDP 51820 onde os clientes se conectarão.

sudo ufw allow 51820/udp

Por último, execute o comando abaixo para recarregar o firewall ufw e aplicar as alterações. Em seguida, verifique a lista de regras do ufw via o comando abaixo.

sudo ufw reload  
sudo ufw status

Você receberá uma saída como esta captura de tela - A porta UDP 51820 que o servidor Wireguard usará para conexões de clientes foi adicionada ao firewall ufw.

configurar firewall ufw

Agora, você habilitou o Encaminhamento de Porta e configurou o firewall no servidor Wireguard. Você está agora pronto para iniciar o servidor Wireguard.

Iniciando o Servidor Wireguard

Nesta etapa, você iniciará e habilitará o servidor Wireguard. Você também verificará o servidor Wireguard e a interface wg0 que será criada pelo serviço Wireguard.

Execute o utilitário de comando systemctl abaixo para iniciar e habilitar o serviço Wireguard. O serviço ‘ [email protected] ‘ criará e habilitará a interface Wireguard ‘ wg0 ‘ em seu servidor Wireguard.

sudo systemctl start [email protected]  
sudo systemctl enable [email protected]

Agora verifique o serviço Wireguard via o comando abaixo.

sudo systemctl status [email protected]

Você receberá uma saída semelhante à captura de tela a seguir - O serviço Wireguard ‘ [email protected] ‘ está em execução e está habilitado. Isso também significa que a interface ‘ wg0 ‘ foi criada e está em execução.

iniciar habilitar verificar servidor wireguard

Execute o comando abaixo para verificar a interface ‘wg0’ em seu servidor Wireguard.

ip a show wg0

Você deve receber uma saída como esta - A interface Wireguard wg0 recebe um endereço IP ‘ 10.8.0.1 ‘, conforme descrito no arquivo de configuração do Wireguard ‘ /etc/wireguard/wg0.conf ‘.

verificar interface wg0

Além disso, você também pode iniciar e parar o Wireguard via o comando ‘ wg-quick k’ abaixo. O comando ‘ wg-quick up ‘ iniciará o servidor Wireguard, e o ‘wg-quick down ‘ parará o servidor Wireguard.

sudo wg-quick up /etc/wireguard/wg0.conf  
sudo wg-quick down /etc/wireguard/wg0.conf

Com o servidor Wireguard em execução, você configurará a máquina cliente e a conectará ao servidor Wireguard.

Configurando a Máquina Cliente e Conectando ao Servidor Wireguard

Nesta etapa, você configurará a máquina cliente instalando o wireguard-tools, criando uma nova configuração Wireguard para o cliente, conectando-se ao servidor VPN Wireguard e, por último, verificando a conexão e garantindo que a máquina cliente possa acessar a internet e a rede local VPN.

Instale o pacote ‘ wireguard-tools ‘ na máquina cliente. Isso usa um Debian como cliente, então o comando APT será usado.

sudo apt install wireguard-tools

A instalação deve começar automaticamente.

instalar wireguard cliente

Após a instalação do wireguard-tools, crie um novo arquivo de configuração ‘ /etc/wireguard/wg-client1.conf ‘ usando o comando do editor nano abaixo.

sudo nano /etc/wireguard/wg-client1.conf

Adicione as seguintes linhas ao arquivo.

[Interface]  
# Defina o endereço IP para o cliente - deve corresponder ao wg0 no Servidor Wireguard  
Address = 10.8.0.2/24  
  
# servidor DNS específico  
DNS = 1.1.1.1  
  
# Chave privada para o cliente - client1.key  
PrivateKey = KPI59QH0jwc9wkUsW5Byci9ojXhz1322QXK52fQCE3E=  
  
[Peer]  
# Chave pública do servidor Wireguard - server.pub  
PublicKey = Qt6oRLtlfAR490lTNb2K8TlbpwADV1j8NX7D5HY38EM=  
  
# Permitir todo o tráfego a ser roteado via VPN Wireguard  
AllowedIPs = 0.0.0.0/0  
  
# Endereço IP público do Servidor Wireguard  
Endpoint = SERVER-IP:51820  
  
# Enviando Keepalive a cada 25 seg  
PersistentKeepalive = 25

Salve e feche o arquivo quando terminar.

Na seção ‘ [Interface] ‘, você deve definir o seguinte:

  • O endereço IP do cliente deve corresponder à sub-rede do servidor Wireguard. O cliente Wireguard receberá o endereço IP ‘10.8.0.2’ neste exemplo.
  • Especifique o servidor DNS para o cliente.
  • Altere o parâmetro ‘ PrivateKey ‘ pela chave privada do cliente que você gerou, ‘ client1.key ‘.

Na seção ‘ [Peer]’ , você deve adicionar o seguinte:

  • Chave pública do servidor Wireguard ‘ server.pub ‘ ao parâmetro PublicKey.
  • Especifique ‘ AllowedIPs ‘ para restringir o acesso no peer VPN, você pode especificar sub-redes de redes ou apenas colocar 0.0.0.0/0 para encaminhar todo o tráfego pela VPN.
  • Especifique o parâmetro Endpoint com o endereço IP público do servidor Wireguard ou use um nome de domínio.

Após a configuração do cliente ser criada, execute o comando abaixo para iniciar o Wireguard na máquina cliente.

wg-quick up wg-client1

Você deve receber uma saída semelhante a esta captura de tela - A nova interface Wireguard ‘ wg-client1 ‘ será criada e a máquina cliente deve estar conectada ao servidor Wireguard que está em execução em ‘ SERVER-IP:51820 ‘.

configurar wireguard cliente

Execute o comando abaixo para verificar a interface Wireguard ‘ wg-client1 ‘.

ip a show wg-client1

Você deve receber uma saída como esta - A interface wg-client1 está ativa com um endereço IP ‘ 10.8.0.2 ‘, que faz parte da sub-rede do servidor Wireguard ‘ 10.8.0.0/24’.

verificar interface cliente wireguard

Você também pode verificar a conexão Wireguard via o comando ‘ wg show ‘.

Execute o comando ‘ wg show’ na máquina cliente e você deve receber uma saída como esta.

wg show

Se você estiver conectado ao servidor Wireguard correto, deverá ver o endereço IP do servidor Wireguard na seção ‘ endpoint ‘ e ver a chave pública do servidor Wireguard ‘ server.pub ‘.

wg show cliente

Agora vá para o servidor Wireguard e execute o comando ‘ wg show ‘.

wg show

Você deve receber uma saída semelhante a esta - Na seção endpoint, você verá o endereço IP público do cliente, e na seção peer, você verá a chave pública do cliente ‘client1.pub ‘.

wg show servidor wireguard

Por último, execute o comando abaixo para garantir que a máquina cliente possa acessar a internet ou acessar a rede interna da sub-rede do VPN Wireguard.

ping -c5 10.8.0.1  
ping -c5 1.1.1.1  
ping -c5 duckduckgo.com

Abaixo está a saída que você deve receber:

A máquina cliente pode se conectar ao servidor Wireguard com um endereço IP ‘10.8.0.1 ‘.

ping para servidor wireguard

A máquina cliente pode acessar a internet. Todo o tráfego é roteado pelo endereço IP público do servidor Wireguard.

ping para internet

Agora, se você quiser parar o Wireguard na máquina cliente, pode executar o comando ‘ wg-quick down ‘ abaixo.

wg-quick down wg-client1

Você receberá a saída como esta. Além disso, a interface wg-client1 desaparecerá da máquina cliente.

ping com domínio

Agora você configurou o Wireguard VPN na máquina cliente. Você também verificou a conexão entre a máquina cliente e o servidor Wireguard.

Conclusão

Neste tutorial, você instalou e configurou o Wireguard VPN em um servidor Debian 11. Você também configurou uma máquina Debian e se conectou com sucesso ao Servidor VPN Wireguard.

Em detalhes, você instalou o pacote Wireguard VPN, gerou pares de chaves pública e privada para o servidor e cliente, configurou o firewall UFW para roteamento do tráfego VPN para a interface de rede específica e habilitou o encaminhamento de porta via o arquivo /etc/sysctl.conf.

Com isso em mente, você pode agora adicionar mais clientes ao seu Servidor Wireguard VPN gerando outro par de chaves para o cliente, definindo a conexão peer no servidor Wireguard e, em seguida, criando um novo arquivo de configuração Wireguard que a máquina cliente usará. Para saber mais sobre o Wireguard, visite a documentação oficial do Wireguard.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.