SSD Nodes Learn 8GB de RAM — $66/ano
Guias Matt ConnorPor Matt Connor · Atualizado 2026-08-02

WireGuard vs OpenVPN: qual usar no seu VPS?

WireGuard vence em velocidade, tamanho da configuração e superfície de auditoria. Veja as evidências e os 4 casos em que o OpenVPN ainda é melhor.

A resposta curta

WireGuard vs OpenVPN, para uma pessoa que executa um servidor VPN em seu próprio VPS, não é uma disputa equilibrada: escolha WireGuard. Ele é menor, executa dentro do kernel do Linux, estabelece a conexão em uma fração de segundo, e uma configuração de cliente funcional tem cerca de dez linhas. O OpenVPN mantém quatro funções reais, e, se nenhuma delas se aplica a você, você não precisa dele.

Essas quatro funções são sair de uma rede que permite somente a porta TCP 443, integrar-se a uma autoridade de certificação existente, autenticar usuários identificados por nome com uma senha ou um segundo fator, e fazer uma ponte na Camada 2. Todo o conteúdo abaixo apresenta as evidências por trás dessa recomendação e o ponto exato em que cada exceção passa a se aplicar a você.

Por que o WireGuard é a escolha dos administradores de servidores próprios

A base de código é pequena o suficiente para ser lida. O projeto WireGuard tem aproximadamente 4,000 linhas de código na implementação do protocolo. O OpenVPN chega a seis dígitos quando você inclui a biblioteca OpenSSL, da qual ele depende para todas as operações criptográficas. O tamanho importa porque cada linha é uma superfície de ataque, e nem você nem o revisor vai ler 100,000 linhas. Você poderia ler 4,000.

Ele é executado no kernel. O WireGuard está no kernel Linux principal desde a versão 5.6, portanto Ubuntu 24.04 e Debian 13 o fornecem sem necessidade de compilação. Os pacotes são criptografados onde já estão, no espaço do kernel, sem serem copiados para um processo no espaço do usuário e de volta. Verifique isso antes de qualquer outra coisa:

sudo modprobe wireguard && echo ok

Em uma VPS KVM, o comando exibe ok. Em virtualização de contêineres que compartilha o kernel do host, como OpenVZ ou LXC, ele falha com Operation not supported, porque não é possível carregar um módulo em um kernel que não pertence a você.

Não há nada para negociar. O WireGuard tem um único conjunto fixo de cifras: ChaCha20-Poly1305 para os dados, com chaves Curve25519. Não há uma versão para reduzir nem uma opção que possa ser configurada incorretamente. O OpenVPN negocia a cifra e a versão do TLS (transport layer security) com cada cliente. Isso oferece flexibilidade, mas também é onde ocorrem as configurações incorretas. Um servidor deixado com data-ciphers AES-256-GCM:AES-128-CBC recua normalmente para a cifra CBC quando um cliente não oferece nada melhor, e nada no log indica que isso é um problema.

A porta não responde. Um pacote WireGuard que falha na verificação de autenticação da mensagem é descartado sem nenhuma resposta, portanto nmap -sU -p 51820 retorna open|filtered, independentemente de haver algo escutando. Um servidor OpenVPN no modo TCP conclui o handshake TCP antes de decidir que você não tem permissão, o que basta para provar a um scanner que há algo presente. OpenVPN sobre UDP com tls-crypt é quase tão silencioso, portanto este é um argumento contra executar OpenVPN sobre TCP, e não contra o OpenVPN em si.

O roaming é automático. Um peer WireGuard é identificado pela chave pública, não pelo endereço. Seu laptop muda da rede doméstica para um hotspot móvel, envia um handshake a partir do novo endereço, e o servidor atualiza o endpoint para o qual responde. Nada se reconecta porque nada esteve conectado. O OpenVPN pode fazer algo semelhante com float, mas normalmente o cliente encerra e recria uma sessão TLS completa. Por isso, a pausa ao abrir a tampa é perceptível no OpenVPN e não no WireGuard.

Velocidade em 2026: a diferença diminuiu

Durante anos, o argumento correto sobre velocidade era que o OpenVPN copiava cada pacote para o userspace, fazia a criptografia nesse espaço e depois o copiava de volta, enquanto o WireGuard nunca saía do kernel. Essa já não é toda a situação, e uma comparação que ignore esse fato está desatualizada.

O OpenVPN 2.7 foi lançado em fevereiro de 2026 com suporte ao módulo de kernel upstream ovpn, integrado ao Linux 6.16. Isso é DCO (data channel offload): o canal de controle permanece no userspace, enquanto o caminho dos dados passa para o kernel, que é aproximadamente o que o WireGuard sempre fez. Em um kernel e uma versão do OpenVPN suficientemente recentes para usar esse recurso, o throughput fica na mesma categoria, e não em uma categoria diferente. Verifique o que você realmente tem:

