Uma CLI no estilo netcat e uma biblioteca Go que conectam duas máquinas pela camada de dados WireGuard do Tailscale, sem exigir conta ou plano de controle do Tailscale.
fatedier/frp
Um proxy reverso rápido que expõe à internet servidores locais atrás de NAT ou firewalls por TCP, UDP, HTTP e HTTPS.
Alternativa open source a:ngrok
- Estrelas
- 110,048
- Forks
- 15,248
- Issues abertas
- 34
- Último commit
- anteontem
O que é?
frp é um proxy reverso escrito em Go que permite expor à internet pública um servidor local atrás de NAT ou firewall. Ele funciona com dois programas: o frps em uma máquina com IP público e o frpc na máquina que hospeda o serviço. O cliente mantém uma conexão com o servidor e encaminha o tráfego recebido para o serviço local.
Ele oferece encaminhamento de TCP e UDP, além de proxies HTTP e HTTPS que direcionam requisições por nome de domínio ou subdomínio, permitindo que vários sites internos compartilhem um único servidor público. Também oferece o modo STCP, que exige uma chave pré-compartilhada, o modo XTCP para transferência direta de dados entre pares e KCP e QUIC como protocolos de transporte alternativos.
Os recursos operacionais incluem configuração em TOML, YAML e JSON, templates com variáveis de ambiente, um painel do servidor, uma interface de administração do cliente com hot reload, métricas do Prometheus, autenticação por token e OIDC, criptografia TLS, limites de largura de banda, balanceamento de carga e verificações de integridade.
Recursos principais
- 01Encaminha tráfego TCP, UDP, HTTP e HTTPS de um servidor público para um serviço local.
- 02Direciona requisições HTTP e HTTPS para sites internos por domínio ou subdomínio personalizado.
- 03Oferece STCP com chaves pré-compartilhadas e XTCP para transferência de dados entre pares.
- 04Suporta os transportes TCP, KCP e QUIC, com criptografia e compressão opcionais.
- 05Oferece painel do servidor, interface de administração do cliente, hot reload e métricas do Prometheus.
- 06Inclui autenticação por token e OIDC, limites de largura de banda, balanceamento de carga e verificações de integridade.
Casos de uso
- Expor à internet um servidor SSH doméstico ou do escritório, ou um app web de desenvolvimento, sem precisar de IP público.
- Hospedar vários sites internos em um único servidor público usando domínios personalizados.
- Encaminhar um resolvedor DNS local ou outro serviço UDP por meio de um host público.
- Permitir que um colaborador remoto acesse com segurança um serviço interno usando uma chave pré-compartilhada.
Início rápido
- 1
Baixe a versão mais recente do frp para seu sistema operacional na página Releases
- 2
Em um servidor com IP público, inicie o frps com o arquivo de configuração
./frps -c ./frps.toml - 3
Na máquina atrás de NAT ou de um firewall, inicie o frpc com o arquivo de configuração
./frpc -c ./frpc.toml
Antes de usar
- Você precisa de um servidor próprio com um endereço IP público para executar o frps.
- O README informa que a próxima versão v2 não será compatível com a v1.
- Alguns antivírus podem sinalizar o frpc incorretamente como malware.
Tópicos
Perguntas frequentes
- O que é frp?
- Um proxy reverso rápido que expõe à internet servidores locais atrás de NAT ou firewalls por TCP, UDP, HTTP e HTTPS. frp é um proxy reverso escrito em Go que permite expor à internet pública um servidor local atrás de NAT ou firewall. Ele funciona com dois programas: o frps em uma máquina com IP público e o frpc na máquina que hospeda o serviço. O cliente mantém uma conexão com o servidor e encaminha o tráfego recebido para o serviço local.
- frp é gratuito? Qual é a licença?
- frp é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- frp ainda é mantido?
- Manutenção ativa. O último commit de frp foi em 20 de out. de 2026.
- Para que posso usar frp?
- Expor à internet um servidor SSH doméstico ou do escritório, ou um app web de desenvolvimento, sem precisar de IP público. Hospedar vários sites internos em um único servidor público usando domínios personalizados. Encaminhar um resolvedor DNS local ou outro serviço UDP por meio de um host público. Permitir que um colaborador remoto acesse com segurança um serviço interno usando uma chave pré-compartilhada.
- Como instalar frp?
- Baixe a versão mais recente do frp para seu sistema operacional na página Releases Em um servidor com IP público, inicie o frps com o arquivo de configuração: ./frps -c ./frps.toml Na máquina atrás de NAT ou de um firewall, inicie o frpc com o arquivo de configuração: ./frpc -c ./frpc.toml
- Onde consigo frp?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/fatedier/frp
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma VPN mesh descentralizada escrita em Rust que conecta dispositivos a uma LAN virtual, com travessia de NAT e suporte a WireGuard.
Um túnel self-hosted escrito em Go que expõe serviços do localhost à internet usando seu próprio domínio e servidor.
Biblioteca Rust para conectar apps por chave pública, com transporte QUIC, hole punching e fallback por relay.
Alternativa open source ao ngrok que disponibiliza um servidor HTTP local em uma URL HTTPS pública com um único comando.
Interface web auto-hospedada para gerenciar sites, certificados, configurações, logs e métricas do Nginx, desenvolvida em Go e Vue.