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
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.