Voltar ao blog
Agosto 19, 2026Guias

Como instalar o painel 3X-UI em um VPS

Guia completo, voltado para produção: instalar o painel 3X-UI Xray no Ubuntu, proteger a interface web, emitir TLS, criar um inbound VLESS Reality, gerenciar usuários e conectar clientes no computador e no celular.

Como instalar o painel 3X-UI em um VPS

3X-UI é um painel web para o Xray-core. Com ele você gerencia inbounds (VLESS, VMess, Trojan, Shadowsocks e outros), emite links de assinatura, define limites de tráfego e datas de validade e acompanha conexões ao vivo sem editar JSON na mão. Quem já tem um VPS encontra aí um dos jeitos mais rápidos de montar uma pilha de proxy sustentável, em vez de um config de uma noite que ninguém vai querer mexer seis meses depois.

Este guia vale para um VPS Ubuntu 22.04 ou 24.04 recém-instalado, o visual típico das imagens Linux da Hiddence depois do primeiro boot. Vamos instalar a build MHSanaei do 3X-UI, bem difundida, trocar todos os segredos padrão no primeiro login, colocar o painel atrás de HTTPS, abrir só as portas de que você realmente precisa, criar um inbound VLESS + Reality e depois percorrer os apps de cliente. Se você já seguiu nosso artigo do Marzban, a ideia é parecida — um painel em cima do Xray —, mas o caminho de instalação, a árvore de arquivos e a rotina diária são diferentes: não misture os dois no mesmo servidor enquanto não souber separar as portas.

Por que 3X-UI em vez de um config Xray cru

Um config Xray cru serve para um usuário e um inbound. Assim que entram amigos, rotação de chaves Reality ou um URL de assinatura que o celular importa com um toque, o painel economiza horas. O 3X-UI guarda usuários em um banco local, reinicia o Xray de forma limpa depois das mudanças e oferece um painel compacto de tráfego e status online. Não é uma camada mágica de anonimato: a localização do VPS, a impressão TLS, o tipo de inbound e a sua higiene operacional ainda decidem como o setup se comporta na rede.

  • Interface web para inbounds, clientes, tráfego e validade em vez de JSON editado na mão
  • Links de assinatura nativos para v2rayN, v2rayNG, Streisand, Happ e clientes parecidos
  • Instalação com um comando e um caminho de atualização documentado
  • Roda bem em um VPS pequeno (1 vCPU / 1 GB de RAM basta para uso pessoal)
  • Você fica com o root no seu servidor — o painel não manda configs para uma nuvem de terceiros

O que você precisa antes de começar

Não pule o domínio nem o firewall. Um painel deixado em HTTP na porta 2053 com a senha padrão é varrido por bots em questão de horas. Prepare estes itens e conecte-se como root (ou usuário com sudo) via SSH.

  • Um VPS Linux com endereço IPv4 público (Ubuntu 22.04/24.04 recomendado)
  • Pelo menos 1 GB de RAM e 10 GB de disco; 2 GB de RAM ficam mais confortáveis se outros serviços também rodarem
  • Acesso root ou sudo via SSH
  • Um domínio ou subdomínio com registro A apontando para o IP do VPS (necessário para um certificado decente do painel)
  • Uns 20–30 minutos, mais a espera de DNS se você acabou de criar o registro A

Passo 1: Atualizar o sistema e definir o fuso horário

Um VPS novinho costuma ter atualizações de segurança pendentes e o relógio em UTC. Atualize os pacotes primeiro para o instalador não brigar com um OpenSSL ou curl velho. O fuso horário é opcional para o próprio Xray, mas deixa os logs do painel e as datas de validade dos certificados bem mais fáceis de ler.

bash
ssh root@YOUR_VPS_IP

apt update && apt -y upgrade
apt -y install curl wget ca-certificates gnupg socat tar unzip

timedatectl set-timezone UTC
hostnamectl set-hostname panel

# Confirm DNS for your subdomain (should print your VPS IP):
dig +short panel.example.com

Passo 2: Instalar o 3X-UI

O script oficial de instalação da build MHSanaei do 3X-UI baixa a versão mais recente, instala o Xray-core, cria um serviço systemd e imprime o URL do primeiro login. Leia a saída com atenção: ela traz um caminho aleatório e um usuário/senha gerados. Copie tudo na hora para um gerenciador de senhas. Se o script perguntar a porta do painel, mantenha 2053 ou escolha uma porta alta livre; lembre dela no passo do firewall.

