O que é VLESS: um protocolo que deixa a criptografia para o TLS ou o REALITY

Anton Belov

9 min de leituraTecnologia

Por dentro do VLESS

Toda conexão VLESS começa com um cabeçalho curto, que traz o seu identificador e o endereço de destino. O protocolo em si não criptografa nem disfarça nada. Esse trabalho cabe à camada abaixo dele, o TLS ou o REALITY. Por isso, raramente se fala do VLESS sem um deles. Este artigo trata do cabeçalho, das mudanças em relação ao VMess, dos transportes e do REALITY. Também mostra o que uma chave VLESS contém e explica como o Ben's VPN usa o protocolo.

O cabeçalho VLESS contém um UUID, um comando e um endereço

O VLESS é um protocolo para conexões entre um cliente e um servidor proxy. Cada conexão começa com um cabeçalho de requisição, e os dados vêm logo em seguida. O cabeçalho de requisição é composto pelos campos a seguir.

  • Versão do protocolo.
  • UUID, o seu identificador no servidor, por exemplo, 8b71f62c-7736-4334-ab2f-032d2115d2fd. Ele também funciona como senha, porque o servidor só aceita os UUIDs da própria lista.
  • Complementos, configurações extras, como o modo flow, explicado mais adiante.
  • Comando, que solicita um fluxo TCP, pacotes UDP ou vários fluxos em uma só conexão (Mux).
  • Porta e endereço de destino. O endereço pode ser IPv4, IPv6 ou um nome de domínio.

Depois do cabeçalho, o VLESS não acrescenta nada aos dados. O servidor responde com um cabeçalho ainda mais curto, que tem só a versão e os complementos. O cabeçalho de requisição não tem carimbo de data/hora nem campo de cifra. O VLESS também não criptografa o próprio cabeçalho. Essa é a principal diferença entre o VLESS e o VMess.

A primeira versão do VLESS saiu com o V2Ray em meados de 2020. Desde o fim daquele ano, a maior parte do desenvolvimento acontece no Xray-core, um fork do V2Ray. Outros núcleos, como o sing-box, também são compatíveis com o protocolo. A rigor, o VLESS em si é um protocolo de proxy. Você passa a ter uma VPN (rede privada virtual) no celular ou no computador quando um app envia todo o tráfego do dispositivo pelo VLESS. O nosso artigo sobre a diferença entre VPN e proxy compara os dois em detalhes.

O VLESS elimina a cifra e a verificação de horário do VMess

O VMess, protocolo anterior do V2Ray, criptografa os dados com uma cifra própria, ChaCha20-Poly1305 ou AES-128-GCM. Para autenticar uma conexão, ele verifica o UUID e também a hora atual. Segundo a documentação do Xray, os relógios do cliente e do servidor não podem se afastar mais de 2 minutos da hora certa. Dessas 2 verificações, o VLESS manteve só a do UUID. Em uma configuração padrão, o VLESS não criptografa nada. O campo decryption no servidor e o campo encryption no cliente ficam com o valor none. O relógio não interfere na conexão VLESS.

A tabela mostra a diferença em 3 situações. Nas 2 primeiras, ambos os protocolos rodam dentro do TLS.

SituaçãoVMessVLESS
O relógio do celular está 5 minutos adiantadoO servidor recusa a conexãoO servidor aceita a conexão
Você abre um site HTTPS pelo túnel3 camadas de criptografia (site, VMess e TLS externo)2 camadas de criptografia (site e TLS externo)
A conexão não tem TLS externoO VMess continua criptografando os dados com a própria cifraQualquer observador no caminho vê o UUID e os endereços de destino

Dentro do TLS, a cifra do VMess só aumenta a carga do processador e o gasto de bateria. O VLESS não tem esse custo. Com o modo flow ativado, o TLS externo deixa de criptografar de novo os dados depois do handshake com o site. Em 2025, o Xray acrescentou ao VLESS uma cifra embutida opcional, a VLESS Encryption. Ela foi pensada para configurações sem TLS externo. Também serve para configurações em que o TLS termina antes do servidor, por exemplo, em uma CDN. Uma configuração com REALITY não precisa da VLESS Encryption.

