Comparison
12 min read
24 views

ngrok vs. bore : Comparaison d'une passerelle d'entreprise et d'un tunnel TCP minimaliste

IT
InstaTunnel Team
Published by our engineering team
ngrok vs. bore : Comparaison d'une passerelle d'entreprise et d'un tunnel TCP minimaliste

Current comparison

Looking for the main ngrok alternative guide?

We keep the latest ngrok alternative comparison, CLI commands, pricing notes, and webhook examples on one canonical page.

Open the InstaTunnel ngrok alternative guide

Quick answer

ngrok vs bore : L’outil de tunneling minimaliste en Rust: quick comparison answer

Choose the tunnel tool based on the network model: public HTTPS URLs for webhooks and demos, private mesh access for internal apps, and managed infrastructure when policy controls matter most.

Which tunnel tool is best for public webhook testing?

Use a public HTTPS localhost tunnel with stable URLs. InstaTunnel focuses on webhook testing, demos, OAuth callbacks, and MCP endpoint workflows.

When should I choose a private network tool instead?

Choose a private mesh or Zero Trust tool when every user and service should stay inside a controlled private network.

Exposer un serveur de développement local à Internet public signifiait autrefois configurer un routeur, contourner la NAT, et utiliser des solutions DNS dynamiques. Puis est arrivé ngrok, permettant aux développeurs de créer un tunnel d’un environnement localhost vers une URL publique en quelques secondes. Pendant des années, c’était le choix par défaut pour le transfert de ports local.

Mais ngrok a évolué d’un simple outil pour développeurs vers un réseau d’edge cloud complet — passerelles API, routage AI, couches OAuth, WAF, avec un tableau de bord et une tarification plus lourds. Cette croissance a poussé certains développeurs vers des alternatives plus petites et spécialisées. L’une des plus populaires est bore, un tunnel TCP écrit entièrement en Rust qui fait une seule chose : transférer un port local vers un point d’accès public, sans tableau de bord ni compte.

Ce guide compare directement ces deux outils : architecture, fonctionnalités, modèle de sécurité, tarification, configuration, en utilisant la documentation de ngrok et l’historique des sources et versions de bore comme références principales.

1. Le problème fondamental : pourquoi existent les outils de tunneling

Lorsque vous exécutez une application sur localhost:3000, elle n’est accessible que depuis votre machine. La NAT et le pare-feu de votre routeur bloquent par défaut le trafic entrant depuis Internet. Si vous souhaitez faire une démo à un client, tester une application mobile contre une API locale, ou recevoir des webhooks de Stripe ou GitHub, vous avez besoin d’une URL publique qui redirige le trafic vers votre machine.

Les outils de tunneling résolvent cela avec une connexion initiée depuis l’intérieur : un client sur votre machine se connecte à un serveur public (autorisé par votre pare-feu car sortant), et ce serveur redirige le trafic public entrant via le tunnel. Ngrok et bore utilisent cette architecture de base — ce qui diffère, c’est tout ce qui est construit au-dessus.

2. ngrok : la passerelle API et AI

Créé par Alan Shreve en 2013, ngrok a commencé comme un utilitaire simple de tunneling, mais s’est repositionné comme une couche réseau tout-en-un — endpoints, politique de trafic, tunnels sécurisés, maintenant présenté comme une passerelle unique pour le trafic AI, API, et web.

Ce que ngrok propose aujourd’hui

  • Politique de trafic : un moteur de règles basé sur des expressions CEL, s’exécutant à la périphérie de ngrok — routage, authentification, limitation de débit, transformation, tout cela est déclaré en YAML attaché à un endpoint, plutôt que configuré dans nginx ou via un plugin Lua.
  • Capacités de passerelle API : validation JWT, OAuth/OIDC/SAML, mTLS, listes d’autorisation IP, WAF avec règles gérées couvrant le Top 10 de l’OWASP, tout cela avant que le trafic n’atteigne votre origine.
  • Passerelle AI : lancée en early access en décembre 2025 sous le domaine ngrok.ai. Elle se situe entre votre application et un ou plusieurs fournisseurs LLM, routant via OpenAI, Anthropic, Google ou vers des modèles auto-hébergés via Ollama ou vLLM, avec basculement automatique, redaction PII sur les requêtes, et sanitisation des réponses — tout cela configuré via le même moteur de Politique de Trafic que pour le trafic HTTP classique.
  • Inspection et Replay Web : un inspecteur local et dashboard qui capture et rejoue les requêtes HTTP, utile pour le débogage de webhooks.
  • Opérateur Kubernetes : utilise les ressources standard Ingress et Gateway API pour créer automatiquement des endpoints et politiques ngrok.

La tarification gratuite de ngrok, en détail

La documentation tarifaire de ngrok (mise à jour mi-2026) indique ces limites pour le plan gratuit :

