Guide de configuration du service de proxy inversé FRP dans ServBay
FRP est un outil de proxy inversé haute performance qui permet le contournement de réseaux privés via une architecture client-serveur. Ce guide a pour but d’accompagner les utilisateurs de ServBay dans la configuration d'un tunnel sécurisé à l'aide du client frpc pour permettre l'accès public aux services locaux.
Principes techniques
FRP établit un tunnel de communication crypté entre le serveur (frps) et le client (frpc), mappant les services internes sur un serveur public. Cette solution prend en charge une variété de protocoles tels que TCP, UDP, HTTP et HTTPS, ce qui la rend adaptée aux scénarios de débogage à distance et de test d'API dans l'environnement de développement de ServBay.
Préparation de l'environnement
1. Installation du client FRP
Suivez les étapes ci-dessous pour déployer le client frpc :
- Accédez à la page des versions GitHub pour télécharger la version correspondante.
- Extrayez et déployez dans le chemin système (exemple pour 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 - Vérifiez l'installation :bash
frpc -v # frpc version 0.61.1
1
2
Configuration du tunnel en pratique
Explication du fichier de configuration
Créez un fichier de configuration frpc.toml
, dont la structure de base est la suivante :
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
Éléments de configuration | Description |
---|---|
serverAddr | Adresse publique du serveur FRP |
serverPort | Port de communication du serveur FRP (par défaut 7000) |
auth.method | Méthode d'authentification du serveur |
auth.token | Clé d'authentification du serveur |
type | Type de proxy (http/https/tcp, etc.) |
localPort | Port du service local |
customDomains | Nom de domaine accessible depuis l'extérieur |
Exemple de configuration typique
Mappé le service HTTPS local de ServBay à l'extérieur :
Dans l'exemple :
- L'adresse du serveur FRP est
frps.servbay.demo
- Le domaine configuré pour ServBay est
servbay.test
- Le domaine offrant des services au public est
test-frp.servbay.app
(le domaine doit être résolu DNS vers le serveur 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
Démarrez le service :
frpc -c frpc.toml
Validation du service
- Accédez à l'URL mappée via votre navigateur :
https://test-frp.servbay.app
1 - Vérifiez les indicateurs de validation :
- Retournez le code d'état HTTP 200
- Le contenu de la réponse correspond au service local
- Validation de la validité du certificat SSL
Diagnostic des journaux
frpc -c frpc.toml --log_level debug # Activez les journaux de débogage
tail -f /var/log/frpc.log # Surveillez les journaux en temps réel
2
Guide de dépannage
Symptôme | Solution |
---|---|
Échec de l'authentification de connexion | Vérifiez que la configuration auth.token correspond au serveur |
Résolution de domaine anormale | Assurez-vous que le DNS pousse l'adresse vers l'IP du serveur FRP |
Conflit de port | Utilisez lsof -i :PORT pour vérifier l'utilisation des ports |
Tunnel déconnecté fréquemment | Ajustez les paramètres de heartbeating : heartbeat_timeout = 30 |
Avantages de la solution
La solution FRP offre les valeurs essentielles suivantes aux utilisateurs de ServBay :
- Prise en charge de plusieurs protocoles pour répondre à des scénarios commerciaux complexes
- Mise à jour de configuration sans redémarrage du service
- Support de proxy en cascade natif pour le contournement de plusieurs niveaux de réseau interne
- Architecture open source garantissant la sécurité et le contrôle des données
Il est recommandé d'activer le chiffrement TLS lors du déploiement en production, et de forcer le transport sécurisé via la configuration tls_enable = true
.