frp
What it is
frp is a free, self-hosted reverse proxy for making intranet services accessible from the public network through nodes with public IP addresses. It supports TCP, UDP, HTTP, and HTTPS, while client-server communication can use QUIC, KCP, WebSocket, and other protocols. Its XTCP mode uses P2P hole punching so successful connections send traffic directly rather than through frps, but results depend on the network’s NAT type and are not assured. Authentication supports tokens and OIDC, with token authentication as the default; the project also lists encryption among its 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. frps includes a browser Dashboard for status and proxy statistics, and frpc has an Admin UI for proxy status and configuration. Configuration supports TOML, YAML, and JSON; INI remains supported but is no longer recommended. Written in Go, frp provides platform-specific binaries for cross-platform deployment without additional dependencies. The project is under development, and version 2 will not be compatible with version 1.
For and against
For
- Supports TCP, UDP, HTTP, and HTTPS proxying.
- Authentication supports tokens and OIDC.
- Proxy groups support load balancing.
- Configuration supports TOML, YAML, and JSON.
Against
- XTCP reliability depends on network NAT type.
- Prometheus monitoring requires the Dashboard.
- The Dashboard is not optimized for large proxy datasets.
- Version 2 will not be compatible with version 1.
The verdict
frp offers protocol support, monitoring, and health checks in a free, self-hosted package. Its P2P mode is not guaranteed to work across network types, and operators should note the stated version incompatibility.
Who it suits
frp suits operators who need to expose intranet services through a self-hosted proxy. It may also fit users who want configurable protocol support, monitoring, and health checks.
Plans and prices
frp
Open-source reverse proxy software; self-hosted client and server binaries
Read 7 Oct 2026 · github.com
On the record
- Configuration
- Configuration files support TOML, YAML, and JSON; the older INI format remains supported but is no longer recommended.gofrp.org · read 7 Oct 2026
- Dashboard limitation
- The Dashboard has not been optimized for large amounts of proxy data, and the documentation advises against enabling it if access is slow.gofrp.org · read 7 Oct 2026
- Deployment
- frp is written in Go and supports cross-platform deployment using platform-specific binaries without additional dependencies.gofrp.org · read 7 Oct 2026
- Development status
- The project says it is under development and that version 2 will not be compatible with version 1.github.com · read 7 Oct 2026
- Encryption
- The project lists encryption among its capabilities and documents communication security features.gofrp.org · read 7 Oct 2026
- License
- The GitHub repository identifies the project license as Apache-2.0.github.com · read 7 Oct 2026
- Monitoring
- frps supports in-memory monitoring and Prometheus monitoring; Prometheus requires the Dashboard to be enabled.gofrp.org · read 7 Oct 2026
- P2P
- XTCP uses P2P hole punching so successful connections send traffic directly instead of relaying it through frps.gofrp.org · read 7 Oct 2026
- P2P limitation
- XTCP availability and stability cannot be guaranteed because hole-punching success depends on the network’s NAT type.gofrp.org · read 7 Oct 2026
- Protocols
- It supports TCP, UDP, HTTP, and HTTPS, and client-server communication also supports QUIC, KCP, WebSocket, and other protocols.gofrp.org · read 7 Oct 2026
- Purpose
- frp is a high-performance reverse proxy for exposing intranet services to the public network through nodes with public IP addresses.gofrp.org · read 7 Oct 2026
- Security
- Client and server authentication supports token and OIDC methods, with token authentication as the default.gofrp.org · read 7 Oct 2026
- Traffic management
- Proxy groups support load balancing, and TCP or HTTP health checks can remove failed services from frps.gofrp.org · read 7 Oct 2026
- Use cases
- Documented examples include exposing SSH and web services, forwarding DNS and Unix domain sockets, serving files, and creating P2P or virtual network connections.gofrp.org · read 7 Oct 2026
- Web interfaces
- frps includes a browser Dashboard for status and proxy statistics, while frpc has an Admin UI for proxy status and configuration.gofrp.org · read 7 Oct 2026
The review
frp is self-hosted reverse-proxy software that makes intranet services reachable through a node with a public IP address. It suits operators who want protocol flexibility and monitoring without a subscription, and are comfortable managing client and server binaries themselves.
Overview
frp covers a broad set of tunneling and proxy needs: TCP, UDP, HTTP and HTTPS traffic, with QUIC, KCP and WebSocket among the supported client-server communication protocols. Its range is useful for more than publishing a website; documented examples include SSH, DNS forwarding, Unix domain sockets, file serving and virtual network connections.
That breadth comes with operational trade-offs. XTCP can send traffic directly between peers after P2P hole punching, avoiding a relay through frps, but success depends on NAT type and is not assured. The project is also under development, with version 2 incompatible with version 1, a material consideration for deployments that need continuity across upgrades.
Key features
Traffic, health and monitoring
Proxy groups provide load balancing, and TCP or HTTP health checks can remove failed services from frps. These controls are useful when a service has multiple backends or needs basic failure detection, though they do not remove the need to operate the infrastructure hosting those services.
frps offers in-memory monitoring and Prometheus monitoring; Prometheus requires the Dashboard to be enabled. The browser Dashboard shows status and proxy statistics, while frpc’s Admin UI handles proxy status and configuration. The Dashboard is not optimized for large volumes of proxy data, so it is a poor fit when operators need to inspect a large proxy estate through that interface or find it slow to access.
Security and configuration
Client and server authentication supports tokens and OIDC, with token authentication as the default. Encryption is among the project’s capabilities, and its documentation covers communication security features. Configuration files can use TOML, YAML or JSON; INI remains supported but is no longer recommended.
Written in Go, frp is deployed through platform-specific binaries without additional dependencies. That keeps the software self-contained, but this is still a self-hosted client-server setup to install and maintain rather than a managed tunnel service.
Pricing
frp costs nothing. Its free, open-source plan includes self-hosted client and server binaries, with no paid tier or usage cap stated in the plan. Operators supply and manage the deployment themselves; the free price does not turn it into a hosted service.
Platforms
frp supports Android, Linux, macOS, self-hosted deployment and Windows. Its cross-platform binaries support deployments on different operating systems without additional dependencies.
Who it's for
frp is a strong fit for technically capable operators who need to expose varied intranet services, want control over deployment, and value protocol options, health checks or Prometheus monitoring. It is less suitable for teams seeking a managed service, dependable P2P connectivity across unknown network conditions, or a Dashboard designed for large volumes of proxy data. The announced incompatibility between versions 1 and 2 also makes upgrade planning important.
Pros and cons
- Pro: TCP, UDP, HTTP and HTTPS support, alongside several client-server communication protocols, accommodates varied service types.
- Pro: Load balancing, health checks and Prometheus monitoring offer useful operational controls for self-hosted services.
- Pro: The free plan includes both client and server binaries, and deployment needs no additional dependencies.
- Con: XTCP’s direct P2P connections depend on NAT conditions, so operators cannot count on them to work consistently.
- Con: The Dashboard is not optimized for large amounts of proxy data, limiting its value for larger deployments.
- Con: Version 2 will not be compatible with version 1, complicating upgrades for existing installations.
Alternatives
Browse Reverse Proxy Software to compare options across the category.
- Caddy is another free-plan option for readers comparing reverse-proxy software; its Indie plan is $25 a month and its Indie Pro plan is $50 a month.
- PageKite offers a free plan and trial, with a Pay What You Want plan at $3 a month for individuals; it can be free for non-commercial use.
- Fabio is a free, open-source alternative for Linux, macOS, self-hosted and Windows deployments; it requires Consul for service discovery.
- freenginx is a free alternative for Linux, macOS, self-hosted and Windows, distributed under a 2-clause BSD-like license.
- ngrok has a free plan and trial; its free tier includes up to 3 online endpoints and up to 1GB data transfer.
- Zoraxy is a free, AGPL open-source option for Linux, self-hosted, web and Windows deployments.
- LocalXpose has a free Starter tier with 2 active HTTP or HTTPS tunnels, SSL/TLS encryption, unique subdomains, time limits and an interstitial warning page.
Verdict
Choose frp if you can run your own client and server and want a free reverse proxy with broad protocol support, health checks and monitoring. Its self-hosted flexibility is the main draw; look elsewhere if you need guaranteed P2P connections, a Dashboard built for large proxy datasets, or a straightforward version 1-to-2 upgrade path.