Sobre el proyecto

frp es un proxy inverso rápido diseñado para exponer servidores locales ubicados detrás de NATs o cortafuegos a Internet. El proyecto consta de dos componentes: `frps` (servidor) desplegado en una máquina con IP pública, y `frpc` (cliente) desplegado en máquinas internas. Los protocolos compatibles incluyen TCP, UDP, HTTP y HTTPS. frp puede reenviar solicitudes a servicios internos mediante nombres de dominio personalizados, y también proporciona un modo de conexión P2P (`xtcp`) para transmisión de datos directa entre clientes. Características clave: - **Soporte de protocolos**: TCP, UDP, HTTP, HTTPS y P2P (xtcp) - **Formatos de configuración**: TOML, YAML y JSON (INI está obsoleto desde la versión v0.52.0) - **Autenticación**: Basada en token y OIDC (Client Credentials Grant) - **Cifrado**: Soporte TLS para comunicación cliente-servidor - **Panel del servidor**: Interfaz web en puerto configurable mostrando estadísticas y estado de los proxies - **Interfaz web del cliente**: Interfaz web para verificar y gestionar la configuración y proxies de frpc en tiempo de ejecución - **Gestión dinámica de proxies**: Crear, actualizar y eliminar proxies sin reiniciar frpc mediante la función Store - **Multiplexación**: Multiplexación de flujos TCP y puertos TCP - **Protocolos de transporte**: Soporte para protocolos KCP y QUIC - **Agrupamiento de conexiones - **Balanceo de carga y verificaciones de salud - **Límites de ancho de banda por proxy - **Funciones HTTP**: Reescritura de encabezado de host, encabezados personalizados, enrutamiento de URL, autenticación básica, obtención de IP real (X-Forwarded-For, Proxy Protocol) - **Reutilización de puertos - **Recarga en caliente** de la configuración de frpc - **Complementos del cliente**: unix_domain_socket, static_file, https2http y otros - **Puerta de enlace de túnel SSH - **Red virtual (VirtualNet) - **Soporte de variables de entorno** en plantillas de configuración - **Configuraciones divididas** en múltiples archivos mediante includes - **Punto de extremo de monitoreo Prometheus Casos de uso comunes incluyen acceder a computadoras LAN mediante SSH, exponer servicios web internos con dominios personalizados, reenviar consultas DNS, exponer sockets de dominio Unix (por ejemplo, Docker), compartir múltiples servicios en el mismo puerto mediante tcpmux/HTTP Connect, y exponer servicios de forma privada usando el modo STCP (Secret TCP) con claves precompartidas. El proyecto se mantiene activamente en Go, con el desarrollo de la versión 2 en marcha basada en conceptos cloud-native y ServiceMesh, aunque la v2 no será compatible con la v1. Sitio web: https://github.com/fatedier/frp