bash
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

# After install, useful commands:
x-ui                    # interactive menu (start/stop/restart, reset, update)
systemctl status x-ui    # confirm the service is active
ss -tulpn | grep x-ui    # see which port the panel listens on
Deixe esta sessão SSH aberta. Se você se trancar fora do painel, o menu x-ui no servidor consegue redefinir a senha de administrador sem reinstalar.

Passo 3: Primeiro login e endurecimento na hora

Abra o URL impresso pelo instalador, em geral http://YOUR_IP:2053/<caminho-aleatório>. Entre com as credenciais geradas e vá às configurações do painel (Panel Settings ou Configuration). Troque usuário e senha por valores únicos. Se o painel deixar mudar o caminho base da web, faça isso: um caminho longo e aleatório corta uma quantidade enorme de varreduras oportunistas. Ajuste a porta de escuta se quiser algo diferente de 2053. Salve, reinicie o painel pela interface ou com systemctl restart x-ui e entre de novo no URL novo.

Em seguida, ligue a autenticação em dois fatores se a sua build oferecer e desative os modelos de inbound que você nunca vai usar. Nas configurações do Xray, deixe a versão do core que veio com o painel, a menos que você tenha um motivo concreto para fixar outra. Não exponha ainda o painel nas portas 80/443 se depois o Reality ou um proxy reverso for usar essas portas — escolha uma estratégia e siga nela.

  • Substitua imediatamente o login de administrador gerado
  • Mantenha o caminho web secreto; não mova o painel para /
  • Prefira uma porta de painel fora do padrão e anote-a
  • Nunca reutilize esta senha em outros serviços

Passo 4: Certificado TLS para o painel

Navegadores avisam em HTTP, e mandar a senha de administrador em texto puro numa rede pública é má ideia. O 3X-UI pode pedir um certificado Let's Encrypt se a porta 80 estiver livre e o domínio apontar para este VPS. No painel, abra a seção de certificado / SSL, informe panel.example.com e solicite o certificado. Se a porta 80 já estiver ocupada, use um fluxo DNS-01 ou coloque Caddy/Nginx na frente e faça proxy reverso para 127.0.0.1:2053.

bash
# Quick check that port 80 is free before the panel ACME challenge:
ss -tulpn | grep ':80'

# If you terminate TLS on Caddy instead of inside 3X-UI:
# Caddyfile example (panel stays on 127.0.0.1:2053):
# panel.example.com {
#     reverse_proxy 127.0.0.1:2053
# }
O certificado do painel vale só para a interface web. O VLESS Reality tem outra história TLS (ele se camufla como outro site) e não usa este arquivo Let's Encrypt para o tráfego dos clientes.

Passo 5: Criar um inbound VLESS Reality

Em Inbounds, crie um inbound novo. Um padrão sólido para muitas redes é VLESS com Reality e TCP. Escolha uma porta que não seja a do painel — 443 é comum se mais nada estiver vinculado ali; senão, uma porta TCP alta, e seja consistente no firewall. Gere um UUID para o primeiro cliente, pares de chaves Reality na interface e defina dest / serverNames para um destino legítimo que você possa imitar (um site conhecido com TLS 1.3). Salve o inbound e confirme nos logs do painel que o Xray recarrega sem erros.

Depois acrescente mais clientes nesse inbound se precisar: cada usuário recebe um UUID, uma tag de e-mail opcional e um limite de tráfego ou de tempo opcional. Copie o link de conexão ou o URL de assinatura da linha do usuário. Não poste esses links em chats públicos; eles equivalem a uma senha.

bash
# On the server, confirm Xray is listening on the inbound port (example: 443):
ss -tulpn | grep -E ':443|:2053'

# Follow Xray logs if a client cannot connect:
journalctl -u x-ui -f

Passo 6: Firewall — só as portas de que você precisa

O UFW no Ubuntu basta. Libere o SSH primeiro para não se trancar fora, depois a porta do painel e a do inbound. Se você pediu um certificado Let's Encrypt pelo painel, libere também 80/tcp durante a emissão. Um inbound Reality na 443 precisa de 443/tcp (e não o painel na mesma porta).

bash
ufw allow OpenSSH
ufw allow 2053/tcp comment '3x-ui panel (change if you picked another port)'
ufw allow 443/tcp comment 'VLESS Reality inbound'
# ufw allow 80/tcp comment 'only if panel ACME needs it'
ufw enable
ufw status verbose

