Guía para Configurar el Servicio de Proxy Inverso frp en ServBay
frp (Fast Reverse Proxy) es una aplicación de proxy inverso de alto rendimiento que te permite exponer de manera segura tus servicios locales a Internet. ServBay integra el cliente frp (frpc), lo que te permite conectarte a tu propio servidor frp (frps) y acceder a los sitios web alojados localmente en ServBay mediante un dominio personalizado. Este enfoque te brinda control total sobre el servidor del túnel.
Esta guía describe en detalle cómo configurar el cliente frp en ServBay y conectarlo a tu servidor frps.
Descripción General
A diferencia de otros servicios de túnel gestionados en ServBay, para usar frp necesitas desplegar y configurar previamente el servicio frps en tu propio servidor. ServBay actúa como cliente frpc, encargado de reenviar el tráfico de tu sitio web local, a través del servidor frps, hacia la red pública. Este método es ideal para desarrolladores que requieren mayor personalización y control del túnel.
Casos de Uso
- Control total del servidor túnel: Tienes el control absoluto sobre la configuración, seguridad y rendimiento de tu servidor frps.
- Usa dominios personalizados y SSL: Configura cualquier dominio que poseas para tus proyectos locales e integra certificados ACME SSL gestionados por ServBay.
- Configuración de red avanzada: frp soporta múltiples tipos de proxy y configuraciones avanzadas para demandas más complejas.
- Despliegue privado: Perfecto si no deseas depender de servicios de túnel de terceros.
Requisitos Previos
- ServBay instalado: Asegúrate de tener ServBay correctamente instalado y funcionando en tu sistema macOS.
- Servidor
frps
autohospedado:- Debes tener un servidor accesible públicamente en el que esté desplegado y ejecutándose el servicio
frps
. - Anota la dirección IP pública o el dominio de tu servidor frps.
- Apunta los valores de
bindPort
(puerto de comunicación entre frpc y frps) ytoken
(token de autenticación) configurados en el archivo de configuración (frps.toml
ofrps.ini
) de frps.
- Debes tener un servidor accesible públicamente en el que esté desplegado y ejecutándose el servicio
- Dominio y configuración DNS:
- Necesitas un dominio público (por ejemplo,
your-frp-server.com
) y establecer un registro A apuntando a la IP pública de tu servidor frps. Accederás al sitio local a través de este dominio.
- Necesitas un dominio público (por ejemplo,
- Certificado ACME SSL en ServBay:
- Para acceder por HTTPS a tu dominio externo, previamente solicita un certificado ACME SSL para ese dominio usando la función SSL Certificates de ServBay. Por ejemplo, si accederás con
project.your-frp-server.com
, solicita el certificado para ese dominio.
- Para acceder por HTTPS a tu dominio externo, previamente solicita un certificado ACME SSL para ese dominio usando la función SSL Certificates de ServBay. Por ejemplo, si accederás con
- Varios subdominios y certificado SSL:
- Si necesitas usar varios subdominios sin crear múltiples registros DNS A, puedes utilizar un comodín (
*
): agrega un registro A tipo*.your-frp-server.com
apuntando a la IP pública de tu servidor frps. Solicita en ServBay un certificado ACME SSL que incluya el comodín (al solicitarlo, enDomain
introduceyour-frp-server.com, *.your-frp-server.com
, asegurándote que el comodín sea el último y separando con comas en inglés). Posteriormente podrás agregar cualquier subdominio en ServBay sin necesidad de añadir más registros A, y todos compartirán el mismo certificado SSL. - De este modo, puedes exponer sitios con dominios como
company-project.your-frp-server.com
,personal.your-frp-server.com
, ocustomer-1.your-frp-server.com
en ServBay, sin tener que hacer grandes ajustes cada vez.
- Si necesitas usar varios subdominios sin crear múltiples registros DNS A, puedes utilizar un comodín (
Pasos de Configuración
1. Instalar el paquete frp en ServBay
- Abre la aplicación ServBay.
- En la barra de navegación lateral, haz clic en Paquetes (Packages).
- En la lista, localiza
frp
. - Haz clic en el botón de instalar junto a
frp
. - Tras la instalación, es normal que el servicio frp falle al intentar iniciarse por falta de configuración.
2. Prepara tu servidor y configuración de frps
Necesitas instalar y ejecutar frps
en tu servidor público. ServBay puede generarte una plantilla base de frps.toml
(para versiones recientes de frp) para ayudarte a comenzar:
En ServBay, navega a Tunnel -> frp.
Haz clic en el icono de desplegar junto a frp server config (frps.toml).
ServBay mostrará un archivo de ejemplo
frps.toml
, similar al siguiente:toml# El archivo de configuración frps generado automáticamente por ServBay # está destinado para su uso directo en el servidor. # Ajusta los parámetros según tus necesidades específicas. bindPort = 12345 auth.method = "token" auth.token = "myserverpassword" vhostHTTPPort = 80 vhostHTTPSPort = 443 log.to = "/tmp/frps.log" log.level = "info" log.maxDays = 3 log.disablePrintColor = true # Para versiones recientes de frps (por ejemplo, 0.52.0+), utiliza webServer.port, webServer.addr, webServer.user, webServer.password para configurar el Dashboard # webServer.port = 7500 # webServer.addr = "0.0.0.0" # webServer.user = "admin" # webServer.password = "admin_password"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Puntos clave de la configuración:
bindPort
: Puerto de comunicación entre frpc y frps. Asegúrate de que esté abierto en el firewall del servidor. Se recomienda encarecidamente proteger con firewall el acceso a este puerto, permitiendo solo IPs de confianza.auth.method = "token"
yauth.token
: Controlan la autenticación del cliente. Usa una contraseña fuerte.vhostHTTPPort = 80
yvhostHTTPSPort = 443
: Puertos que frps usará para escuchar peticiones HTTP y HTTPS de hosts virtuales.- [Clave] ServBay optimiza principalmente escenarios donde frps escucha directamente en los puertos 80 y 443 como
vhostHTTPPort
yvhostHTTPSPort
. Así, ServBay puede transferir directamente el certificado ACME SSL local a frps para que los clientes lo utilicen. - Si no puedes usar 80/443 porque ya están ocupados (por ejemplo, por otros servicios), y necesitas usar otros puertos (como 8080/8443), deberás desplegar un proxy inverso (Nginx o Caddy) delante de frps. Este proxy escucha en 80/443 y reenvía el tráfico a los puertos reales de frps. En este caso, los certificados SSL los manejará este proxy, no ServBay.
- [Clave] ServBay optimiza principalmente escenarios donde frps escucha directamente en los puertos 80 y 443 como
log.to
: Ruta del archivo de logs de frps.- Configuración del panel de administración/Dashboard (webServer.port, etc.): Opcional, para acceder a la interfaz web de frps.
Copia esta configuración al servidor frps, guárdala como
frps.toml
(ofrps.ini
si lo prefieres) y ajusta los valores según tus necesidades.Inicia tu servicio frps.
3. Configura el cliente frp en ServBay
De regreso en ServBay, introduce los datos para conectar con el servidor frps:
Navega a Tunnel -> frp.
Rellena la información del servidor frps:
- Server Address (Dirección del servidor): Escribe el dominio público o la IP de tu servidor frps (por ejemplo:
my.test.frp.server.host
). - Server Port (Puerto del servidor): Escribe el
bindPort
configurado en tufrps.toml
(por ejemplo:12345
). - Auth Token (Token de autenticación): Introduce el
auth.token
de tufrps.toml
(por ejemplo:myserverpassword
).
- Server Address (Dirección del servidor): Escribe el dominio público o la IP de tu servidor frps (por ejemplo:
Configura la regla de mapeo del túnel:
- Local Domain (Sitio local): Selecciona en el menú el sitio local de ServBay que deseas exponer (p. ej.,
servbay.demo
). - External Domain (Dominio externo): Introduce el dominio a través del cual los usuarios accederán desde Internet (p. ej.,
test.ks.do
). Su registro DNS A debe apuntar ya a la IP pública de frps.- Importante: A diferencia de otros túneles de ServBay como
Ngrok
oCloudflared
, aquí debes introducir el dominio completo.
- Importante: A diferencia de otros túneles de ServBay como
- ACME Certificates (Certificado ACME): Selecciona en el menú el certificado ACME SSL solicitado en ServBay para ese
External Domain
(por ejemplo, el certificado detest.ks.do
).- Importante: Si deseas acceder por HTTPS, debes seleccionar el certificado correcto. ServBay pasará esta información al frpc, que se encargará que frps use este certificado para responder a peticiones HTTPS en el dominio externo. Así, no es necesario configurar el certificado directamente en el frps: lo gestiona ServBay.
- Local Domain (Sitio local): Selecciona en el menú el sitio local de ServBay que deseas exponer (p. ej.,
Agregar más túneles:
- Si quieres exponer más sitios locales o dominios externos, haz clic en el botón
+
para agregar otra configuración de túnel.
- Si quieres exponer más sitios locales o dominios externos, haz clic en el botón
4. Guarda la configuración e inicia el servicio frp
- Una vez completada la configuración, haz clic en Guardar (Save) en la esquina inferior derecha.
- ServBay guardará los ajustes y tratará de iniciar el servicio frp.
- Observa el indicador de estado junto a la entrada de
frp
en la lista Tunnel. Si la conexión es correcta, el indicador se volverá verde. - Verifica el acceso:
- Ahora deberías poder acceder a tu sitio local usando el
External Domain
configurado (por ejemplo,https://test.ks.do
) desde Internet. - Usa el icono de copiar o de navegador junto al dominio para probar.
- Ahora deberías poder acceder a tu sitio local usando el
Consideraciones
- Despliegue y mantenimiento de
frps
: Eres el único responsable de instalar, configurar, securizar y mantener tu servidor frps. - Seguridad de
bindPort
de frps: Usa unauth.token
fuerte y considera emplear firewall para restringir el acceso al puerto solo a IPs autorizadas. - Elección de
vhostHTTPPort
yvhostHTTPSPort
:- Se recomienda encarecidamente que frps escuche directamente en los puertos 80 y 443 para aprovechar al máximo la transferencia de certificados ACME desde ServBay.
- Si frps usa otros puertos, deberás utilizar un proxy inverso (Nginx, Caddy, etc.) delante que escuche en 80 y 443 y reenvíe al puerto interno de frps. El proxy será responsable del manejo de SSL.
- Necesidad de certificado ACME: Para servir HTTPS en tu dominio externo, debes solicitar y seleccionar el certificado ACME en la configuración del túnel.
- Propagación DNS: Confirma que el registro A del dominio externo apunte correctamente a la IP del servidor frps y que la propagación DNS se haya completado.
Preguntas Frecuentes (FAQ)
- P: El servicio frp en ServBay no se inicia y el estado es rojo o naranja, ¿qué hago?
- R: Revisa la configuración de frp en ServBay:
Server Address
,Server Port
yAuth Token
deben coincidir exactamente con los valores debindPort
yauth.token
de tufrps.toml
. Verifica además que el servidor frps esté en línea y que el puerto sea accesible desde la máquina de ServBay (comprueba firewalls). Consulta los logs del servicio frp para más detalles.
- R: Revisa la configuración de frp en ServBay:
- P: Puedo acceder mediante el dominio externo, pero es HTTP y no HTTPS.
- R: Asegúrate que seleccionaste correctamente el certificado ACME para el dominio externo en la configuración frp de ServBay. Revisa que
vhostHTTPSPort
esté configurado en frps para escuchar en el puerto correcto (recomendado: 443).
- R: Asegúrate que seleccionaste correctamente el certificado ACME para el dominio externo en la configuración frp de ServBay. Revisa que
- P: Mi servidor frps debe usar puertos diferentes a 80/443 para los vhost, ¿cómo configuro SSL?
- R: En este caso, configura un proxy inverso (como Nginx o Caddy) en el servidor frps, que escuche en 80/443, gestione los certificados SSL (independientemente de ServBay si lo prefieres), y reenvíe el tráfico a los puertos internos de frps. En este escenario, los campos
ACME Certificates
en la configuración frp de ServBay ya no aplican para el SSL externo; el proxy frontal lo gestionará.
- R: En este caso, configura un proxy inverso (como Nginx o Caddy) en el servidor frps, que escuche en 80/443, gestione los certificados SSL (independientemente de ServBay si lo prefieres), y reenvíe el tráfico a los puertos internos de frps. En este escenario, los campos
- P: El archivo
frps.toml
generado por ServBay es distinto alfrps.ini
que tengo.- R: El formato de configuración de frp está migrando de
.ini
a.toml
. ServBay provee una plantilla en formato.toml
. Si tu versión es antigua o prefieres.ini
, consulta la documentación oficial para convertir los parámetros (la semántica es la misma).
- R: El formato de configuración de frp está migrando de
Resumen
Gracias a la integración con frp, ServBay otorga a los desarrolladores de macOS un potente recurso para personalizar y controlar totalmente su solución de túnel de red local a Internet. Desplegando tu propio servidor frps y aprovechando la sencilla gestión de frpc y certificados ACME de ServBay, puedes compartir de manera segura y flexible sitios en desarrollo fuera de tu red local. Recuerda configurar con atención los parámetros de frps y frpc, especialmente puertos y opciones de seguridad, para mantener la estabilidad y protección del servicio.