Você tem um smartphone Android antigo jogado em uma gaveta? Talvez com a tela trincada ou a bandeja do chip quebrada? Pense duas vezes antes de jogá-lo no lixo eletrônico. Esse aparelho possui bateria embutida (que funciona como um nobreak), conexão Wi-Fi e um processador muito mais potente que placas famosas, como o Raspberry Pi.
Neste artigo, vou te ensinar a arquitetura exata que usei para transformar um Moto G20 em um Servidor VPS Pessoal (Bare-Metal) que roda 24/7 na minha casa.
Para provar o poder desse setup: atualmente, este meu celular roda SSH, FileBrowser, Python, Node.js, Apache, PHP 8.4, MariaDB e FFmpeg. Ele está executando um Bot de Telegram que grava vídeos (FFmpeg/MKV) de uma câmera de segurança via script Python, além de um script de raspagem de dados que já salvou mais de 216.000 registros em um banco de dados MariaDB — tudo isso gastando apenas ~5 Watts de energia (uma economia gigante na conta de luz em comparação a um PC ligado o dia todo).
E ainda tem o aria2 com a interface AriaNg
O que é o aria2?
O aria2 é um programa de terminal que consegue baixar arquivos usando:
- HTTP / HTTPS
- FTP
- BitTorrent
- Metalink
Com recursos avançados:
- Múltiplas conexões por arquivo (super rápido)
- Retomada automática
- Controle remoto via RPC
- Extremamente leve
Onde entra o AriaNg?
O AriaNg se conecta ao aria2 via RPC e te entrega:
- Painel visual no navegador
- Fila de downloads
- Controle de velocidade
- Opção de adicionar links/torrents
- Pausar, continuar, remover
- Ver progresso em tempo real
Tudo sem precisar usar o terminal. Ou seja, além de rodar serviços, ele ainda faz downloads. Já imaginou aquele download enorme que faria seu PC passar 24 horas ou mais ligado gastando energia? Agora você pode deixar seu celular velho fazendo isso.
Pode dar um pouco de trabalho configurar pela primeira vez, mas a sensação de ter sua própria Nuvem Privada é extremamente gratificante!
Aí você deve estar pensando: "mas só vou poder acessar isso na minha rede local!". E eu te respondo: não, meu amigo! Mas aqui vai uma observação: se não precisar de acesso externo, deixe acessível apenas na rede local por questão de segurança. Agora, se você realmente precisa deixar algum serviço online na internet, dá para usar o serviço de túnel da Cloudflare. Eu usei e dá super certo, mas vou deixar esse passo para depois. Comente no artigo se você quiser saber como faço para deixá-lo online.
A Arquitetura do Nosso Servidor
Nós não vamos instalar o Linux por cima do Android (o que exigiria Root e seria perigoso). Nós vamos usar a Containerização.
- A "Placa-mãe": O aplicativo Termux será a nossa base.
- O Sistema Operacional: Vamos instalar o Alpine Linux dentro do Termux. O Alpine é famoso no mundo dos servidores por ser incrivelmente leve (consome cerca de 60MB de RAM quando em repouso).
Aviso sobre o Android
Este tutorial foi validado no Android 11 e 9 (os vídeos incluídos no artigo foram gravados em um Xiaomi MI A1 com Android 9). O Android tem uma regra de segurança nativa: nenhum aplicativo comum pode abrir portas de rede abaixo de 1024 (ex: portas 80, 443, 22). Por isso, nossos serviços sempre rodarão em portas altas (8080, 8022, 8023, etc.).
Passo 1: Preparando o Terreno (Termux)
- Baixe e instale o Termux: NUNCA baixe pela Google Play Store (a versão de lá está abandonada). Baixe a versão oficial pelo F-Droid ou pelo site oficial (GitHub).
- Permissão de Armazenamento: Para que seu servidor consiga salvar arquivos na memória real do aparelho, abra o Termux e rode:
termux-setup-storage
- Impedir a Hibernação: Para garantir que o Android não desligue a CPU ou o Wi-Fi quando a tela apagar, puxe a barra de notificações e ative o Acquire WakeLock no app do Termux, ou rode o comando:
termux-wake-lock
Passo 2: A Estratégia do "Duplo SSH" (Acesso Remoto)
Para trabalhar confortavelmente do seu PC Windows/Linux, precisaremos acessar o terminal remotamente via SSH. Aqui entra a nossa estratégia de ouro: teremos dois servidores SSH rodando ao mesmo tempo.
- SSH 1 (Porta 8022): Instalado direto no Termux. Usaremos apenas quando precisarmos gerenciar a "máquina virtual" ou mexer em configurações nativas do Android.
- SSH 2 (Porta 8023): Instalado dentro do Alpine Linux. Usaremos ele 99% do tempo para instalar sites, bancos de dados e programar.
Configurando o SSH do Termux (Porta 8022)
No Termux, execute os seguintes comandos:
pkg update && pkg upgrade
pkg install openssh
passwd # Crie sua senha
sshd # Inicia o servidor
Dica de Ouro: Desligue o DHCP e fixe o IP
O que é DHCP?
O DHCP (Dynamic Host Configuration Protocol) é o serviço de rede que entrega automaticamente um endereço IP e outras configurações para dispositivos quando eles entram na rede.
Em vez de configurar o IP manualmente em cada aparelho, o DHCP faz tudo sozinho. Ele é muito bom, mas, para o nosso caso (transformar o smartphone em um servidor), um IP dinâmico não é ideal. Por isso, é altamente recomendável definir um IP estático no seu celular (de preferência um IP alto, como 192.168.0.249, para evitar conflitos na rede).
Esse processo é simples, mas pode mudar um pouco de modelo para modelo. Pesquise no YouTube "como dar um IP estático ao celular Android". Caso queira, pode deixar o IP dinâmico mesmo; porém, se o celular se desconectar do Wi-Fi e voltar, o roteador pode gerar um novo IP, e você precisará descobrir qual é para acessar via SSH novamente.
Descobrindo o usuário do Termux
Agora que instalamos e criamos a senha do SSH no Termux, e já sabemos o IP do dispositivo na rede, precisamos saber o nome de usuário do Termux (que, por padrão, começa com u0_a seguido de números). Basta digitar no seu celular:
whoami
Vai aparecer algo como u0_a115. Pronto! Com esses dados, podemos acessar o Termux via SSH pelo terminal do seu PC, o que facilitará bastante a digitação.
Abra o terminal do seu PC (no Windows, pode ser o Windows Terminal ou PowerShell) e digite o comando usando a estrutura ssh -p 8022 nome_usuario@IP_celular. No meu caso, ficou assim:
ssh -p 8022 [email protected]
Passo 3: Instalando o "Cérebro" (Alpine Linux)
Com o Termux preparado (e acessado pelo PC), vamos instalar e entrar no nosso verdadeiro Sistema Operacional: o Alpine Linux.
Antes, precisamos instalar o proot-distro. Esta é uma ferramenta do Termux que permite instalar e executar distribuições Linux dentro do Android sem precisar de root. Ele cria um ambiente isolado, simulando permissões de sistema e um sistema de arquivos próprio.
Para instalar, execute:
pkg install proot-distro
Em seguida, vamos instalar o Alpine Linux:
proot-distro install alpine
Sempre que você precisar entrar no Alpine pelo Termux, utilizará este comando:
proot-distro login alpine
Ao rodar esse último comando, o seu terminal mudará para localhost:~#. Parabéns, você agora é o usuário Root (Administrador Máximo) de um servidor Linux de verdade!
Dentro do Alpine, atualize os pacotes:
apk update && apk upgrade
Instalando e configurando o SSH no Alpine (Porta 8023)
Instale o OpenSSH:
apk add openssh
Diferente do Termux, o Alpine não vem configurado de fábrica para contornar o bloqueio de portas do Android. Precisamos alterar a porta padrão (22) para a 8023. Vamos usar o editor de texto nano:
nano /etc/ssh/sshd_config
Com o arquivo aberto, vá até a linha #Port 22. Remova o # e altere para 8023, ficando assim:
Port 8023
Agora, localize a linha #PermitRootLogin prohibit-password. Remova o #, apague "prohibit-password" e deixe assim:
PermitRootLogin yes
(Caso fique alguma dúvida, acompanhe no vídeo para ver exatamente onde alterar).
Para salvar no nano, pressione Ctrl + O, dê Enter, e depois Ctrl + X para sair.
Antes de iniciar o serviço, é necessário gerar as chaves do SSH com o comando:
ssh-keygen -A
Também é preciso criar a senha do usuário root usando o comando:
passwd
Digite a senha desejada, pressione Enter, e digite novamente para confirmar.
Pronto! Inicie o servidor SSH do Alpine executando:
/usr/sbin/sshd
Agora, abra uma nova aba no terminal do seu PC e conecte-se diretamente ao Alpine (note que mudamos a porta e o usuário):
ssh -p 8023 [email protected]
Aviso de Segurança do SSH (Dica Importante)
Se, durante seus testes, você precisar desinstalar e instalar o SSH novamente (seja no Termux ou no Alpine), o servidor gerará uma nova chave de segurança. Como o seu PC ainda guarda a chave antiga, ele lançará um aviso de segurança parecido com este:
Se isso acontecer, você precisa limpar a chave antiga salva no seu PC. Basta rodar o comando abaixo no terminal do seu computador (ajustando o IP e a porta para o seu cenário):
ssh-keygen -R [192.168.1.2]:8022
Se for o Alpine, mude para 8023.
Se for o seu primeiro acesso, aparecerá apenas o aviso padrão. Digite yes e pressione Enter.
Digite sua senha e pronto! Você está conectado diretamente ao Alpine Linux (o terminal exibirá localhost:~#).
Monitorando Recursos com o Htop
O htop é uma ferramenta que permite visualizar, em tempo real, o uso de recursos do sistema, como:
- Consumo de CPU
- Uso de memória RAM
- Processos em execução
- Carga do sistema
Ele é muito útil para entender como o celular está se comportando como servidor. Para instalar no Alpine, execute:
apk add htop
Para abrir, basta digitar:
htop
Para fechar, pressione a tecla Q ou F10.
Mantendo tudo rodando com o Tmux
O tmux é um multiplexador de terminal. Na prática, ele permite criar várias sessões de terminal dentro de uma única conexão SSH. Isso é extremamente útil porque:
- Você pode iniciar processos e deixá-los rodando em segundo plano.
- Pode fechar o terminal (ou até perder a conexão SSH) sem interromper o que está rodando.
- Pode voltar depois exatamente ao ponto onde parou.
- Pode dividir a tela em vários terminais ao mesmo tempo.
Tutorial rápido de tmux no Alpine
1) Instalando o tmux
No Alpine Linux, o comando é:
apk add tmux
Observação: Se ao rodar esse comando der erro na instalação do pacote...
...o Alpine tem o comando fix, que força a reinstalação ou correção do pacote. No meu caso, resolveu assim:
apk fix tmux
Para entrar em uma sessão tmux, basta digitar:
tmux
2) Rodar um serviço e deixar ativo
Lá dentro, você pode rodar, por exemplo, o htop ou iniciar o seu script Python/Node.
htop
3) Sair da sessão sem parar o que está rodando (Detach)
Pressione as teclas: Ctrl + B, solte, e depois pressione D. Isso "desanexa" o tmux. Tudo continua executando em segundo plano, e você volta ao terminal normal do SSH.
4) Listar as sessões tmux ativas
Para ver quais sessões estão rodando em segundo plano, digite:
tmux ls
5) Voltar para a sessão (Attach)
Para retornar à sessão que deixamos em segundo plano:
tmux attach
Ou, se houver mais de uma sessão, informe o ID:
tmux attach -t 0
6) Criar uma sessão com nome (Recomendado)
É mais fácil organizar dando nomes às sessões. Por exemplo, para criar uma sessão chamada "servidor":
tmux new -s servidor
Depois, para voltar para ela:
tmux attach -t servidor
7) Encerrar uma sessão tmux
Basta entrar na sessão e digitar:
exit
ou, de fora::
tmux kill-session -t servidor
Por que isso é essencial no nosso projeto?
Usando o tmux no Alpine dentro do Termux, seus scripts, bots e servidores continuam rodando indefinidamente. Você pode fechar o terminal do PC, desligar o seu computador, e o celular continuará operando normalmente. Quando quiser monitorar, basta acessar via SSH novamente e dar um tmux attach para ver as coisas como as deixou.
Vejá o tutora em vídeo | Parte 01
- Instalando o File Browser.
- Instalando Python: Em breve.