uname -r
openvpn --version | head -n 1
modinfo ovpn 2>/dev/null | head -n 3

Em julho de 2026, uma instalação padrão do Ubuntu 24.04 LTS fornece o OpenVPN 2.6, não o 2.7, e o módulo ovpn requer a versão 2.7. Nessa versão, você obtém offload apenas por meio do pacote openvpn-dco-dkms antigo, que compila um módulo out-of-tree para o kernel em execução e, portanto, precisa ser recompilado a cada atualização do kernel. Esse é um componente adicional que o WireGuard não tem.

Leia as limitações do DCO antes de considerá-lo um motivo para continuar usando o OpenVPN. Ele oferece suporte apenas a túneis Layer 3, aceita somente cifras AEAD (authenticated encryption with associated data: AES-GCM ou ChaCha20-Poly1305), não oferece suporte a compressão e, em um servidor, funciona somente com topology subnet. Cada uma dessas restrições elimina parte da flexibilidade que originalmente era o principal argumento a favor do OpenVPN. OpenVPN rápido é OpenVPN configurado para se comportar como o WireGuard.

Não confie no número de throughput publicado por ninguém, inclusive nesta página. Em uma VPS, o limite geralmente é a capacidade de CPU ou de rede, e não o protocolo. Meça o seu usando iperf3 em execução pelo túnel e depois novamente fora dele, comparando os dois resultados.

Onde o OpenVPN ainda é necessário

Você precisa sair pela porta TCP 443. O WireGuard usa somente UDP, de forma deliberada, e não terá um modo TCP. Uma rede de hotel ou um proxy corporativo que permita somente TCP 443 aceitará o OpenVPN configurado com proto tcp-server e port 443, porque esse tráfego se parece com uma sessão TLS comum. O WireGuard precisa de um wrapper, como wstunnel ou udp2raw, para atravessar a mesma rede. Isso adiciona mais um processo para executar e manter atualizado. Observe o conflito: se um servidor web já usa TCP 443 nesse endereço IP, um dos dois terá de ser movido.

Você já executa uma autoridade certificadora. O OpenVPN autentica usando certificados X.509, portanto se integra a uma PKI (infraestrutura de chave pública) que você já opera. Os certificados expiram automaticamente, e você revoga um certificado adicionando-o a uma lista de revogação de certificados que o servidor lê por meio de crl-verify. O WireGuard não usa certificados, expiração nem lista de revogação. Para remover um peer, você edita a configuração do servidor e a recarrega. Com dez peers, isso é simples. Com quatrocentos, quando há um requisito de auditoria, o modelo baseado em certificados é realmente útil.

Você precisa de usuários identificados, não apenas de chaves. O OpenVPN pode delegar a autenticação a um sistema externo com auth-user-pass-verify ou a um plugin como openvpn-plugin-auth-pam.so. É assim que se adiciona LDAP ou um segundo fator baseado em senha de uso único. O WireGuard não tem o conceito de usuário. Uma chave está na configuração ou não está. Se o requisito for "Sara deve inserir um código do telefone", o WireGuard não consegue representar isso sozinho.

Você precisa da Camada 2 ou de um cliente para algum sistema antigo. O OpenVPN com dev tap faz a ponte de frames Ethernet, o que é importante para protocolos de broadcast e jogos antigos de LAN. O WireGuard funciona somente na Camada 3 e continuará sendo assim. O OpenVPN também tem clientes para hardwares e sistemas operacionais que nunca terão um aplicativo do WireGuard. Esses dois motivos estão se tornando menos relevantes, e dev tap é incompatível com DCO. Portanto, ao usar a bridge, você seguirá o caminho mais lento.

Quanto as duas configurações realmente custam

Uma identidade do WireGuard é criada com um comando. Os parênteses são importantes porque definem as permissões do arquivo antes de a chave existir:

(umask 077; wg genkey > private.key)
wg pubkey < private.key > public.key

O equivalente no OpenVPN é uma autoridade de certificação que passa a ser sua enquanto a VPN existir:

sudo apt install -y easy-rsa
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-req server nopass
./easyrsa sign-req server server

Nenhuma das duas listas é injusta. A CA oferece expiração e revogação, mas exige uma chave privada que você precisa proteger por anos, uma renovação da qual precisa se lembrar e uma reconstrução se você perdê-la. Se você não usa esses recursos, está pagando por nada. O procedimento completo do WireGuard, incluindo encaminhamento, NAT (network address translation) e as falhas de handshake que desperdiçam uma tarde, está no guia para hospedar uma VPN WireGuard no seu VPS.