Ressource Limite gratuite
Endpoints en ligne Jusqu’à 3
Agents simultanés 3
Transfert de données sortant 1 Go/mois
Requêtes HTTP 20 000/mois
Connexions TCP/TLS 5 000/mois
Taux de requêtes HTTP 4 000/min
Vérification de webhook 500/mois

Une correction importante : le plan gratuit ne limite pas la durée d’une session à 2 ou 8 heures. La documentation de ngrok indique explicitement que l’endpoint du plan gratuit peut fonctionner en continu — les contraintes sont plutôt le plafond de bande passante et de requêtes, l’impossibilité de réserver un domaine personnalisé, et la page d’avertissement intermédiaire (voir ci-dessous), mais pas une déconnexion forcée.

La page d’avertissement “Visit Site”

Pour limiter l’abus de phishing sur ses domaines partagés, ngrok injecte une page d’avertissement devant le trafic HTML du plan gratuit, informant que le site est servi via ngrok. Cela peut être bypassé en envoyant un en-tête ngrok-skip-browser-warning (n’importe quelle valeur) ou un User-Agent personnalisé — cela ne nécessite pas de passer à un plan payant. La documentation de ngrok précise aussi que les plans payants suppriment cette page par défaut. Pour les clients API, tests automatisés, et webhooks, cela peut poser problème (ERR_NGROK_6024), notamment avec EventSource où l’injection d’en-têtes n’est pas possible côté client.

La tarification, mise à jour

Les plans de ngrok en 2026 :

  • Gratuit — 0$, limites ci-dessus.
  • Hobbyiste — 10$/mois (8$/mois si annuel), 5 Go de transfert, 100 000 requêtes HTTP, 1 adresse TCP, toujours 3 endpoints en ligne.
  • Pay-as-you-go — 20$/mois de base, incluant 20$ de crédit d’usage, puis facturation au volume : 0,10$/Go, 1$ pour 100 000 requêtes HTTP, 2$ pour 100 000 connexions TCP supplémentaires. Pas de limite d’endpoint. Utilisateurs supplémentaires à 5$/mois chacun après les 3 premiers.
  • Options additionnelles : SSO/RBAC (10$/utilisateur), certificats TLS personnalisés (200$/mois), IP dédiées (900$/mois par région). Ces fonctionnalités enterprise ne font pas partie du prix de base.

Ce modèle est très différent d’un tarif fixe « 15–30$ par utilisateur » : le plan payant de base est à 8–10$/mois, et la version production est une base de 20$ + usage, pas une licence par utilisateur.

La posture de sécurité à connaître pour un public infra

ngrok est référencé dans le cadre MITRE ATT&CK comme le logiciel S0508 — pas parce que l’outil est malveillant, mais parce qu’il a été exploité par des groupes comme Scattered Spider ou Cadet Blizzard pour commandement et contrôle, mouvement latéral, exfiltration — car c’est un outil légitime, largement autorisé, qui tunnel à travers NAT et pare-feu. Certaines équipes sécurité d’entreprise bloquent ses domaines, ce qui est important à savoir si vous l’intégrez dans un environnement d’entreprise.

3. bore : le minimaliste en Rust

Créé par Eric Zhang (@ekzhang1) et sous licence MIT, bore est un outil CLI avec une seule fonction : transférer un port TCP local vers un serveur distant, en contournant NAT. Sa dernière version (v0.6.0) compte environ 11 100 étoiles sur GitHub et 493 forks — un bon indicateur de traction communautaire pour un outil aussi ciblé.

Pourquoi il est minimal

  • ~400 lignes de Rust asynchrone : toute l’implémentation client et serveur tient en peu de lignes, facile à auditer.
  • Pas de compte, pas de tableau de bord, pas de token : vous pouvez lancer bore local <port> --to bore.pub immédiatement contre le serveur public.
  • Hébergement autonome trivial : bore server sur votre VPS démarre un serveur tunnel complet, sans dépendances supplémentaires.
  • Binary léger, empreinte mémoire quasi nulle : idéal pour des environnements contraints comme un Raspberry Pi.

Fonctionnement du protocole

bore utilise un port de contrôle implicite à 7835. Le client envoie un message “Hello” au serveur via ce port, demandant de proxy un port distant choisi. Lorsqu’une connexion externe arrive, le serveur génère un UUID, l’envoie au client, qui ouvre un nouveau flux TCP, présente l’UUID dans un message “Accept”. Le serveur relie alors les deux connexions. Les connexions entrantes non réclamées sont rejetées après 10 secondes pour éviter les fuites mémoire — ce détail est dans la documentation du protocole.

