Skip to main content

FRP (Fast Reverse Proxy)

Sommaire

  1. Présentation

  2. Architecture

  3. Installation

  4. Configuration rapide
    • Serveur FRPS
    • Client FRPC

  5. Exemples d’usage

  6. Fonctionnalités avancées

  7. Dashboard et monitoring

  8. Ressources et documentation

Présentation


FRP est un outil open-source écrit en Go qui permet d’exposer vos services locaux (HTTP, TCP, UDP, SSH…) sur Internet, même si vous êtes derrière un NAT ou un pare-feu.
Avantages principaux :
• Rapidité et faible empreinte mémoire
• Support de multiples protocoles (HTTP/S, TCP, UDP, WebSocket…)
• Authentification par jeton et chiffrement TLS
• Dashboard web intégré pour superviser vos tunnels


Architecture


FRP se compose de deux composants :

► Serveur FRPS
– S’exécute sur une machine publique (IP accessible)
– Écoute un port défini pour accepter les connexions clients

► Client FRPC
– S’exécute sur la machine hébergeant le service à exposer
– Établit un tunnel chiffré vers le serveur FRPS

 

image.png

 

Installation


Prérequis :
• Go 1.15+ (si vous compilez depuis les sources)
• Ou les binaires pré-compilés fournis sur GitHub

 

A. Binaire pré-compilé
  1. Aller sur la page des releases GitHub

  2. Télécharger l’archive adaptée à votre OS/architecture

  3. Décompresser et copier frps et frpc dans un dossier de votre PATH (ex. /usr/local/bin)

 

B. Compilation depuis les sources
  1. git clone https://github.com/fatedier/frp.git

  2. cd frp

  3. make

  4. Récupérer les exécutables dans ./bin/frps et ./bin/frpc

  5. Configuration rapide

 


► Serveur FRPS
Créer un fichier frps.ini :
[common]  
bind_port        = 7000  
token            = votremotdepasse  
dashboard_port   = 7500  
dashboard_user   = admin  
dashboard_pwd    = admin  

Lancer le serveur :

./frps -c frps.ini  
► Client FRPC
Créer un fichier frpc.ini :
[common]  
server_addr      = votre.serveur.ip  
server_port      = 7000  
token            = votremotdepasse  

[ssh_tunnel]  
type             = tcp  
local_ip         = 127.0.0.1  
local_port       = 22  
remote_port      = 6000  

[web_http]  
type             = http  
local_port       = 80  
custom_domains   = www.votredomaine.com  

Lancer le client :

./frpc -c frpc.ini  

Après démarrage :
– SSH local accessible via votre.serveur.ip:6000
– Site web local via http://www.votredomaine.com

 

Exemples d’usage


• Exposer SSH : rediriger le port 22 local vers un port distant
• Proxy HTTPS : intégration Let’s Encrypt pour TLS auto
• Tunnel UDP : jeux en ligne ou VoIP sur le port 27015

 

Fonctionnalités avancées


• Équilibrage de charge (plusieurs clients FRPC partagent un même port)
• Compression et chiffrement par tunnel (use_encryption, use_compression)
• Plugins pour protocoles propriétaires
• Rechargement à chaud de la config sans redémarrage (reload_config)
• Authentification LDAP/PAM via extensions

 

Dashboard et monitoring


Le dashboard FRPS (port 7500 par défaut) permet de :
• Voir les clients connectés
• Surveiller les tunnels actifs
• Consulter les statistiques de trafic en temps réel

 

Ressources et documentation


• GitHub FRP : https://github.com/fatedier/frp
• Docs officielles : https://frp.readthedocs.io
• Tutoriels vidéo (YouTube)
• Support : Issues GitHub, Gitter, StackOverflow