# FRP ( fast reverse proxy ) # 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](https://archive.qoyri.fr/uploads/images/gallery/2025-05/scaled-1680-/Ngd3ulw5o4uGassx-image.png)](https://archive.qoyri.fr/uploads/images/gallery/2025-05/Ngd3ulw5o4uGassx-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](https://github.com/fatedier/frp) • Docs officielles : [https://frp.readthedocs.io](https://frp.readthedocs.io/) • Tutoriels vidéo (YouTube) • Support : Issues GitHub, Gitter, StackOverflow