À propos du projet

frp est un proxy inverse rapide conçu pour exposer des serveurs locaux situés derrière des NATs ou des pare-feux à Internet. Le projet se compose de deux composants : `frps` (serveur) déployé sur une machine dotée d'une adresse IP publique, et `frpc` (client) déployé sur les machines internes. Les protocoles pris en charge incluent TCP, UDP, HTTP et HTTPS. frp peut acheminer les requêtes vers des services internes via des noms de domaine personnalisés, et fournit également un mode de connexion P2P (`xtcp`) pour la transmission directe de données entre clients. Fonctionnalités principales : - **Prise en charge des protocoles** : TCP, UDP, HTTP, HTTPS et P2P (xtcp) - **Formats de configuration** : TOML, YAML et JSON (INI est déprécié depuis la version v0.52.0) - **Authentification** : basée sur jetons et OIDC (Client Credentials Grant) - **Chiffrement** : prise en charge de TLS pour la communication client-serveur - **Tableau de bord serveur** : interface web sur un port configurable affichant les statistiques et l'état des proxys - **Interface d'administration client** : interface web pour vérifier et gérer la configuration et les proxys de frpc en cours d’exécution - **Gestion dynamique des proxys** : création, mise à jour et suppression de proxys sans redémarrage de frpc via la fonction Store - **Multiplexage** : multiplexage de flux TCP et multiplexage de ports TCP - **Protocoles de transport** : prise en charge des protocoles KCP et QUIC - **Regroupement de connexions** - **Équilibrage de charge et contrôles de santé** - **Limites de bande passante par proxy** - **Fonctionnalités HTTP** : réécriture de l’en-tête Host, en-têtes personnalisés, routage URL, authentification basique, récupération de l’IP réelle (X-Forwarded-For, Proxy Protocol) - **Réutilisation de ports** - **Rechargement à chaud** de la configuration de frpc - **Plugins clients** : unix_domain_socket, static_file, https2http, et autres - **Passerelle de tunnel SSH** - **Réseau virtuel (VirtualNet)** - **Prise en charge des variables d’environnement** dans les modèles de configuration - **Divisions de configurations** en plusieurs fichiers via includes - **Point de terminaison de surveillance Prometheus** Les cas d'utilisation courants comprennent l'accès aux ordinateurs du réseau local via SSH, l'exposition de services web internes avec des domaines personnalisés, le transfert de requêtes DNS, l'exposition de sockets de domaine Unix (par exemple, Docker), le partage de plusieurs services sur le même port via tcpmux/HTTP Connect, et l'exposition privée de services en utilisant le mode STCP (Secret TCP) avec des clés pré-partagées. Le projet est activement maintenu en Go, avec le développement de la version 2 en cours, basée sur les concepts de cloud-native et ServiceMesh, bien que la version 2 ne soit pas compatible avec la version 1. Site web : https://github.com/fatedier/frp