Base de Conhecimento Instruções simples para trabalhar com o serviço Profitserver
a Principal Base de Conhecimento Guia de Implantação do Servidor AmneziaWG

Guia de Implantação do Servidor AmneziaWG


Cada vez mais pessoas estão usando suas próprias VPNs em vez de depender de serviços pagos prontos: é mais barato, oferece melhor privacidade e permite controle total do servidor. Uma das opções mais eficazes para regiões com bloqueio de rede rigoroso é o AmneziaWG, um protocolo desenvolvido pelo projeto Amnezia com base no WireGuard.

O WireGuard clássico é rápido e confiável, mas possui uma estrutura de pacotes fixa e um handshake previsível, que os sistemas de DPI (Inspeção Profunda de Pacotes) conseguem identificar e bloquear com precisão. O AmneziaWG resolve esse problema: ele adiciona pacotes indesejados à conexão WireGuard comum, randomiza os cabeçalhos e altera o tamanho dos campos do handshake — assim, a assinatura característica do WireGuard desaparece e o tráfego deixa de se destacar do tráfego UDP comum.

Já está usando um túnel VPN clássico e está pensando se vale a pena mudar? Compare isso com uma configuração OpenVPN/PPTP simples em Configuração de servidor VPN no Linux: PPTP ou OpenVPN?, ou com o WireGuard padrão (sem ofuscação) em Como configurar uma VPN WireGuard no seu servidor.

Este guia configura um servidor AmneziaWG manualmente, sem Docker ou painel web — a menor pegada possível no próprio VPS, configurado inteiramente pela linha de comando. É a opção mais leve e funciona bem em VPS de baixo custo, já que não precisa de interface gráfica, banco de dados ou proxy reverso. O servidor de exemplo abaixo usa um endereço IP fictício — substitua-o pelo endereço do seu VPS sempre que aparecer.

Você precisará de: um VPS com Ubuntu 22.04/24.04 ou Debian 11/12, acesso root e o endereço IP do seu VPS. Um nome de domínio não é necessário — o AmneziaWG não usa certificados, portanto não há nada para renovar nem nada para o DPI sinalizar como um handshake TLS.

Ainda não tem um servidor? Veja como encomendar um servidor.

Conectando-se ao servidor

Windows (PuTTY)

Abra o PuTTY, insira o endereço IP do seu VPS no campo "Nome do host", defina a porta para 22 e faça login como root usando a senha que seu provedor de VPS lhe enviou por e-mail.

Endereço IP do servidor: seu endereço IP

Entrar como: root

Senha: sua senha

1. Abra o PuTTY e insira o endereço IP do seu VPS no campo "Nome do host".  

Janela de configuração padrão do PuTTY, antes de qualquer detalhe de conexão ter sido inserido.

2. Defina a porta para 22. 

A sessão foi preenchida com o endereço IP do VPS e a porta 22, com a sessão salva “Meu VPS” selecionada e pronta para clicar em Abrir.

3. Faça login como root. 

Uma nova janela do terminal PuTTY é aberta, exibindo a sessão SSH e solicitando o nome de usuário para login.

4. Usando a senha que seu provedor de VPS lhe enviou por e-mail.

Após digitar "root", o PuTTY solicita a senha da conta.

O resultado deve ser o seguinte:

