Guía para Configurar el Servicio de Proxy Inverso FRP en ServBay
FRP es una herramienta de proxy inverso de alto rendimiento que utiliza una arquitectura cliente-servidor para lograr el traspaso de redes internas. Esta guía orientará a los usuarios de ServBay sobre cómo configurar el cliente frpc para establecer un túnel seguro y permitir el acceso público a servicios locales.
Principios Técnicos
FRP establece un túnel de comunicación encriptada entre el servidor (frps) y el cliente (frpc), mapeando servicios internos a un servidor público. Esta solución soporta múltiples protocolos como TCP, UDP, HTTP y HTTPS, y es adecuada para escenarios como depuración remota y pruebas de API en el entorno de desarrollo de ServBay.
Preparación del Entorno
1. Instalación del Cliente FRP
Sigue estos pasos para desplegar el cliente frpc:
- Accede a la página de lanzamientos de GitHub para descargar la versión correspondiente.
- Descomprime y despliega en el PATH del sistema (tomando como ejemplo la arquitectura ARM de macOS):bash
tar -zxvf frp_0.61.1_darwin_arm64.tar.gz sudo cp frp_0.61.1_darwin_arm64/frpc /usr/local/bin/
1
2 - Verifica la instalación:bash
frpc -v # frpc versión 0.61.1
1
2
Configuración del Túnel: Ejemplo Práctico
Descripción del Archivo de Configuración
Crea el archivo de configuración frpc.toml
con la siguiente estructura básica:
serverAddr = your-frps-server.com
serverPort = 7000
auth.method = token
auth.token = your_authentication_token
[[proxies]]
name = "test_web"
type = "http"
localPort = 80
customDomains = servbay.your-domain.com
2
3
4
5
6
7
8
9
10
Elemento de Configuración | Descripción |
---|---|
serverAddr | Dirección pública del servidor FRP |
serverPort | Puerto de comunicación del servidor FRP (por defecto 7000) |
auth.method | Método de autenticación del servidor |
auth.token | Clave de autenticación del servidor |
type | Tipo de proxy (http/https/tcp, etc.) |
localPort | Puerto del servicio local |
customDomains | Nombre del dominio para acceso externo |
Ejemplo de Configuración Típico
Mapea un servicio HTTPS de ServBay a la red pública:
En este ejemplo:
- La dirección del servidor frp es
frps.servbay.demo
. - El dominio configurado para ServBay localmente es
servbay.test
. - El dominio accesible públicamente es
test-frp.servbay.app
(el dominio debe resolverse a la IP del servidor frp).
serverAddr = frps.servbay.demo
serverPort = 7000
auth.method = "token"
auth.token = servbay
[[proxies]]
name = "servbay-frpc-demo"
type = "https"
customDomains = ["test-frp.servbay.app"]
[proxies.plugin]
type = "https2https"
localAddr = "127.0.0.1:443"
crtPath = "/Applications/ServBay/ssl/private/tls-certs/servbay.test/servbay.test.crt"
keyPath = "/Applications/ServBay/ssl/private/tls-certs/servbay.test/servbay.test.key"
hostHeaderRewrite = "servbay.test"
requestHeaders.set.x-from-where = "frp"
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Inicia el servicio:
frpc -c frpc.toml
Verificación del Servicio
- Accede al dominio mapeado desde el navegador:
https://test-frp.servbay.app
1 - Verifica los indicadores de validación:
- Devuelve un código de estado HTTP 200
- El contenido de la respuesta coincide con el servicio local
- Verificación de la validez del certificado SSL
Diagnóstico de Logs
frpc -c frpc.toml --log_level debug # Habilitar logs de depuración
tail -f /var/log/frpc.log # Monitorear logs en tiempo real
2
Guía de Resolución de Problemas
Síntoma | Solución |
---|---|
Fallo en la autenticación | Verifica que auth.token coincida con el del servidor |
Problemas de resolución de dominio | Asegúrate de que DNS resuelva correctamente a la IP del servidor FRP |
Conflicto de puerto | Usa lsof -i :PORT para verificar el uso del puerto |
Desconexiones frecuentes | Ajusta el parámetro de heartbeat: heartbeat_timeout = 30 |
Ventajas de la Solución
La solución FRP ofrece a los usuarios de ServBay el siguiente valor central:
- Soporte para múltiples protocolos que satisface escenarios de negocio complejos
- Actualización de configuración en caliente sin necesidad de reiniciar el servicio
- Soporte nativo para proxy en cascada permitiendo traspaso de múltiples capas de red interna
- Arquitectura de código abierto que garantiza la seguridad y control de datos
Se recomienda habilitar la comunicación TLS en el entorno de producción y forzar la transmisión encriptada mediante la configuración tls_enable = true
.