Voltar ao blog
Agosto 19, 2026Guias

Como instalar o painel 3X-UI num VPS

Guia completo, orientado para produção: instalar o painel 3X-UI Xray no Ubuntu, proteger a interface web, emitir TLS, criar um inbound VLESS Reality, gerir utilizadores e ligar clientes no computador e no telemóvel.

Como instalar o painel 3X-UI num VPS

3X-UI é um painel web para o Xray-core. Permite gerir inbounds (VLESS, VMess, Trojan, Shadowsocks e outros), emitir ligações de subscrição, definir limites de tráfego e datas de validade, e acompanhar ligações em direto sem editar JSON à mão. Para quem já tem um VPS, é uma das formas mais rápidas de obter uma pilha de proxy sustentável, em vez de uma configuração de ocasião que ninguém ousa tocar seis meses depois.

Este guia destina-se a um VPS Ubuntu 22.04 ou 24.04 recém-instalado, como costumam ficar as imagens Linux da Hiddence após o primeiro arranque. Vamos instalar a compilação MHSanaei do 3X-UI, muito usada, alterar todos os segredos predefinidos no primeiro acesso, colocar o painel atrás de HTTPS, abrir só as portas de que realmente precisa, criar um inbound VLESS + Reality e, em seguida, percorrer as aplicações cliente. Se já seguiu o nosso artigo sobre Marzban, a ideia é semelhante — um painel por cima do Xray —, mas o caminho de instalação, a árvore de ficheiros e o dia a dia são diferentes: não misture os dois no mesmo servidor enquanto não souber separar as portas.

Porquê 3X-UI em vez de um ficheiro de configuração Xray em cru

Uma configuração Xray em cru serve para um utilizador e um inbound. Assim que junta amigos, roda chaves Reality ou precisa de um URL de subscrição que os telemóveis importam com um toque, um painel poupa horas. O 3X-UI guarda utilizadores numa base de dados local, reinicia o Xray de forma limpa após alterações e oferece um painel compacto de tráfego e estado em linha. 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 continuam a decidir o comportamento na rede.

  • Interface web para inbounds, clientes, tráfego e validade em vez de JSON editado à mão
  • Ligações de subscrição integradas para v2rayN, v2rayNG, Streisand, Happ e clientes semelhantes
  • Instalação com um comando e um caminho de atualização documentado
  • Funciona bem num VPS pequeno (1 vCPU / 1 GB de RAM chega para uso pessoal)
  • Mantém o root no seu servidor — o painel não envia configurações para uma nuvem de terceiros

O que precisa antes de começar

Não salte o domínio nem a firewall. Um painel deixado em HTTP na porta 2053 com a palavra-passe predefinida é varrido por robots em poucas horas. Prepare estes pontos e ligue-se como root (ou utilizador com sudo) por SSH.

  • Um VPS Linux com endereço IPv4 público (recomenda-se Ubuntu 22.04/24.04)
  • Pelo menos 1 GB de RAM e 10 GB de disco; 2 GB de RAM são mais cómodos se também correrem outros serviços
  • Acesso root ou sudo por SSH
  • Um domínio ou subdomínio com um registo A a apontar para o IP do VPS (necessário para um certificado decente do painel)
  • Cerca de 20–30 minutos, mais o tempo de espera de DNS se acabou de criar o registo A

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

Um VPS novo tem muitas vezes atualizações de segurança pendentes e o relógio em UTC. Atualize primeiro os pacotes para o instalador não lutar com um OpenSSL ou curl desatualizados. O fuso horário é opcional para o próprio Xray, mas torna os registos do painel e as datas de validade dos certificados bem mais legíveis.

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 de instalação oficial da compilação MHSanaei do 3X-UI descarrega a versão mais recente, instala o Xray-core, cria um serviço systemd e imprime o URL do primeiro acesso. Leia a saída com atenção: contém um caminho aleatório e um nome de utilizador/palavra-passe gerados. Copie-os de imediato para um gestor de palavras-passe. Se o script perguntar a porta do painel, mantenha 2053 ou escolha uma porta alta livre; recorde-a para o passo da 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
Mantenha esta sessão SSH aberta. Se se trancar fora do painel, o menu x-ui no servidor pode repor a palavra-passe de administrador sem reinstalar.

Passo 3: Primeiro acesso e endurecimento imediato

Abra o URL impresso pelo instalador, normalmente http://YOUR_IP:2053/<caminho-aleatório>. Entre com as credenciais geradas e vá às definições do painel (Panel Settings ou Configuration). Altere o nome de utilizador e a palavra-passe para valores únicos. Se o painel permitir mudar o caminho base web, faça-o: um caminho longo e aleatório corta uma enorme quantidade de varrimentos oportunistas. Defina a porta de escuta se quiser algo diferente de 2053. Guarde, reinicie o painel a partir da interface ou com systemctl restart x-ui e volte a entrar no novo URL.

De seguida, ative a autenticação de dois fatores se a sua compilação a oferecer e desative os modelos de inbound que nunca vai usar. Nas definições Xray, deixe a versão do núcleo que veio com o painel, salvo motivo concreto para fixar outra. Não exponha ainda o painel nas portas 80/443 se essas portas forem mais tarde usadas pelo Reality ou por um proxy inverso — escolha uma estratégia e cumpra-a.

  • Substitua de imediato o acesso de administrador gerado
  • Mantenha o caminho web secreto; não mova o painel para /
  • Prefira uma porta de painel não predefinida e anote-a
  • Nunca reutilize esta palavra-passe noutros serviços

Passo 4: Certificado TLS para o painel