O que cada um exige do firewall

O WireGuard precisa exatamente de uma regra de entrada para UDP na porta em ListenPort:

sudo ufw allow 51820/udp
sudo ufw status verbose

Por padrão, o OpenVPN precisa de UDP 1194 ou de TCP 443 se você escolheu esse caminho. Depois, os dois precisam que o encaminhamento de IP esteja ativado e de uma regra de NAT de origem, porque uma máquina Linux descarta pacotes que não são endereçados a ela. Essa parte é idêntica nos dois protocolos e é a causa da maioria dos relatos de que "o túnel conecta, mas não há internet". Se o ufw é novidade para você, comece por os conceitos básicos do firewall ufw em um VPS e lembre-se de que a maioria dos provedores executa um segundo firewall de rede no painel de controle: uma regra adicionada no servidor não tem efeito se o pacote nunca chega ao servidor. Entender o que é uma porta e como o Linux escuta nela torna essas duas verificações mais rápidas.

Como escolher, em um parágrafo

Execute o WireGuard, a menos que consiga indicar o recurso específico que ele não oferece. Se precisar do TCP 443 para escapar de uma rede restritiva, execute o OpenVPN nessa porta e considere executar ambos: eles usam portas diferentes e coexistem no mesmo servidor sem conflitos. Se precisar de contas por usuário ou de um segundo fator, não tente adaptar o WireGuard à força. Em vez disso, coloque uma camada de identidade acima dele. Um servidor de controle Headscale auto-hospedado usa WireGuard por baixo e adiciona o modelo de contas, a distribuição de chaves e a aprovação de dispositivos que o WireGuard básico deixa sob sua responsabilidade.

Migração do OpenVPN sem interrupção

Não há conversão. A PKI do OpenVPN não se transforma em chaves do WireGuard, porque o WireGuard não tem certificados para converter. Cada cliente recebe um novo par de chaves, gerado da mesma forma que o do servidor.

Faça a migração em paralelo em vez de alternar diretamente. O WireGuard na porta UDP 51820 e o OpenVPN na porta 1194 podem executar simultaneamente no mesmo host. Portanto, ative wg0, confirme com sudo wg show listando um latest handshake recente e migre os clientes um de cada vez. Quando a lista de peers do OpenVPN parar de mudar, interrompa o serviço com sudo systemctl disable --now openvpn-server@server. Mantenha os arquivos da CA até ter certeza, porque não é possível recriar um cliente revogado usando uma CA excluída.

Um item realmente não é transferido: as contas com nome de usuário e senha e o histórico de revogações associado a elas. Decida onde isso ficará antes de desligar o servidor antigo, não depois.

FAQ

O WireGuard é mais rápido que o OpenVPN?

Em um servidor Ubuntu 24.04 padrão, sim, e por uma margem ampla, porque o WireGuard criptografa no kernel, enquanto o OpenVPN 2.6 move cada pacote por um processo no espaço do usuário. Com o OpenVPN 2.7 e o módulo de kernel ovpn do Linux 6.16, o caminho de dados também fica no kernel, e os dois pertencem à mesma categoria. Faça sua própria medição com iperf3 através do túnel, em vez de confiar em um número de um blog, porque, em uma VPS, o limite geralmente é sua CPU ou sua franquia de largura de banda.

O WireGuard pode usar a porta TCP 443?

Não por conta própria. O WireGuard usa somente UDP por projeto, e não há previsão de um modo TCP. Para atravessar uma rede que permite apenas TCP 443, encapsule-o em um túnel como wstunnel ou udp2raw. Isso adiciona um processo que deve ser executado e atualizado nas duas extremidades. Se essa restrição fizer parte do seu ambiente de trabalho normal, o OpenVPN com proto tcp-server e port 443 é a opção mais simples.

O OpenVPN está inseguro agora?

Não. Um OpenVPN atual com uma cifra AEAD, como AES-256-GCM, e tls-crypt habilitado é uma VPN segura. O argumento a favor do WireGuard é outro: o OpenVPN contém muito mais código e muito mais opções. Por isso, oferece a um administrador cansado muito mais maneiras de configurá-lo incorretamente. Menos opções significam menos configurações erradas.

Qual devo escolher para uma VPN pessoal em uma VPS?

WireGuard. Um par de chaves por dispositivo, um arquivo de configuração com cerca de dez linhas, uma porta UDP aberta e um handshake que termina antes que você perceba que começou. Escolha o OpenVPN somente se você se conectar regularmente a redes que bloqueiam UDP ou se precisar integrá-lo a uma autoridade certificadora ou a um diretório de usuários que já exista.