frp adopts a C/S architecture, deploying the server on machines with public IP addresses and clients on machines within intranets or behind firewalls. By accessing ports exposed on the server, it provides reverse proxy to services in the intranet.
Built on this foundation, frp supports multiple protocols including TCP, UDP, HTTP, HTTPS, and provides numerous capabilities such as encryption, compression, authentication, proxy rate limiting, load balancing, and more. Additionally, P2P communication can be achieved through xtcp.