Login bem-sucedido: a mensagem diária do Debian seguida pelo prompt do shell root (root@copywr:~#).

Para obter um passo a passo detalhado sobre como conectar-se via PuTTY/SSH, consulte Como conectar-se a um servidor Linux por meio de SSH.

Linux / macOS (terminal)

ssh root@YOUR_SERVER_IP

Todos os comandos abaixo são executados no servidor, nesta mesma sessão SSH — isso abrange as Seções 2 a 5, além das verificações do lado do servidor na Seção 9. As Seções 6 a 8 (instalação e configuração do cliente VPN) são executadas no seu próprio dispositivo Windows/macOS/Linux, já que é nesse dispositivo que a VPN precisa ser executada; cada uma dessas seções indica explicitamente quais linhas, se houver, ainda interagem com o servidor.

Preparando o Servidor

Atualize o sistema

Antes de instalar qualquer coisa, atualize a lista de pacotes e os pacotes instalados:

apt update -y && apt upgrade -y

Se isso atualizar o kernel, reinicie o sistema antes de compilar o módulo do kernel AmneziaWG na Seção 3; caso contrário, o DKMS poderá ser compilado com os cabeçalhos do kernel incorretos e o módulo não será carregado. (Para relembrar o funcionamento do apt e dos gerenciadores de pacotes do Linux, consulte Gerenciadores de Pacotes do Linux .) Verifique com:

cat /var/run/reboot-required
O Apt Upgrade está baixando um novo pacote de kernel (linux-image-6.1.0-52-amd64) durante a atualização do sistema. A atualização do Apt foi concluída: o initramfs foi regenerado e os serviços afetados foram reiniciados.

Ativar encaminhamento de IP

Essa configuração permite que o servidor encaminhe os pacotes dos clientes para a internet — sem ela, o túnel será estabelecido, mas nenhum tráfego passará por ele.

echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system

O primeiro comando cria um arquivo de configuração dedicado; o segundo o aplica sem reiniciar o servidor.

sysctl --system aplicando todos os arquivos de configuração sysctl.d, confirmando que net.ipv4.ip_forward = 1 agora está ativo.

Configure o firewall (UFW)

Para mais informações sobre regras do UFW, consulte Configurando o Firewall no Linux.

Abra as duas portas necessárias: 22/tcp para SSH (ignore esta regra e você corre o risco de perder o acesso ao servidor) e 42666/udp, a porta na qual o AmneziaWG ficará escutando.

apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status

Ambas as regras devem aparecer como PERMITIDO na saída do comando ufw status.

O status do UFW confirma que as portas 22/tcp e 42666/udp estão permitidas para IPv4 e IPv6, com o firewall ativo.

Instalando AmneziaWG

O Debian não oferece suporte direto a PPAs no estilo do Ubuntu, portanto, o repositório precisa ser adicionado manualmente em vez de usar o comando `add-apt-repository`. O processo é semelhante no Ubuntu.

Adicione o repositório manualmente

Adicione o repositório
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list

Adicione a chave de assinatura GPG.

Use um arquivo de chaveiro desprotegido em vez do comando apt-key obsoleto e obtenha a chave de assinatura real do PPA (impressão digital 75C9DD72C799870E310542E24166F2C257290828):

apt install -y gnupg2
gpg --keyserver keyserver.ubuntu.com --recv-keys 57290828
gpg --export 57290828 | tee /usr/share/keyrings/amnezia.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/amnezia.gpg] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list

Atualize e instale

apt update
apt install -y amneziawg
Saída do comando `apt install -y amneziawg`: O DKMS está compilando o módulo do kernel amneziawg para o kernel em execução e concluindo a instalação.

Verifique se o módulo foi carregado.

modprobe amneziawg
lsmod | grep amnezia
Execute o comando `modprobe amneziawg` seguido de `lsmod`, confirmando que o módulo amneziawg e suas dependências (curve25519, chacha20poly1305, etc.) estão carregados.

Gerando configuração de servidor e cliente

Instale os utilitários auxiliares.

Instale a dependência qrcode, crie um diretório de trabalho dedicado e baixe o script community config-generator para ele:

apt install -y python3-qrcode
mkdir -p ~/awg && cd ~/awg
wget -O awgcfg.py \
  https://gist.githubusercontent.com/remittor/8c3d9ff293b2ba4b13c367cc1a69f9eb/raw/awgcfg.py

Se o pacote python3-qrcode não estiver disponível nos repositórios da sua distribuição, use o comando `pip3 install qrcode --break-system-packages` (este parâmetro é necessário no Debian 12+/Ubuntu 24.04, que bloqueiam instalações não gerenciadas do pip por padrão). Não execute as duas instalações — escolha apenas uma.

