frp
by
fatedier

Description: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

View fatedier/frp on GitHub ↗

Summary Information

Updated 2 hours ago
Added to GitGenius on February 25th, 2026
Created on December 21st, 2015
Open Issues/Pull Requests: 45 (+0)
Number of forks: 14,985
Total Stargazers: 105,781 (+1)
Total Subscribers: 1,569 (+0)

Detailed Description

frp (fast reverse proxy) is a powerful and versatile open-source tool designed to expose local servers behind NAT (Network Address Translation) or firewalls to the public internet. Its primary function is to facilitate secure and efficient access to internal services, making them accessible from anywhere with an internet connection. The project is actively maintained and supported by sponsors, as highlighted in the README, which also provides links to documentation and community resources.

The core functionality of frp revolves around creating reverse proxies. It operates by establishing a connection between a client (frpc) running on the local network and a server (frps) with a public IP address. The frps server then acts as an intermediary, forwarding incoming requests from the internet to the appropriate service running on the client's local network. This allows users to bypass the limitations imposed by NAT and firewalls, enabling access to services like SSH, web servers, and other applications that would otherwise be inaccessible.

frp supports a wide range of protocols, including TCP, UDP, HTTP, and HTTPS. This flexibility allows it to be used for various purposes, such as accessing SSH servers, hosting web applications, and forwarding DNS queries. The software also offers a P2P (peer-to-peer) connect mode, enabling direct data transmission between clients in certain scenarios, potentially improving performance.

Key features of frp enhance its usability and security. Configuration files, supporting TOML, YAML, and JSON formats, allow for easy customization and management of proxy settings. Environment variables can be used within configuration files, providing a flexible way to manage settings. The ability to split configurations into multiple files promotes organization and maintainability. A server dashboard and client admin UI provide monitoring and management capabilities.

Security is a crucial aspect of frp. The software supports authentication mechanisms, including token authentication and OIDC (OpenID Connect) authentication, to control access to services. Encryption and compression features, including TLS (Transport Layer Security), ensure secure data transmission. Furthermore, frp offers features like hot-reloading of client configurations, port reuse, bandwidth limiting, and TCP stream multiplexing, optimizing performance and resource utilization. Additional features include support for KCP and QUIC protocols, connection pooling, load balancing, service health checks, and HTTP header manipulation.

The project is actively developed, with version 2 in progress, aiming for significant improvements and a more cloud-native architecture. The current version, however, is stable and well-documented, with numerous examples demonstrating its versatility. The README provides detailed instructions on how to set up and configure frp for various use cases, including accessing SSH servers, exposing web services with custom domains, and forwarding DNS queries. The documentation also covers advanced features like STCP (Secret TCP) mode for private service exposure and xtcp (extended TCP) mode for P2P connections. The project encourages contributions and provides resources for users to get involved.

frp
by
fatedierfatedier/frp

Repository Details

Fetching additional details & charts...