Guia para Configuração do Serviço de Proxy Reverso FRP no ServBay
FRP é uma ferramenta de proxy reverso de alto desempenho que permite a penetração de rede interna através de uma arquitetura cliente-servidor. Este guia orienta os usuários do ServBay a configurar túneis seguros usando o cliente frpc, permitindo o acesso público a serviços locais.
Princípios Técnicos
O FRP estabelece túneis de comunicação criptografados através do servidor (frps) e do cliente (frpc), mapeando serviços de rede interna para um servidor público. Esta solução suporta múltiplos protocolos, incluindo TCP/UDP/HTTP/HTTPS, sendo adequada para cenários como depuração remota e testes de API no ambiente de desenvolvimento do ServBay.
Preparação do Ambiente
1. Instalação do Cliente FRP
Siga os passos abaixo para implementar o cliente frpc:
- Acesse a página de Releases do GitHub e faça o download da versão correspondente.
- Extraia e instale no PATH do sistema (exemplo para macOS ARM):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 - Verifique a instalação:bash
frpc -v # frpc version 0.61.1
1
2
Configuração do Túnel
Descrição do Arquivo de Configuração
Crie um arquivo de configuração frpc.toml
, cuja estrutura básica é a seguinte:
serverAddr = seu-servidor-frps.com
serverPort = 7000
auth.method = token
auth.token = seu_token_de_autenticação
[[proxies]]
name = "teste_web"
type = "http"
localPort = 80
customDomains = servbay.seu-domínio.com
2
3
4
5
6
7
8
9
10
Item de Configuração | Descrição |
---|---|
serverAddr | Endereço público do servidor FRP |
serverPort | Porta de comunicação do servidor FRP (padrão 7000) |
auth.method | Método de autenticação do servidor |
auth.token | Chave de autenticação do servidor |
type | Tipo de proxy (http/https/tcp etc.) |
localPort | Porta do serviço local |
customDomains | Domínio de acesso público |
Exemplo de Configuração Típica
Mapeie o serviço HTTPS local do ServBay para o público:
No exemplo:
- O endereço do servidor frp é
frps.servbay.demo
- O domínio configurado localmente no ServBay é
servbay.test
- O domínio que fornece serviço ao público é
test-frp.servbay.app
(o domínio deve ter resolução DNS para o 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
Inicie o serviço:
frpc -c frpc.toml
Verificação do Serviço
- Acesse o domínio mapeado no navegador:
https://test-frp.servbay.app
1 - Verifique as métricas de validação:
- Retorno do código de status HTTP 200
- Conteúdo da resposta deve ser consistente com o serviço local
- Validação da validade do certificado SSL
Diagnóstico de Logs
frpc -c frpc.toml --log_level debug # Ativar logs de depuração
tail -f /var/log/frpc.log # Monitorar logs em tempo real
2
Guia de Solução de Problemas
Sintoma | Solução |
---|---|
Falha na autenticação da conexão | Verifique se a configuração de auth.token corresponde ao do servidor |
Anomalia na resolução do domínio | Confirme se o DNS está corretamente resolvendo para o IP do servidor FRP |
Conflito de porta | Utilize lsof -i :PORT para verificar ocupação de porta |
Túnel frequentemente desconectado | Ajuste os parâmetros de heartbeat: heartbeat_timeout = 30 |
Vantagens da Solução
A solução FRP oferece aos usuários do ServBay os seguintes valores fundamentais:
- Suporte a múltiplos protocolos para atender a cenários de negócios complexos
- Atualizações de configuração em tempo real sem reiniciar o serviço
- Suporte nativo para proxies em cascata que permitem múltiplas camadas de penetração de rede interna
- Arquitetura open-source que garante a segurança e controle dos dados
Recomenda-se ativar a comunicação criptografada TLS ao implantar em ambientes de produção e forçar a transmissão criptografada através da configuração tls_enable = true
.