Awgcfg.py é um script não oficial de terceiros, desenvolvido pela comunidade (usuário do GitHub "remittor"), e não uma ferramenta oficial do projeto Amnezia. A URL acima aponta para o conteúdo bruto do gist sem o hash da revisão, portanto, sempre busca a última versão enviada pelo autor — uma atualização silenciosa (ou a exclusão do gist) pode quebrar sua configuração sem aviso prévio. Sempre que possível, fixe a versão em uma revisão específica: abra o histórico de revisões do gist, copie o hash do commit da versão que você testou e use um... URL do formulário deste guia. 

Gere a configuração do servidor.

Crie o arquivo /etc/amnezia/amneziawg/awg0.conf. Você pode deixar a sub-rede interna do túnel e a porta UDP com os valores padrão ou definir os seus próprios:

python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
  -i 10.10.8.1/24 -p 42666

A opção -i define o endereço e a máscara da rede interna do túnel; -p define a porta UDP do servidor (a mesma aberta na etapa 2.3).

Awgcfg.py --make criando /etc/amnezia/amneziawg/awg0.conf e detectando a interface de rede principal do servidor (ens3).

Crie o modelo de configuração do cliente

python3 awgcfg.py --create

Isso salva um modelo na mesma pasta a partir da qual as configurações individuais do cliente são criadas — ele já inclui a chave pública do servidor, seu endereço IP e os parâmetros de ofuscação (Jc, Jmin, Jmax, S1, S2, H1–H4) que distinguem o AmneziaWG do WireGuard comum.

Awgcfg.py --create escrevendo _defclient.config, o modelo a partir do qual as novas configurações do cliente serão geradas.

Adicionar clientes

Crie uma entrada para cada dispositivo — o nome pode ser qualquer coisa, por exemplo, o nome do dispositivo:

python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Awgcfg.py -a registrando os clientes “laptop” e “phone”, cada um com seu próprio IP de túnel (10.10.8.2/32 e 10.10.8.3/32).

Gere arquivos de clientes e códigos QR.

python3 awgcfg.py -c -q

A pasta ~/awg agora conterá arquivos como laptop.conf e phone.conf, além de códigos QR PNG correspondentes que você pode escanear diretamente em um aplicativo móvel.

Este script da comunidade tem uma peculiaridade conhecida: executá-lo pode excluir outros arquivos .init/state que você possa ter colocado na mesma pasta. Mantenha ~/awg dedicado apenas aos arquivos do AmneziaWG e faça backup das chaves do servidor (a chave privada [Interface] em awg0.conf) em outro local antes de regenerar as configurações.
Conteúdo do arquivo laptop.conf gerado: o endereço do cliente, DNS, parâmetros de ofuscação e a seção [Peer] apontando de volta para o servidor.

A pasta ~/awg agora conterá arquivos como laptop.conf e phone.conf, além de códigos QR PNG correspondentes que você pode escanear diretamente em um aplicativo móvel.

Este script da comunidade tem uma peculiaridade conhecida: executá-lo pode excluir outros arquivos .init/state que você possa ter colocado na mesma pasta. Mantenha ~/awg dedicado apenas aos arquivos do AmneziaWG e faça backup das chaves do servidor (a chave privada [Interface] em awg0.conf) em outro local antes de regenerar as configurações.

Iniciando o serviço e habilitando a inicialização automática

Ative a interface awg0 e habilite-a para iniciar automaticamente na reinicialização:

systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]

O status deve mostrar ativo (encerrado) com a unidade habilitada na inicialização. Se o console parecer "travar" exibindo os registros, pressione Q para sair.

O comando `systemctl status` confirmou que o serviço `awg-quick@awg0.service` está ativo (encerrado) e habilitado, com os comandos de configuração de IP/iptables da interface registrados no log.

Consulte a lista de pares ativos e o tráfego por par com:

awg show
O comando `awg show` lista os parâmetros de ofuscação da interface awg0 e seus dois pares configurados (laptop e telefone), cada um com seu endereço IP permitido.

Conectando-se a partir do Windows