Installation

  • macOS : brew install bore-cli
  • Arch Linux : disponible dans l’AUR sous le nom bore
  • Gentoo : via l’overlay gentoo-zh
  • Toute plateforme avec Rust : cargo install bore-cli
  • Binaries précompilés pour macOS, Windows, Linux sur la page des releases GitHub
  • Docker : images versionnées pour chaque release (docker run -it --init --rm --network host ekzhang/bore <ARGS>)

Par défaut, bore local <port> --to <host> expose localhost, mais le flag --local-host permet d’exposer un autre hôte local — pratique pour tunneler vers un autre appareil sur votre LAN.

Modèle de sécurité, précis

bore supporte un secret HMAC optionnel (--secret, ou la variable d’environnement BORE_SECRET) qui authentifie la poignée de main de création du tunnel — le client doit prouver qu’il possède le secret pour ouvrir un tunnel. Cela empêche l’usage non autorisé de votre serveur auto-hébergé. Ce n’est pas une encryption du trafic : une fois le tunnel ouvert, le flux est du TCP brut. Si vous tunnelisez quelque chose non chiffré (HTTP simple, base de données), le trafic est visible. En production, il est conseillé de coupler bore avec votre propre TLS (Nginx, Caddy) ou de ne tunneliser que des protocoles déjà chiffrés (HTTPS, SSH).

4. Comparatif direct

Architecture et performance

ngrok, écrit en Go, effectue un traitement HTTP/HTTPS complet — inspection, manipulation d’en-têtes, évaluation de politiques — ce qui introduit une latence et une consommation mémoire supérieures à un simple transfert de bytes. bore, écrit en Rust, est agnostique au protocole : il déplace des octets sans se soucier du contenu (HTTP, WebSocket, SSH, ou autre). Cela limite l’overhead au minimum.

Fonctionnalités vs minimalisme

ngrok offre une large gamme de fonctionnalités — termination HTTPS, certificats automatiques, replay, OAuth/SAML, listes IP, vérification de signature webhook, opérateur Kubernetes, load balancing, routage AI — qui n’ont pas d’équivalent dans bore. bore se limite à du port forwarding. Si vous avez besoin d’inspecter HTTP, ngrok le fait nativement ; si vous avez juste besoin d’un port ouvert, bore n’ajoute pas de surcharge.

Tarification et licence

ngrok est un SaaS freemium : plan gratuit avec limites, 8–10$/mois pour Hobbyist, 20$/mois de base plus usage pour Pay-as-you-go, contrats enterprise. bore est open-source sous licence MIT — gratuit pour usage avec le serveur public bore.pub, ou auto-hébergé sur votre infrastructure, avec aucune limite de bande passante imposée par l’outil.

5. Mise en place

ngrok

# 1. Inscrivez-vous sur ngrok.com et copiez votre authtoken depuis le tableau de bord
ngrok config add-authtoken <YOUR_AUTH_TOKEN>

# 2. Exposez un port local
ngrok http 3000

