Fabio vs frp
Fabio
github.comfrp
gofrp.orgSide by side
| Figure | Fabio | frp |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Android | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Reverse Proxy Software | 8.8 (#4) | 8.2 (#12) |
| Deployment | The project README lists installation from source, prebuilt binaries, Docker, and Homebrew. | frp is written in Go and supports cross-platform deployment using platform-specific binaries without additional dependencies. |
| Purpose | Fabio is an HTTP and TCP reverse proxy that configures itself with data from Consul. | frp is a high-performance reverse proxy for exposing intranet services to the public network through nodes with public IP addresses. |
| Security | The README says release hashes are signed with a PGP key and describes TLS certificate verification behavior for upstream HTTPS connections. | Client and server authentication supports token and OIDC methods, with token authentication as the default. |
| Traffic management | Traffic shaping can send a percentage of traffic upstream without knowing the number of instances. | Proxy groups support load balancing, and TCP or HTTP health checks can remove failed services from frps. |
Plans
In their own words
Fabio
Fabio is a self-hosted HTTP and TCP reverse proxy that builds its routing from Consul service data. Services can announce accepted paths with tags such as `urlprefix-/user`; Fabio then refreshes its routing table when Consul changes, without restarting or reloading. Its main role is distributing incoming HTTP(S) and TCP traffic from the internet to frontend services. It is not intended for frontend-to-backend or backend-to-backend routing, where Consul service discovery is used instead. Fabio provides route-specific access control, authorization, customizable logs, redirects, compression, header injection, path changes, WebSockets, server-sent events, and transparent gRPC proxying. It supports TLS termination, dynamic certificate stores, HTTPS upstreams, raw TCP, TCP-SNI forwarding, and traffic shaping by percentage. A web UI shows the active routes, with metrics integrations. Fabio is free, open-source software for Linux, macOS, and Windows, and requires Consul for service discovery.
frp
frp is a free, self-hosted reverse proxy for making intranet services reachable from the public network through nodes with public IP addresses. It supports TCP, UDP, HTTP, and HTTPS proxying, while client-server communication also supports QUIC, KCP, WebSocket, and other protocols. Its XTCP mode uses P2P hole punching so successful connections send traffic directly rather than through frps, but success depends on the network’s NAT type and cannot be assured. Client and server authentication support tokens and OIDC, with token authentication as the default; encryption is among the project’s listed capabilities. Proxy groups can balance load, and TCP or HTTP health checks can remove failed services from frps. Monitoring can run in memory or through Prometheus, which requires the Dashboard to be enabled. frps has a browser Dashboard for status and proxy statistics, while frpc includes an Admin UI for proxy status and configuration. Configuration supports TOML, YAML, and JSON; INI is still supported but no longer recommended. Written in Go, frp provides platform-specific binaries for cross-platform deployment without additional dependencies. The project is under development and says version 2 will not be compatible with version 1.