Tudo nesta seção acontece no seu PC com Windows, não via SSH — o cliente VPN precisa ser instalado no dispositivo que realmente usará o túnel. A única etapa que interage diretamente com o servidor é o download via scp na Seção 6.2, e mesmo esse comando é digitado no seu PC, baixando um arquivo que o servidor já gerou na Seção 4.

Instale o cliente

O AmneziaWG possui um aplicativo dedicado para Windows — sua interface espelha o cliente WireGuard padrão, mas entende os parâmetros de ofuscação. Baixe o instalador do repositório oficial do projeto:

https://github.com/amnezia-vpn/amneziawg-windows-client/releases

O link acima leva à página de versões atualizadas do cliente Windows — baixe o arquivo .msi/.exe mais recente de lá. Esta é uma página para abrir no seu navegador, não um comando para colar em um terminal.

Execute o instalador e siga as instruções do assistente de configuração; as configurações padrão não precisam ser alteradas.

Importe a configuração

Copie o arquivo de configuração do cliente do servidor para o seu computador — a maneira mais fácil é usar o comando scp, executado no PowerShell no seu computador, não no servidor:

Um prompt vazio do Windows PowerShell no computador cliente, pronto para executar o comando scp abaixo.
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .

No aplicativo AmneziaWG, clique em "Importar túnel(s) de arquivo", selecione laptop.conf e ative a opção ao lado do novo túnel.

Conectando-se a partir do macOS

Tudo aqui acontece no seu Mac, não via SSH. A linha scp abaixo é digitada no próprio Terminal do Mac, obtendo a configuração que o servidor já gerou na Seção 4 — ela não é executada dentro da sua sessão SSH de root no VPS.

Existem duas opções suportadas:

  • AmneziaWG (Mac App Store): um cliente leve, funciona no macOS 12 e versões posteriores. Busque por "AmneziaWG" na App Store, instale-o e, em seguida, use "Importar túnel(s) de arquivo" e selecione seu arquivo .conf — o fluxo de trabalho é o mesmo do cliente para Windows.
  • AmneziaVPN (aplicativo completo, macOS 14+): baixe o arquivo .pkg de github.com/amnezia-vpn/amnezia-client/releases/latest se preferir usar o aplicativo Amnezia completo em vez do cliente leve AmneziaWG.

Primeiro, copie a configuração do cliente, se necessário, da mesma forma que no passo 6.2:

scp root@YOUR_SERVER_IP:~/awg/laptop.conf .

Conectando-se a partir do Linux

Ambas as opções abaixo são executadas no seu computador desktop/laptop Linux, ou seja, em uma sessão SSH separada (ou shell local) nessa máquina — não na sessão SSH de root no VPS da Seção 1. Os comandos parecem idênticos aos do lado do servidor porque o mesmo pacote amneziawg-tools é usado em ambas as extremidades, mas executá-los aqui instala e inicia um túnel cliente na sua própria máquina, não no servidor.

Em um computador desktop ou laptop com Linux, você tem duas opções:

  • Interface gráfica: instale o cliente desktop completo do AmneziaVPN a partir de github.com/amnezia-vpn/amnezia-client/releases e, em seguida, importe o arquivo .conf da mesma forma que no Windows/macOS.
  • CLI, usando as mesmas ferramentas amneziawg-tools usadas no servidor (awg / awg-quick):
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0

Execute este código para desconectar.

awg-quick down awg0 

Para que o túnel seja ativado automaticamente ao fazer login, habilite-o como um serviço:

systemctl enable --now awg-quick@awg0

Verificando a conexão

Com o túnel ativo a partir da Seção 6, 7 ou 8, volte ao seu dispositivo (não à sessão SSH) e abra qualquer verificador de IP em um navegador — o endereço exibido deve corresponder ao endereço IP do seu VPS. Para verificar de dentro da sessão SSH, execute o comando `awg show` no servidor e confirme se o peer do cliente mostra um handshake recente e tráfego diferente de zero.

Referência:

Campo

Valor

Endereço

