Sobre o projeto

frp é um proxy reverso rápido projetado para expor servidores locais localizados atrás de NATs ou firewalls para a internet. O projeto é composto por dois componentes: `frps` (servidor) implantado em uma máquina com IP público, e `frpc` (cliente) implantado em máquinas internas. Os protocolos suportados incluem TCP, UDP, HTTP e HTTPS. O frp pode encaminhar solicitações para serviços internos por meio de nomes de domínio personalizados, e também fornece um modo de conexão P2P (`xtcp`) para transmissão direta de dados entre clientes. Principais recursos: - **Suporte a protocolos**: TCP, UDP, HTTP, HTTPS e P2P (xtcp) - **Formatos de configuração**: TOML, YAML e JSON (INI está obsoleto a partir da versão v0.52.0) - **Autenticação**: baseada em token e OIDC (Concessão de Credenciais de Cliente) - **Criptografia**: suporte a TLS para comunicação entre cliente e servidor - **Painel do Servidor**: uma interface web em porta configurável que exibe estatísticas e status dos proxies - **Interface de Administração do Cliente**: interface web para verificar e gerenciar a configuração do frpc e os proxies em tempo de execução - **Gerenciamento Dinâmico de Proxies**: criar, atualizar e excluir proxies sem reiniciar o frpc por meio do recurso Store - **Multiplexação**: multiplexação de fluxos TCP e multiplexação de portas TCP - **Protocolos de transporte**: suporte aos protocolos KCP e QUIC - **Pool de conexões** - **Balanceamento de carga e verificações de integridade** - **Limites de largura de banda por proxy** - **Recursos HTTP**: reescrita de cabeçalho de host, cabeçalhos personalizados, roteamento de URL, Autenticação Básica, recuperação de IP real (X-Forwarded-For, Proxy Protocol) - **Reutilização de portas** - **Recarga a quente** da configuração do frpc - **Plugins do cliente**: unix_domain_socket, static_file, https2http e outros - **Gateway de Túnel SSH** - **Rede Virtual (VirtualNet)** - **Suporte a variáveis de ambiente** em modelos de configuração - **Divisão de configurações** em múltiplos arquivos por meio de includes - **Endpoint de monitoramento Prometheus** Os casos de uso comuns incluem acessar computadores de LAN via SSH, expor serviços web internos com domínios personalizados, encaminhar consultas DNS, expor sockets de domínio Unix (ex: Docker), compartilhar múltiplos serviços na mesma porta por meio de tcpmux/HTTP Connect, e expor serviços de forma privada usando o modo STCP (TCP Secreto) com chaves pré-compartilhadas. O projeto é mantido ativamente em Go, com o desenvolvimento da versão 2 em andamento baseado em conceitos de cloud-native e ServiceMesh, embora a v2 não seja compatível com a v1. Site: https://github.com/fatedier/frp