Se você já utilizou o LxBox ou o launcher desktop, pode ter se deparado com um aviso: "este nó provavelmente não se conectará". Esse alerta indica que o cliente encontrou um nó utilizando o transporte XHTTP, um recurso não suportado nativamente pelo núcleo sing-box. Em resposta, o launcher automaticamente reverte a configuração para HTTPUpgrade. Adicionalmente, surgiram solicitações para implementar o suporte a AWG/AWG2. Cansado de esperar, o desenvolvedor criou seu próprio fork do núcleo, o sing-box-lx.
Para entender a importância do sing-box-lx, é crucial compreender a arquitetura. O launcher (tanto o desktop quanto o LxBox) atua como um orquestrador de interface gráfica (GUI), responsável por montar a configuração e gerenciar o roteamento. A tarefa de processamento de rede é delegada ao núcleo sing-box, um poderoso roteador de rede. O launcher, em essência, fornece a "interface" para este "canivete suíço" de rede, adicionando funcionalidades como garfo e colher, especialmente no ambiente Android.
A lacuna no sing-box original residia na falta de dois recursos essenciais para cenários onde túneis convencionais falham. O primeiro é o XHTTP, um transporte do ecossistema Xray. De forma simplificada, ele encapsula o tráfego em requisições HTTP aparentemente normais, mascarando-o como navegação web comum para sistemas de inspeção profunda de pacotes (DPI) e evitando a detecção de "túneis suspeitos". A ausência de suporte ao XHTTP no sing-box upstream forçava o launcher a reverter para configurações menos eficazes. O segundo recurso é o AmneziaWG 2.0, uma versão ofuscada do WireGuard. O WireGuard padrão possui uma assinatura de handshake facilmente reconhecível pelo DPI, que o bloqueia. O AmneziaWG 2.0 injeta pacotes "lixo" e cabeçalhos específicos (parâmetros Jc, S1–S4, H1–H4, I1–I5) para quebrar essa assinatura, tornando o túnel indistinguível do WireGuard para o DPI. Embora o sing-box suporte WireGuard, ele não oferece a ofuscação do AmneziaWG como um endpoint de cliente.
Ambas as funcionalidades compartilham o mesmo objetivo: permitir a passagem de tráfego em redes onde túneis tradicionais são bloqueados. A criação do sing-box-lx não envolveu o desenvolvimento de um núcleo de rede do zero, o que seria impraticável. Em vez disso, o projeto adota uma abordagem de fork, mas com um diferencial crucial: o sing-box-lx foi projetado para evitar a obsolescência comum em forks. Três princípios guiam essa filosofia: mínimo toque no upstream, rebase automático no upstream e builds reproduzíveis. O código do sing-box-lx consiste majoritariamente em novos arquivos, com apenas uma pequena modificação no arquivo de build da biblioteca Android do upstream, marcada com // lx. Isso facilita a integração de futuras atualizações do sing-box original. Um sistema de CI (Continuous Integration) automatiza o rebase semanal dos commits do sing-box-lx sobre a tag estável mais recente do sing-box upstream, minimizando conflitos e garantindo que o fork permaneça atualizado. Todas as compilações são realizadas exclusivamente via GitHub CI/CD, garantindo que os binários publicados correspondam ao código-fonte aberto, eliminando a necessidade de confiar em compilações locais.
Além de adicionar funcionalidades, o sing-box-lx também otimiza o núcleo ao remover recursos não essenciais para clientes, como módulos de servidor de certificados (acme), tailscale e proxy AI. Em contrapartida, foram adicionadas as funcionalidades with_xhttp, with_awg e with_purego (para compilação cruzada de naive/cronet sem CGO). A string de tags de compilação é centralizada no Makefile.lx, garantindo consistência. As novas funcionalidades foram exaustivamente testadas contra servidores reais. O XHTTP demonstrou funcionalidade em modos packet-up/auto, incluindo handshake, DNS, HTTPS e download de arquivos, com um bug conhecido em stream-one em fase de correção. O AmneziaWG 2.0 foi testado com um servidor AWG2 real, confirmando o handshake, keepalive e tráfego real com ofuscação ativa. O resultado é o release v1.13.13-lx.3, que inclui binários para desktop (Linux, macOS, Windows em amd64/arm64) e bibliotecas AAR para Android (libbox), prontas para alimentar tanto o launcher desktop quanto o LxBox mobile. O próximo passo é integrar o suporte nativo ao XHTTP no launcher, eliminando o aviso laranja e a necessidade de downgrade.
A gestão do projeto segue especificações detalhadas, documentando cada alteração e sua relação com o upstream. Isso é crucial para facilitar futuros rebases, permitindo identificar rapidamente as modificações específicas do sing-box-lx através dos marcadores // lx. O repositório no GitHub (Leadaxe/sing-box-lx) contém os releases, tags de compilação, fluxos de CI/rebase e configurações de teste para XHTTP/AWG2. O desenvolvedor expressa gratidão ao upstream SagerNet/sing-box, à equipe Xray pelo XHTTP e à Amnezia pela ideia de ofuscação WireGuard. Contribuições e relatos de cenários de uso inesperados são encorajados através de issues no repositório.
