
frp v0.71.0
Un proxy inverso rápido para ayudarte a exponer un servidor local detrás de un NAT o firewall a Internet.
frp
Patrocinadores
frp es un proyecto de código abierto cuyo desarrollo continuo es posible gracias al apoyo de nuestros increíbles patrocinadores. Si deseas unirte a ellos, considera patrocinar el desarrollo de frp.
Patrocinadores Oro
El IDE completo diseñado para desarrolladores profesionales de Go
Recall.ai - API para grabaciones de reuniones
Si buscas una API de grabación de reuniones, considera consultar Recall.ai,
una API que graba Zoom, Google Meet, Microsoft Teams, reuniones presenciales y más.
¿Qué es frp?
frp es un proxy inverso rápido que te permite exponer un servidor local ubicado detrás de una NAT o firewall a Internet. Actualmente soporta los protocolos TCP y UDP, así como HTTP y HTTPS, lo que permite reenviar solicitudes a servicios internos mediante nombres de dominio.
frp también ofrece un modo de conexión P2P.
Tabla de Contenidos
- Estado de Desarrollo
- Arquitectura
- Ejemplo de Uso
- Accede a tu computadora en una red LAN mediante SSH
- Múltiples servicios SSH compartiendo el mismo puerto
- Acceso a servicios web internos con dominios personalizados en LAN
- Reenviar solicitudes de consulta DNS
- Reenviar Unix Domain Socket
- Exponer un servidor de archivos HTTP simple
- Habilitar HTTPS para un servicio HTTP(S) local
- Exponer tu servicio de forma privada
- Modo P2P
- Características
- Archivos de Configuración
- Uso de Variables de Entorno
- Dividir Configuraciones en Diferentes Archivos
- Panel del Servidor
- Interfaz de Administración del Cliente
- Monitor
- Autenticación del Cliente
- Cifrado y Compresión
- Recarga en caliente de la configuración de frpc
- Obtener el estado del proxy desde el cliente
- Permitir solo ciertos puertos en el servidor
- Reutilización de Puertos
- Límite de Ancho de Banda
- Multiplexación de Flujos TCP
- Soporte del Protocolo KCP
- Soporte del Protocolo QUIC
- Agrupación de Conexiones
- Balanceo de Carga
- Verificación de Salud del Servicio
- Reescritura del Encabezado HTTP Host
- Configuración de Otros Encabezados HTTP
- Obtener la IP Real
- Requerir Autenticación HTTP Básica (Contraseña) para Servicios Web
- Nombres de Subdominio Personalizados
- Enrutamiento por URL
- Multiplexación de Puertos TCP
- Conexión a frps mediante PROXY
- Mapeo de Rangos de Puertos
- Plugins del Cliente
- Plugins de Gestión del Servidor
- Puerta de Enlace de Túnel SSH
- Red Virtual (VirtualNet)
- Feature Gates
- Proyectos Relacionados
- Contribuciones
- Donaciones
Estado de Desarrollo
frp se encuentra actualmente en desarrollo. Puedes probar la última versión estable en la rama master, o usar la rama dev para acceder a la versión actualmente en desarrollo.
Actualmente estamos trabajando en la versión 2 e intentando realizar algunas refactorizaciones y mejoras de código. Sin embargo, ten en cuenta que no será compatible con la versión 1.
Haremos la transición de la versión 0 a la versión 1 en el momento adecuado y solo aceptaremos correcciones de errores y mejoras, no solicitudes de funciones grandes.
Acerca de V2
La complejidad y dificultad de la versión v2 son mucho mayores de lo anticipado. Solo puedo trabajar en su desarrollo durante períodos de tiempo fragmentados, y las interrupciones constantes perjudican significativamente la productividad. Dada esta situación, continuaremos optimizando e iterando sobre la versión actual hasta que tengamos más tiempo libre para proceder con la renovación de la versión principal.
El concepto detrás de v2 se basa en mis años de experiencia y reflexión en el dominio cloud-native, particularmente en K8s y ServiceMesh. Su núcleo es un proxy modernizado de capa cuatro y capa siete, similar a envoy. Este proxy en sí mismo es altamente escalable, no solo capaz de implementar la funcionalidad de penetración de intranet, sino también aplicable a varios otros dominios. Sobre la base de este núcleo altamente escalable, buscamos implementar todas las capacidades de frp v1, además de abordar las funcionalidades que anteriormente eran imposibles o difíciles de implementar de manera elegante. Además, mantendremos capacidades eficientes de desarrollo e iteración.