Conectar clientes

No Windows, o v2rayN importa um link VLESS da área de transferência. No Android, o v2rayNG ou clientes Xray parecidos fazem o mesmo a partir de um QR code. No iOS, use um cliente com suporte a VLESS Reality (por exemplo Streisand ou Happ, conforme o que estiver disponível na sua região). Depois de importar, ative o perfil e confira a lista online do painel. Se o cliente ficar offline, as causas usuais são porta errada, UDP ligado num inbound só TCP, um serverName Reality que não bate com dest, ou um firewall local no notebook.

  • Windows: v2rayN — importe o link VLESS e ajuste o roteamento (global ou por regras)
  • Android: v2rayNG — leia o QR na página do usuário no painel
  • macOS / iOS: um cliente com suporte a VLESS + Reality; cole o mesmo link
  • URL de assinatura: adicione no cliente para rotações de UUID não exigirem reimportação manual

Atualizações, backup e reinstalação segura

Antes de cada atualização do painel, baixe um backup pela interface (banco + configuração). Guarde fora do VPS. As atualizações costumam ser x-ui e depois a opção de update no menu, ou o mesmo script de instalação, que detecta uma instalação existente. Depois de atualizar, confirme que o serviço systemd está ativo e que os inbounds ainda escutam. Se reinstalar o sistema, restaure o backup no painel em vez de recriar cada UUID na mão.

bash
x-ui   # choose update when prompted, or:
# bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

# Backup files commonly live under /etc/x-ui/ — copy them off-box:
ls -la /etc/x-ui/
# Example offsite copy:
# scp -r /etc/x-ui/ you@backup-host:~/x-ui-backup-$(date +%F)/

Solução de problemas

A maior parte das falhas no primeiro dia é DNS, portas ou campos Reality. Percorra esta lista antes de reinstalar o painel. Reinstalar sem backup é o jeito de perder todos os UUID dos clientes.

  • A interface web não abre: verifique systemctl status x-ui, ss -tulpn e UFW. Confirme que o URL inclui o caminho secreto.
  • Esqueceu a senha de administrador: execute x-ui no servidor e use a opção de reset.
  • O cliente conecta e trava: porta de inbound bloqueada, ou UDP ativado num inbound Reality TCP.
  • Erros de TLS no painel: o registro A do domínio ainda não aponta para cá, ou a porta 80 está ocupada durante o ACME.
  • O handshake Reality falha: dest/serverNames não batem, ou outro serviço já está vinculado à 443.
  • CPU alta: inbounds demais num plano de 1 vCPU, ou varredura/flood numa porta aberta — confira ss e a contagem online do painel.

Notas de segurança que realmente importam

Trate o painel como software de administração de produção. Ele pode criar usuários novos e ler cada UUID. Limite quem alcança a porta web: se você tem um IP de escritório estável, libere só esse IP no UFW para 2053/tcp. SSH com chaves, não com senhas. Não hospede sites públicos sem relação no mesmo IP se estiver usando Reality na 443 — pilhas TLS competindo na mesma porta são causa clássica de queda. Troque a senha de administrador se algum print do painel já vazou para um chat.

  • Só chaves SSH; desative login por senha quando as chaves funcionarem
  • Restrinja a porta do painel no firewall quando puder
  • Faça backup de /etc/x-ui fora do servidor com regularidade
  • Não compartilhe URLs de assinatura em grupos públicos do Telegram
  • Fique de olho no disco: logs e estatísticas de tráfego crescem num inbound movimentado

Dicas práticas

  • Um inbound com muitos clientes é mais fácil de operar do que dez inbounds quase iguais
  • Nomeie os clientes por dispositivo (laptop-anna, phone-ben) para os gráficos de tráfego fazerem sentido
  • Se você também precisa de um proxy reverso para um site, coloque o site em outro IP ou outra porta — não dispute a 443 com o Reality
  • Depois de qualquer restart do x-ui, teste um cliente antes de sair da sessão SSH
  • Leia o changelog antes de atualizar; evite saltos para latest numa sexta à noite

Você agora tem o 3X-UI instalado como serviço systemd, um URL de administração travado, TLS no painel, um inbound VLESS Reality, regras de firewall alinhadas a essas portas e o hábito de backup. Adicione clientes na página do inbound, importe o link em cada aparelho e atualize o painel só depois de um backup. Se algo quebrar, o menu x-ui no VPS é o caminho de recuperação — não uma reinstalação completa.