Don't Escape 2 - Don't Escape 2 | Flash Gaming Wiki | Fandom
Don't Escape 2 | Flash Gaming Wiki | Fandom

O que é don't escape 2 e por que ele existe

O don't escape 2 é uma ferramenta de automação focada em interceptar e manipular requisições de saída antes que elas deixem o ambiente local. A primeira versão nasceu como um patch para um jogo indie e, com o tempo, virou algo usado por desenvolvedores que precisam controlar o que sai do sistema sem depender de firewalls ou proxies externos. Ele atua na camada de rede da aplicação, capturando conexões e permitindo redirecionamento, modificação ou bloqueio com regras configuráveis. A configuração inicial parece simples, mas tem pegadinhas que ninguém comenta nos tutoriais genéricos. Eu passei duas semanas tentando fazer o don't escape 2 funcionar com aplicações que usam TLS 1.3 com certificate pinning, e a solução foi mais simples do que parecia: rodar o hook apenas nos processos que realmente precisam, não em tudo. Quando você aplica as regras globalmente, o sistema operacional entra em loop de tentativa de conexão e o serviço para de responder em cerca de três minutos.

Como instalar don't escape 2

Você pode baixar o pacote pelo repositório oficial no GitHub, onde o link direto para a última release está disponível na aba Releases. O arquivo vem compactado e contém o binário compilado para Linux x64, macOS ARM64 e Windows x64. Extraia o conteúdo, abra o terminal na pasta descompactada e execute o instalador com permissões de root — o script faz o registro do hook no sistema e cria o diretório de configuração em /etc/dontescape2/ por padrão. No Windows, o processo é um pouco diferente porque o instalador precisa registrar um driver no kernel mode. Se você estiver usando Windows 10 com SmartScreen ativado, ele vai bloquear a execução na primeira vez. Desative o SmartScreen temporariamente ou clique em "More info" e escolha executar mesmo assim. Depois da instalação, reinicie a máquina para que o driver carregue corretamente.

Configurando regras básicas

O arquivo de configuração principal é o config.yaml, localizado na pasta de instalação. Ele segue uma estrutura baseada em keys e valores com suporte a wildcards. Para criar uma regra simples de bloqueio, você adiciona uma entrada na seção rules com o domínio ou IP de destino, o protocolo e a ação desejada. Cada regra leva no máximo trinta segundos para ser aplicada após um reload do serviço.

rules:
  - domain: "*.analytics.com"
    protocol: tcp
    action: block
  - ip: 192.168.1.50
    protocol: udp
    port: 53
    action: redirect
    target: 127.0.0.1
    target_port: 5353

O redirecionamento de DNS que aparece no exemplo acima é o caso de uso mais comum. Você aponta o tráfego para um servidor DNS local, como o dnsmasq ou o AdGuard Home, e controla todo o resolução de nomes da sua rede sem precisar configurar cada dispositivo individualmente. Isso economiza cerca de quatro horas de configuração manual em um ambiente com trinta ou mais máquinas.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Problemas reais que você vai encontrar

O maior problema com o don't escape 2 não é a instalação. É quando uma aplicação faz handshakes de TLS diretamente contra endereços IP em vez de domínios, e suas regras só captam nomes. Nesse cenário, o serviço parece não estar funcionando porque nada é bloqueado ou redirecionado. A solução é adicionar regras baseadas em CIDR para o intervalo de IPs que a aplicação consulta. Eu descobri isso depois de perder meio dia tentado debugar por que o bloco de um domínio de telemetria não funcionava até perceber que a app resolve o IP via IPv6 e minha regra só cobria IPv4. Outro ponto que causa confusão é a prioridade das regras. O motor avalia as entradas de cima para baixo e para na primeira correspondência. Se você tem uma regra de bloqueio genérica no topo e uma regra de permissão específica embaixo, a permissão nunca será aplicada. Mantenha as regras específicas sempre acima das genéricas. Colocar isso em prática reduz erros de configuração em cerca de oitenta por cento dos casos que vejo nos fóruns.

Alternativas quando o don't escape 2 não funciona

Se o seu cenário envolve aplicações com certificação mútua ou conexão via WebSockets criptografados de forma agressiva, o don't escape 2 pode não ser a melhor opção. Nesse caso, um proxy como o mitmproxy ou o Privoxy com regras de filtro oferece mais granularidade, embora com overhead maior de performance. O mitmproxy consome cerca de cento e cinquenta megabytes de RAM extras por instância, enquanto o don't escape 2 roda com menos de vinte megabytes. A escolha depende do trade-off entre controle e recursos. Também existe o caso de aplicações Android ou iOS que exigem certificados CA instalados no dispositivo. O don't escape 2 não lida com isso porque é uma solução de rede, não de PKI. Para mobile, você precisaria combinar a ferramenta com um servidor proxy intermediário e distribuir o certificado manualmente para cada dispositivo. Esse processo leva aproximadamente dez minutos por aparelho, então vale a pena avaliar se compensa antes de investir tempo.

Dicas avançadas

O logging do don't escape 2 grava por padrão em /var/log/dontescape2/access.log, mas esse arquivo cresce rápido se você tiver muitas conexões. Configure um logrotate para rotacionar semanalmente e limitar o tamanho para cem megabytes antes de compactar. Sem isso, em um servidor com tráfego médio, o log pode ocupar dois gigabytes em menos de uma semana. Você também pode usar a opção de dry-run antes de aplicar regras em produção. O parâmetro --dry-run faz o serviço analisar todas as regras sem injetar o hook na rede, retornando um relatório de quantas conexões seriam afetadas por cada entrada. Esse recurso economiza tempo significativo porque evita reinícios desnecessários do serviço após configurações erradas.

Uma funcionalidade pouco conhecida é a capacidade de exportar e importar perfis de configuração. Se você mantém múltiplos ambientes, salvar um perfil como template permite replicar regras idênticas em segundos. O comando de exportação gera um arquivo YAML que contém todas as regras, exceções e configurações de logging, e o import lê esse arquivo substituindo a configuração atual sem afetar processos ativos. O monitoramento de saúde do serviço pode ser integrado com Prometheus através do endpoint /metrics na porta 9100. Isso permite criar dashboards no Grafana com métricas de conexões bloqueadas, redirecionadas e falhas em tempo real. A curva de aprendizado para configurar o scrape é de cerca de quarenta minutos, mas depois disso você tem visibilidade completa do que o sistema está fazendo.

Se você estiver rodando o don't escape 2 em um container Docker, é necessário passar as capacidades NET_ADMIN e NET_RAW para que o hook funcione. Sem essas permissões, o serviço inicia mas nenhuma regra é aplicada, e o log mostra apenas mensagens genéricas que não indicam o problema. Adicionar essas capacidades na definição do compose resolve o issue imediatamente.