O transporte define a aparência do tráfego VLESS

O VLESS trafega dentro de um transporte, e é esse transporte que um observador na rede vê. O Xray tem vários transportes para o VLESS. Os 4 principais estão na lista abaixo.

  • RAW, chamado de tcp nas configurações antigas. É uma conexão TCP simples. Com TLS ou REALITY por cima, ela parece tráfego HTTPS comum.
  • XHTTP, antes chamado de SplitHTTP. Ele distribui o fluxo entre requisições e respostas HTTP comuns, sobre HTTP/1.1, HTTP/2 ou HTTP/3. O XHTTP também funciona por meio de uma CDN. Para um observador, ele lembra um app web que envia requisições ao próprio servidor sem parar.
  • gRPC. O tráfego segue como chamadas de procedimento remoto sobre HTTP/2, da mesma forma que muitos apps trocam dados com APIs.
  • WebSocket. Uma conexão de longa duração, do tipo usado por chats na web e jogos de navegador. Também funciona por meio de uma CDN.

O REALITY funciona com RAW, XHTTP e gRPC, mas não com WebSocket.

Um servidor REALITY não precisa de domínio nem de certificado

O TLS comum exige que o servidor tenha um nome de domínio e um certificado correspondente. O REALITY, lançado no Xray-core 1.8.0 em março de 2023, não precisa de nenhum deles. Durante o handshake, o servidor usa a identidade de um site real de terceiros, o site-alvo. Os passos abaixo mostram como o servidor trata 2 tipos de conexão.

  1. O cliente inicia um handshake TLS como faria um navegador popular. A primeira mensagem dele, o ClientHello, informa o nome do site-alvo. O ClientHello também leva uma marca que só quem tem a chave privada do servidor consegue verificar. Parte da marca é um ID curto chamado shortId.
  2. O servidor verifica a marca. Se a marca for válida, o próprio servidor conclui o handshake, e em seguida vêm os dados VLESS.
  3. Um scanner ou qualquer outro visitante envia um ClientHello comum, sem marca. O servidor não responde diretamente. Em vez disso, ele repassa a conexão ao site-alvo, que responde com o certificado e a página reais.

O site-alvo precisa ter suporte a TLS 1.3 e HTTP/2. O REALITY usa um par de chaves X25519. A chave privada fica no servidor, e o cliente recebe a pública.

Uma chave VLESS contém todas as configurações de conexão

A chave VLESS fornecida por um serviço ou pelo administrador de um servidor é uma única string longa. Ela reúne tudo de que um cliente precisa para se conectar.

  • O endereço do servidor e a porta.
  • O seu UUID, que funciona como senha.
  • O transporte e a camada de segurança, TLS ou REALITY.
  • O nome do site que o cliente envia no handshake (SNI).
  • No caso do REALITY, a chave pública do servidor e o shortId.
  • A impressão digital do navegador que o cliente imita no ClientHello.
  • O modo flow, em geral xtls-rprx-vision. Quando há outra conexão TLS dentro do túnel, ele esconde os tamanhos de pacote típicos desse handshake. Depois do handshake, ele não criptografa de novo o que o site já criptografou.
  • Um nome, para você identificar a chave em uma lista.

Também é possível rodar um servidor assim por conta própria, em um VPS (servidor virtual privado) alugado. Nesse caso, a configuração e as atualizações do núcleo ficam por sua conta. Se o endereço antigo for bloqueado, você também precisa mudar o servidor de endereço. Para saber mais sobre alugar um servidor ou pagar por uma VPN, veja o nosso comparativo entre VPS e VPN.

O endereço do servidor continua visível para o provedor de internet