Os browsers avisam em HTTP e enviar a palavra-passe de administrador em claro 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 secção de certificado / SSL, introduza panel.example.com e peça o certificado. Se a porta 80 já estiver ocupada, use um fluxo DNS-01 ou coloque Caddy/Nginx à frente e faça proxy inverso 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 destina-se apenas à interface web. O VLESS Reality tem outra história TLS (camufla-se como outro sítio) e não usa este ficheiro Let's Encrypt para o tráfego dos clientes.

Passo 5: Criar um inbound VLESS Reality

Em Inbounds, crie um inbound novo. Um valor predefinido 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 associado aí; caso contrário, uma porta TCP alta e seja coerente na firewall. Gere um UUID para o primeiro cliente, pares de chaves Reality na interface e defina dest / serverNames para um destino legítimo que possa imitar (um sítio conhecido com TLS 1.3). Guarde o inbound e confirme nos registos do painel que o Xray recarrega sem erros.

Depois acrescente clientes extra nesse inbound se precisar: cada utilizador recebe um UUID, uma etiqueta de correio opcional e um limite de tráfego ou de tempo opcional. Copie o URL de ligação ou o URL de subscrição da linha do utilizador. Não publique essas ligações em conversas públicas; equivalem a uma palavra-passe.

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 precisa

O UFW no Ubuntu chega. Permita primeiro o SSH para não se trancar fora, depois a porta do painel e a do inbound. Se pediu um certificado Let's Encrypt a partir do painel, permita 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

Ligar clientes

No Windows, o v2rayN pode importar uma ligação VLESS a partir da área de transferência. No Android, o v2rayNG ou clientes Xray semelhantes fazem o mesmo a partir de um código QR. No iOS, use um cliente que suporte VLESS Reality (por exemplo Streisand ou Happ, consoante o que estiver disponível na sua região). Após importar, ative o perfil e verifique a lista em linha do painel. Se o cliente ficar offline, as causas habituais são uma porta errada, UDP deixado ativo num inbound só TCP, um serverName Reality que não coincide com dest, ou uma firewall local no computador portátil.

  • Windows: v2rayN — importar a ligação VLESS e definir o encaminhamento (global ou por regras)
  • Android: v2rayNG — ler o QR na página do utilizador do painel
  • macOS / iOS: um cliente com suporte VLESS + Reality; cole a mesma ligação
  • URL de subscrição: adicione-o no cliente para as rotações de UUID não exigirem reimportação manual

Atualizações, cópia de segurança e reinstalação segura

Antes de cada atualização do painel, descarregue uma cópia de segurança a partir da interface (base de dados + configuração). Guarde-a fora do VPS. As atualizações passam normalmente por x-ui e pela opção de atualização no menu, ou pelo mesmo script de instalação, que deteta uma instalação existente. Após uma atualização, confirme que o serviço systemd está ativo e que os inbounds ainda escutam. Se reinstalar o sistema, restaure a cópia no painel em vez de recriar cada UUID à 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)/

Resolução de problemas

A maioria das falhas no primeiro dia são DNS, portas ou campos Reality. Percorra esta lista antes de reinstalar o painel. Reinstalar sem cópia de segurança é a forma de perder todos os UUID dos clientes.

  • Não abre a interface web: verifique systemctl status x-ui, ss -tulpn e UFW. Confirme que incluiu o caminho secreto no URL.
  • Esqueceu a palavra-passe de administrador: execute x-ui no servidor e use a opção de reposição.
  • O cliente liga e depois fica parado: porta de inbound bloqueada, ou UDP ativado num inbound Reality TCP.
  • Erros TLS no painel: o registo A do domínio ainda não aponta para aqui, ou a porta 80 está ocupada durante o ACME.
  • O handshake Reality falha: dest/serverNames não coincidem, ou outro serviço já está associado à 443.
  • CPU elevada: demasiados inbounds num plano de 1 vCPU, ou um varrimento/inundação numa porta aberta — verifique ss e a contagem em linha do painel.

Notas de segurança que realmente importam

Trate o painel como software de administração de produção. Pode criar novos utilizadores e ler cada UUID. Limite quem consegue alcançar a porta web: se tiver um IP de escritório estável, permita só esse IP no UFW para 2053/tcp. SSH com chaves, não com palavras-passe. Não alojar sítios públicos alheios no mesmo IP se usar Reality na 443 — pilhas TLS a competir numa porta são uma causa clássica de interrupções. Rode a palavra-passe de administrador se alguma captura do painel alguma vez tiver ido parar a uma conversa.

  • Apenas chaves SSH; desative o acesso por palavra-passe quando as chaves funcionarem
  • Restrinja a porta do painel na firewall quando puder
  • Faça cópias de /etc/x-ui fora do servidor com regularidade
  • Não partilhe URL de subscrição em grupos públicos do Telegram
  • Vigie o disco: registos e estatísticas de tráfego crescem num inbound ocupado

Dicas práticas

  • Um inbound com muitos clientes é mais fácil de operar do que dez inbounds quase idênticos
  • Dê nomes aos clientes por dispositivo (laptop-anna, phone-ben) para os gráficos de tráfego terem significado
  • Se também precisar de um proxy inverso para um sítio, coloque o sítio noutro IP ou noutra porta — não dispute a 443 com o Reality
  • Após qualquer reinício do x-ui, teste um cliente antes de sair da sessão SSH
  • Leia o registo de alterações antes de atualizar; evite saltos para latest à sexta à noite

Tem agora o 3X-UI instalado como serviço systemd, um URL de administração protegido, TLS no painel, um inbound VLESS Reality, regras de firewall alinhadas com essas portas e o hábito de fazer cópias. Acrescente clientes na página do inbound, importe a ligação em cada dispositivo e atualize o painel só depois de uma cópia de segurança. Se algo se partir, o menu x-ui no VPS é o caminho de recuperação — não uma reinstalação completa.