À propos du projet

stab est un outil de tunnel TCP moderne, simple, compact et haute performance, conçu pour exposer facilement des ports locaux vers un serveur distant. Écrit en Rust, il offre deux modes d'utilisation : ligne de commande et fichier de configuration, et peut être intégré dans d'autres programmes. Caractéristiques principales : - Haute performance - Détection de battement de cœur - Statistiques de trafic - Page d'administration Web avec déconnexion manuelle - Exposition simultanée de plusieurs ports locaux - Reconnexion automatique en cas de déconnexion (configurable) - API IPC locale : peut être lancée sans configuration par d'autres programmes et recevoir dynamiquement des configurations Installation : - Via cargo : `cargo install stab` - Téléchargement de binaires précompilés depuis GitHub Releases Utilisation : 1. Démarrer le serveur sur l'hôte distant : `stab server`, avec le port de contrôle par défaut 5656 et le port d'administration Web 3400. Il est possible de modifier les ports, de limiter la plage de ports de données et de définir la taille du pool de connexions. 2. Établir un tunnel localement : `stab local -l 8000=server.com`, mappant le port local vers le serveur distant, avec attribution automatique ou spécification du port distant. 3. Prise en charge de tous les paramètres via un fichier de configuration (TOML), avec priorité aux arguments de ligne de commande. 4. Authentification par clé partagée pour prévenir les abus. 5. Protection par mot de passe pour la page d'administration Web. Intégration dans d'autres programmes : - Lancement avec `stab local --api`, utilisant un pipe nommé (Windows) ou un socket Unix Domain pour fournir l'API IPC. - Protocole basé sur des trames JSON avec préfixe de longueur, prenant en charge les méthodes ping, get_status, set_config, add_link, remove_link, list_links, clear_links, shutdown, etc. - Le processus hôte peut ajouter/supprimer dynamiquement des tunnels, mettre à jour la configuration et obtenir l'état. Exemples de fichiers de configuration : - `server.toml` côté serveur : définit le mode, le port, la clé, les journaux, le port Web, la plage de ports, la taille du pool de connexions, etc. - `local.toml` côté local : définit le mode, le port, la clé, les journaux, l'hôte distant par défaut, la stratégie de reconnexion, la liste des tunnels, etc. Aperçu des arguments de ligne de commande : - `server` / `local` : mode d'exécution - `-f, --file` : chemin du fichier de configuration - `-c, --control-port` : port de contrôle - `-s, --secret` : clé du tunnel - `--log` : niveau de journalisation - `--log-path` : répertoire des journaux - `-l, --link` : mappage de tunnel - `--api` : activer l'API IPC - `--api-path` : chemin IPC - `--api-token` : jeton IPC - `-w, --web-port` : port d'administration Web - `-p, --port-range` : plage de ports de données - `--pool-size` : taille du pool de connexions Le projet fournit une documentation en chinois et en anglais, adaptée aux développeurs et administrateurs système ayant besoin d'exposer rapidement des services locaux.