O VLESS com REALITY esconde o que passa pela conexão, mas não qual servidor está do outro lado. O provedor de internet continua vendo a conexão com esse servidor. Ele vê o endereço do servidor, quando a conexão está ativa e quantos bytes passam em cada sentido. Se esse endereço for bloqueado, nenhuma configuração do protocolo consegue restabelecer a conexão. Então é preciso um servidor em outro endereço.

Algumas redes só permitem tráfego para uma lista de endereços aprovados. Um servidor fora dessa lista continua inacessível, por melhor que o protocolo esteja disfarçado. Nessas redes, o tráfego precisa seguir outra rota.

O app Ben's VPN escolhe o protocolo e não precisa de chave

O app Ben's VPN tem 4 formas de conexão (VLESS + REALITY, XHTTP, Hysteria2 e Shadowsocks). Ele escolhe entre elas automaticamente, e não há como fixar uma delas nas configurações. Para comparar as 4 lado a lado, veja o nosso guia sobre protocolos de VPN.

O app não aceita chaves VLESS, venham elas de outro serviço ou do seu próprio servidor. Ele também não precisa delas, por isso você nunca digita um UUID nem uma chave. No celular, no tablet ou no computador, instale o app e toque ou clique em Conectar. Depois, pague a assinatura na janela Comprar Ben's VPN. Se você já tem uma assinatura, entre na conta pela mesma janela. Os downloads para todas as plataformas estão na nossa página de apps.

Quando a conexão está fraca, o app pode mostrar o aviso Conexão ruim com o botão Resolver o problema. O botão oferece 2 opções: trocar de localização ou procurar um servidor funcional. A busca também está disponível como Encontrar servidor funcional em Meu perfil → Configurações. Ela verifica o servidor outra vez e atribui a ele novos endereços IP. Se nada mais resolver, a busca ativa o multihop. A busca leva no máximo 2 minutos.

Perguntas e respostas

Preciso de um domínio próprio para rodar o VLESS?

Com o REALITY, você não precisa de domínio. O servidor usa a identidade de um site-alvo de terceiros, então não precisa de certificado próprio. Domínio e certificado são necessários quando o VLESS roda dentro do TLS comum ou atrás de uma CDN.

Por que colocar um servidor VLESS na porta 443?

A porta 443 é a padrão do HTTPS. Uma conexão TLS ou REALITY nessa porta parece navegação comum na web. Em uma porta incomum, a mesma conexão se destacaria da maior parte do tráfego. O protocolo VLESS em si funciona em qualquer porta.

Qual é a diferença entre o VLESS e o Hysteria2?

O VLESS costuma trafegar por TCP, dentro do TLS ou do REALITY. O Hysteria2 é baseado em QUIC e, portanto, roda sobre UDP. Visto de fora, o tráfego do Hysteria2 parece HTTP/3. Por isso, limitações de rede diferentes afetam os 2 protocolos. Uma rede que bloqueia ou limita o UDP afeta o Hysteria2, mas não o VLESS sobre TCP. O Ben's VPN tem ambos, e o app escolhe entre eles.

O REALITY esconde o endereço IP do servidor?

Não. O REALITY disfarça o handshake, mas não o endereço do servidor. Um observador na rede consegue ver a qual servidor o seu dispositivo se conecta. Quando esse endereço é bloqueado, você precisa de um servidor em um endereço novo.

Posso adicionar a minha própria chave VLESS ao Ben's VPN?

Não. Chaves VLESS de outros serviços ou do seu próprio servidor não funcionam no app. Ele se conecta aos servidores do Ben's VPN e escolhe o protocolo por você.

Escrito por

Anton Belov

Escreve sobre redes e protocolos de VPN.

Comece por 3 dias e decida depois

O período de teste custa $0.50 e abre os 187 países e todos os apps. Depois dele, o plano é renovado a $5 por mês. A renovação pode ser cancelada na página da conta a qualquer momento.

Mac App Store App Store Google Play