Sobre o projeto

stab é uma ferramenta moderna, simples e leve de túnel TCP de alto desempenho, projetada para expor facilmente portas locais em servidores remotos. Escrita em Rust, oferece uso via linha de comando e arquivos de configuração, além de suporte para ser incorporada em outros programas. Principais recursos: - Alto desempenho - Verificação de heartbeat - Estatísticas de tráfego - Página de gerenciamento Web com suporte para desconexão manual - Exposição simultânea de múltiplas portas locais - Reconexão automática após queda de conexão (configurável) - API IPC local: permite que outros programas iniciem o serviço sem configuração e enviem configurações dinamicamente Métodos de instalação: - Instalação via cargo: `cargo install stab` - Download de binários pré-compilados no GitHub Releases Como usar: 1. Inicie o servidor no host remoto: `stab server`. A porta de controle padrão é 5656 e a porta de gerenciamento Web é 3400. As portas podem ser modificadas, o intervalo de portas de dados pode ser restringido e o tamanho do pool de conexões pode ser configurado. 2. Estabeleça o túnel localmente: `stab local -l 8000=server.com`. Isso mapeia a porta local para o servidor remoto. A porta remota pode ser atribuída automaticamente ou especificada. 3. Todas as parâmetros podem ser definidos via arquivo de configuração (TOML), com a linha de comando tendo prioridade. 4. Suporte para autenticação por chave compartilhada para prevenir abuso. 5. A página de gerenciamento Web pode ser protegida por senha. Incorporação em outros programas: - Inicie com `stab local --api`, usando named pipes (Windows) ou Unix Domain Sockets para fornecer a API IPC. - O protocolo consiste em frames JSON com prefixo de comprimento, suportando métodos como ping, get_status, set_config, add_link, remove_link, list_links, clear_links e shutdown. - O processo hospedeiro pode adicionar/remover túneis dinamicamente, atualizar configurações e obter o status. Exemplos de arquivos de configuração: - Servidor `server.toml`: define modo, portas, chaves, logs, porta Web, intervalo de portas, tamanho do pool de conexões, etc. - Local `local.toml`: define modo, portas, chaves, logs, host remoto padrão, política de reconexão, lista de túneis, etc. Parâmetros da linha de comando: - `server` / `local`: modo de execução - `-f, --file`: caminho do arquivo de configuração - `-c, --control-port`: porta de controle - `-s, --secret`: chave do túnel - `--log`: nível de log - `--log-path`: diretório de logs - `-l, --link`: mapeamento de túnel - `--api`: habilita a API IPC - `--api-path`: caminho da API IPC - `--api-token`: token da API IPC - `-w, --web-port`: porta de gerenciamento Web - `-p, --port-range`: intervalo de portas de dados - `--pool-size`: tamanho do pool de conexões O projeto fornece documentação em chinês e inglês, sendo adequado para desenvolvedores e administradores de sistemas que precisam expor rapidamente serviços locais.