ngrok fournit une URL HTTPS (ex. https://abc-123.ngrok-free.app) qui proxy vers votre port local.

bore (client uniquement, avec le serveur public)

# Installation
brew install bore-cli        # macOS
cargo install bore-cli       # toute plateforme avec Rust

# Exposer le port 8000 via le serveur bore.pub
bore local 8000 --to bore.pub

bore affiche un port attribué sur bore.pub (ex. bore.pub:43219) où votre serveur local devient accessible.

Auto-hébergement de bore

# Sur votre VPS
bore server --min-port 10000 --max-port 20000 --secret super_secure_password

# Sur votre machine locale
bore local 8000 --to your-vps-ip.com --secret super_secure_password

6. Quel outil correspond à votre flux de travail

Choisissez ngrok si : - Vous avez besoin de visibilité HTTP — replay, inspection, manipulation — lors du débogage. - Vous souhaitez sécuriser l’accès avec OAuth, OIDC ou SAML dans un environnement de prévisualisation. - Vous voulez un domaine personnalisé stable lié à un tunnel, sans gérer votre propre reverse proxy. - Vous routez ou gérez du trafic AI/LLM sur plusieurs fournisseurs, dans la même politique que votre API.

Choisissez bore si : - Vous cherchez un outil minimal, open-source, sans compte, sans verrouillage fournisseur. - Vous partagez un port pour quelques minutes, sans tokens ni pages d’interstitial. - Vous utilisez du matériel contraint (Raspberry Pi, appareils embarqués, IoT). - Vous tunnelisez du TCP non-HTTP — SSH, serveur de jeu, protocole personnalisé — où ngrok ne serait pas utile. - Vous souhaitez auto-héberger sur votre infrastructure, sans limite de bande.

7. Questions fréquentes

Bore remplace-t-il ngrok ? Pour du port forwarding simple, oui. Si vous utilisez ngrok pour HTTPS, inspection ou authentification intégrée, bore ne le fait pas — il faut ajouter un reverse proxy (Nginx, Caddy) devant votre bore auto-hébergé.

Comment supprimer l’avertissement “Visit Site” de ngrok ? Envoyez l’en-tête ngrok-skip-browser-warning (n’importe quelle valeur) ou un User-Agent personnalisé — cela fonctionne même en plan gratuit, sans mise à niveau. Les plans payants suppriment cette page par défaut.

Puis-je utiliser un domaine personnalisé avec bore ? Oui, si vous auto-hébergez : pointez le DNS A de votre domaine vers votre VPS avec bore server, puis connectez votre client à cette adresse.

Le trafic de bore est-il chiffré ? Non, par défaut. Le secret --secret authentifie la création du tunnel, mais ne chiffre pas le contenu. Pour la production, utilisez TLS (Nginx, Caddy) ou ne tunnelisez que des protocoles déjà chiffrés (HTTPS, SSH).

Le plan gratuit de ngrok coupe-t-il après une session fixe ? Non — cette idée fausse revient souvent, mais la documentation indique que le plan gratuit n’impose pas de timeout sur l’endpoint. Les limites concernent plutôt la bande passante, le nombre de requêtes, et le nombre de connexions.


Changelog

Corrections 1. Tarification ngrok payant — La version initiale mentionnait un tarif de “$15 à $30+ par utilisateur par mois”. La structure réelle en 2026 est : Hobbyist 10$/mois (8$ si annuel), Pay-as-you-go 20$/mois de base + crédit, puis facturation au volume. Source : ngrok Pricing and Limits. 2. Page d’avertissement “Visit Site” — La documentation précise que l’en-tête ngrok-skip-browser-warning bypass la page même en plan gratuit, sans mise à niveau. Source : ngrok Free Plan Limits et ERR_NGROK_6024. 3. Nombre d’étoiles de bore — Mise à jour à 11,1k étoiles / 493 forks, selon la page GitHub.

Ajouts 1. Correction sur la fausse croyance que ngrok a une limite de session de 2 ou 8 heures — la documentation indique qu’il n’y a pas de timeout pour le plan gratuit. Source : ngrok Free Plan Limits. 2. Ajout du passage sur l’AI Gateway de ngrok (early access depuis décembre 2025, sous ngrok.ai) — routage multi-fournisseurs, support de modèles auto-hébergés (Ollama, vLLM), basculement automatique, redaction PII, tout configurable via la Traffic Policy. Sources : ngrok AI Gateway launch, ngrok AI Gateway docs. 3. Mention dans le cadre MITRE ATT&CK comme Software S0508, pour un public sécurité — contexte pertinent pour l’intégration en entreprise. Source : MITRE ATT&CK S0508. 4. Ajout du flag --local-host pour bore (expose un autre hôte LAN que localhost) et autres méthodes d’installation (AUR, Gentoo, Docker), directement issus du repo GitHub de bore. 5. Mise à jour du tableau des limites du plan gratuit ngrok, directement tiré de leur documentation. 6. Confirmation que la version actuelle de bore est v0.6.0, avec ~400 lignes de code et protocole basé sur handshake UUID, selon la documentation officielle.

Suppression 1. Suppression de la section FAQ SEO et du langage promotionnel non technique. 2. Correction des artefacts de code mal formés, remplacement par des blocs de code correctement fence. 3. Reformulation pour préciser que bore a une posture de sécurité basée sur le secret HMAC, et que ce n’est pas une encryption du trafic.

Continue from this article into the most relevant product guides and workflows.

Related Topics

#ngrok vs bore, bore tunneling tool, bore rust tunnel, ngrok alternative, lightweight ngrok alternative, fast tcp tunnel, self hosted tunnel tool, bore cli, minimal reverse proxy, rust port forwarding, local tcp port to internet, expose localhost fast, minimalist tunneling tool, open source tunnel rust, bypass ngrok limits, lightweight binary tunnel, zero ram tunnel, public endpoint forwarding, embedded systems port forwarding, share tcp port instantly, self host bore, bore client server, async rust tunnel, secure tcp tunnel, fast local tunnel, reverse proxy alternative, developer tunneling tools, rust enthusiast tools, port forwarding without dashboard, ngrok vs bore cli, simple tcp tunnel, bore pub server, bore port forwarding, alternative to localtunnel, minimal local proxy, web dashboard alternative, payload inspector alternative, single binary tunnel, instantly share localhost, quick test tunneling, rust cli tool, network tunnel rust, forward local port, internet endpoint tunnel, ngrok alternatives 2026, self hosted ngrok alternative, local development tunnel, fast ngrok alternative, bore ekzhang, expose local api, tunnel tcp traffic

Keep building with InstaTunnel

Read the docs for implementation details or compare plans before you ship.

Share this article

More InstaTunnel Insights

Discover more tutorials, tips, and updates to help you build better with localhost tunneling.

Browse All Articles