SEU_IP_DO_TÚNEL (o endereço do cliente dentro do túnel, por exemplo, 10.10.8.2/32 — atribuído automaticamente quando o cliente foi adicionado na etapa 4.4)

Ponto final

SEU_IP_DO_SERVIDOR:42666 (O endereço IP externo do servidor e a porta UDP à qual o cliente se conecta.)

DNS

8.8.8.8

Jc / Jmin / Jmax

Número e tamanho de pacotes "lixo" enviados antes do handshake — podem diferir entre servidor e cliente sem interromper a conexão.

S1 / S2

Tamanho dos campos de preenchimento do handshake — deve corresponder byte a byte entre o servidor e cada cliente.

H1 – H4

Os cabeçalhos do tipo pacote que mascaram o protocolo como tráfego comum também devem corresponder exatamente e ser únicos entre si.

Apenas S1/S2 e H1–H4 precisam ser idênticos em ambas as extremidades do túnel; Jc, Jmin e Jmax dizem respeito exclusivamente à forma como cada lado preenche seu próprio tráfego de saída indesejado, portanto, os valores do cliente e do servidor podem ser diferentes, como ocorre no exemplo acima.

Conclusão

Seguindo este guia, seu VPS executará seu próprio servidor AmneziaWG: um protocolo compatível com WireGuard com ofuscação de tráfego que é consideravelmente mais difícil para sistemas DPI distinguirem do tráfego UDP comum do que o WireGuard puro. O serviço é executado como a unidade systemd awg-quick@awg0 e sobrevive a uma reinicialização do servidor sem qualquer ação de sua parte.

Os arquivos .conf e os códigos QR resultantes em ~/awg funcionam não apenas com o cliente Windows, mas também podem ser importados para os aplicativos AmneziaWG ou Amnezia para Android, iOS, macOS e Linux, bem como para roteadores Keenetic e OpenWrt.

Adicione novos clientes a qualquer momento repetindo os passos 4.4–4.5 (python3 awgcfg.py -a "nome", depois awgcfg.py -c -q) e reiniciando a interface com systemctl restart [email protected].

Algumas práticas que vale a pena manter depois que o servidor estiver em funcionamento:

  • Mantenha o sistema atualizado. Execute `apt update -y && apt upgrade -y` periodicamente e reinicie o sistema após atualizações do kernel para que o DKMS reconstrua o módulo `amneziawg` com base no novo kernel.
  • Faça backup do diretório ~/awg. Ele contém a chave privada de cada cliente e o par de chaves do servidor no arquivo awg0.conf; perdê-lo significa regenerar as configurações para todos os dispositivos.
  • Revogue imediatamente os dispositivos perdidos. Remova o bloco [Peer] correspondente de /etc/amnezia/amneziawg/awg0.conf e execute systemctl restart. [email protected].

Se a conexão não for estabelecida, verifique a seguinte ordem:

  • o status do serviço (systemctl status) [email protected])
  • as regras do firewall (ufw status — a porta 42666/udp deve estar aberta)
  • o status do DKMS/módulo se a interface nem sequer iniciar (dkms status, lsmod | grep amnezia)
  • a lista de pares ativos no servidor (awg show)
  • que a configuração do cliente aponte para o endereço IP correto do servidor externo.

Está comparando o AmneziaWG com outras opções antes de decidir? Veja Configuração de servidor VPN no Linux: PPTP ou OpenVPN? e Como configurar o Wireguard VPN no seu servidor . Se você precisa apenas de um proxy simples em vez de um túnel VPN completo, a configuração do 3proxy no CentOS/ArchLinux é uma alternativa mais leve. Para reforçar a segurança do servidor após a VPN estar ativa, consulte Usuários do Linux: Gerenciamento e Permissões.

❮ Artigo anterior Configuração do Hysteria2 e TUIC
Próximo artigo ❯ Guia de Realidade do Xray VLESS: VPS, Windows, Mac, Android, iPhone

Pergunte-nos sobre VPS

Estamos sempre prontos para responder suas perguntas a qualquer hora do dia ou da noite.