CINXE.COM
<!doctype html> <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-why-ngrok" data-has-hydrated="false"> <head> <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v3.7.0"> <title data-rh="true">Why ngrok? | ngrok documentation</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://ngrok.com/docs/img/ngrok-docs-opengraph.png"><meta data-rh="true" name="twitter:image" content="https://ngrok.com/docs/img/ngrok-docs-opengraph.png"><meta data-rh="true" property="og:url" content="https://ngrok.com/docs/why-ngrok/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="keywords" content="ngrok, documentation, api, errors, reference, getting started, tutorials"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Why ngrok? | ngrok documentation"><meta data-rh="true" name="description" content="Environment Independence"><meta data-rh="true" property="og:description" content="Environment Independence"><link data-rh="true" rel="icon" href="/docs/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://ngrok.com/docs/why-ngrok/"><link data-rh="true" rel="alternate" href="https://ngrok.com/docs/why-ngrok/" hreflang="en"><link data-rh="true" rel="alternate" href="https://ngrok.com/docs/why-ngrok/" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://8D7MHVMLBR-dsn.algolia.net" crossorigin="anonymous"><link rel="preconnect" href="https://www.googletagmanager.com"> <script>window.dataLayer=window.dataLayer||[]</script> <script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-P4F37ZW",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer")</script> <script id="hs-script-loader" src="//js.hs-scripts.com/21124867.js"></script> <link href="https://assets.ngrok.com" rel="preconnect"> <link href="https://fonts.googleapis.com" rel="preconnect"> <link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"> <link href="https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&amp;display=swap" rel="stylesheet"> <link rel="preload" href="https://cdn.ngrok.com/static/fonts/euclid-square/EuclidSquare-Regular-WebS.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="https://cdn.ngrok.com/static/fonts/euclid-square/EuclidSquare-RegularItalic-WebS.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="https://cdn.ngrok.com/static/fonts/euclid-square/EuclidSquare-Medium-WebS.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="https://cdn.ngrok.com/static/fonts/euclid-square/EuclidSquare-Semibold-WebS.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="https://cdn.ngrok.com/static/fonts/euclid-square/EuclidSquare-MediumItalic-WebS.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="https://cdn.ngrok.com/static/fonts/ibm-plex-mono/IBMPlexMono-Text.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="https://cdn.ngrok.com/static/fonts/ibm-plex-mono/IBMPlexMono-TextItalic.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="https://cdn.ngrok.com/static/fonts/ibm-plex-mono/IBMPlexMono-SemiBold.woff" as="font" type="font/woff" crossorigin="anonymous"> <link rel="preload" href="https://cdn.ngrok.com/static/fonts/ibm-plex-mono/IBMPlexMono-SemiBoldItalic.woff" as="font" type="font/woff" crossorigin="anonymous"> <script src="/docs/scripts/prevent-fouc.js"></script> <script src="/docs/scripts/ketch.js"></script> <script src="https://global.ketchcdn.com/web/v2/config/ngrok/ngrok_ketch_tag/boot.js" async defer="defer"></script> <script src="/docs/scripts/fix-redirect.js" async></script> <script src="/docs/scripts/anchor-scroll-to.js" async></script> <script src="https://tag.clearbitscripts.com/v1/pk_1caf9e9fb3222466245fb17c8f807837/tags.js"></script><link rel="stylesheet" href="/docs/assets/css/styles.2f2b6068.css"> <script src="/docs/assets/js/runtime~main.19e837c4.js" defer="defer"></script> <script src="/docs/assets/js/main.26f1e8a7.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-P4F37ZW" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_bFX7" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a href="https://ngrok.com" target="_blank" rel="noopener noreferrer" class="navbar__brand"><div class="navbar__logo"><img src="/docs/img/ngrok-black.svg" alt="ngrok" class="themedComponent_lG9L themedComponent--light_GoHd"><img src="/docs/img/ngrok-white.svg" alt="ngrok" class="themedComponent_lG9L themedComponent--dark_YNM2"></div></a><a href="https://ngrok.com/product/platform" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Platform</a><a href="https://ngrok.com/use-cases" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Use cases</a><a href="https://ngrok.com/blog" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Blog</a><a href="https://ngrok.com/resources" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Resources</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs/">Docs</a><a href="https://ngrok.com/pricing" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Pricing</a><a href="https://download.ngrok.com" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Get ngrok</a></div><div class="navbar__items navbar__items--right"><a href="https://dashboard.ngrok.com/login" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link dev-portal-login dev-portal-link">Log in</a><a href="https://ngrok.com/signup" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link dev-portal-signup dev-portal-link">Sign Up</a><button type="button" class="text-muted hover:text-body bg-transparent flex shrink-0 cursor-pointer items-center justify-center rounded-full p-1.5 ring-focus-accent focus:outline-none focus-visible:ring-4 size-9 dark-high-contrast:text-black dark-high-contrast:hover:text-white colorModeToggle_AOY2"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 256 256" class="size-5 shrink-0"><path d="M116,36V20a12,12,0,0,1,24,0V36a12,12,0,0,1-24,0Zm80,92a68,68,0,1,1-68-68A68.07,68.07,0,0,1,196,128Zm-24,0a44,44,0,1,0-44,44A44.05,44.05,0,0,0,172,128ZM51.51,68.49a12,12,0,1,0,17-17l-12-12a12,12,0,0,0-17,17Zm0,119-12,12a12,12,0,0,0,17,17l12-12a12,12,0,1,0-17-17ZM196,72a12,12,0,0,0,8.49-3.51l12-12a12,12,0,0,0-17-17l-12,12A12,12,0,0,0,196,72Zm8.49,115.51a12,12,0,0,0-17,17l12,12a12,12,0,0,0,17-17ZM48,128a12,12,0,0,0-12-12H20a12,12,0,0,0,0,24H36A12,12,0,0,0,48,128Zm80,80a12,12,0,0,0-12,12v16a12,12,0,0,0,24,0V220A12,12,0,0,0,128,208Zm108-92H220a12,12,0,0,0,0,24h16a12,12,0,0,0,0-24Z"></path></svg></button><div class="navbarSearchContainer_sBvq"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_pg6l"><div class="docsWrapper_bbG9"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_PcJv" type="button"></button><div class="docRoot_ZLOJ"><aside class="theme-doc-sidebar-container docSidebarContainer_Qh0p"><div class="sidebarViewport_dYMj"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button><div class="sidebar_DINV"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_QAx2"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/what-is-ngrok/">What is ngrok?</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/how-ngrok-works/">How does ngrok work?</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/docs/why-ngrok/">Why ngrok?</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/whats-new/">What's new?</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/getting-started/">Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/pricing-limits/">Pricing & Limits</a><button aria-label="Expand sidebar category 'Pricing & Limits'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--category"><div class="menu__list-item-collapsible"><a class="menu__link" href="/docs/universal-gateway/overview/">Universal Gateway</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/universal-gateway/overview/">Overview</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/docs/universal-gateway/domains/">Concepts</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/universal-gateway/endpoints/">Endpoints</a><button aria-label="Expand sidebar category 'Endpoints'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/universal-gateway/global-load-balancer/">Network</a><button aria-label="Expand sidebar category 'Network'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--category"><div class="menu__list-item-collapsible"><a class="menu__link" href="/docs/traffic-policy/">Traffic Policy</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/traffic-policy/">Overview</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/traffic-policy/getting-started/agent-endpoints/cli/">Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/traffic-policy/concepts/">Concepts</a><button aria-label="Expand sidebar category 'Concepts'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/traffic-policy/actions/">Actions</a><button aria-label="Expand sidebar category 'Actions'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/traffic-policy/macros/">Macros</a><button aria-label="Expand sidebar category 'Macros'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/traffic-policy/variables/">Variables</a><button aria-label="Expand sidebar category 'Variables'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/traffic-policy/identities/">Resources</a><button aria-label="Expand sidebar category 'Resources'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" tabindex="0" href="/docs/traffic-policy/examples/a-b-tests/">Examples</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--category"><div class="menu__list-item-collapsible"><a class="menu__link" href="/docs/k8s/">Kubernetes</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/k8s/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/k8s/how-it-works/">How it Works</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/k8s/guides/quickstart/">Quickstart</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/k8s/installation/install/">Install & Manage</a><button aria-label="Expand sidebar category 'Install & Manage'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/k8s/guides/using-crds/">Usage Guides</a><button aria-label="Expand sidebar category 'Usage Guides'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/k8s/crds/">Custom Resources</a><button aria-label="Expand sidebar category 'Custom Resources'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/k8s/integrations/argo-cd/">Integrations & Platforms</a><button aria-label="Expand sidebar category 'Integrations & Platforms'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/k8s/changelog/">Changelog</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/k8s/releasing/">Releasing</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--category"><div class="menu__list-item-collapsible"><a class="menu__link" href="/docs/obs/">Traffic Observability</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/obs/">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/obs/traffic-inspection/">Traffic Inspector</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/obs/events/">Events</a><button aria-label="Expand sidebar category 'Events'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--category"><div class="menu__list-item-collapsible"><a class="menu__link" href="/docs/agent/">Secure Tunnels</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/agent/">Agent</a><button aria-label="Expand sidebar category 'Agent'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/agent-sdks/">Agent SDKs</a><button aria-label="Expand sidebar category 'Agent SDKs'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--category"><div class="menu__list-item-collapsible"><a class="menu__link" href="/docs/iam/">Identity & Access</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/iam/">Overview</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/iam/users/">Principals</a><button aria-label="Expand sidebar category 'Principals'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/docs/iam/sso/">Account Governance</a><button aria-label="Expand sidebar category 'Account Governance'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div class="menu__section">Platform</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/api/">API</a><button aria-label="Expand sidebar category 'API'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/errors/">Errors</a><button aria-label="Expand sidebar category 'Errors'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div class="menu__section">Guides</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/docs/guides/api-gateway/get-started/">API Gateway</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/guides/device-gateway/">Device Gateway</a><button aria-label="Expand sidebar category 'Device Gateway'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/guides/identity-aware-proxy/">Identity Aware Proxy</a><button aria-label="Expand sidebar category 'Identity Aware Proxy'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/guides/site-to-site-connectivity/">Site-to-Site Connectivity</a><button aria-label="Expand sidebar category 'Site-to-Site Connectivity'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/guides/developer-preview/">Developer Preview</a><button aria-label="Expand sidebar category 'Developer Preview'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/guides/other-guides/">Other guides</a><button aria-label="Expand sidebar category 'Other guides'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/using-ngrok-with/">Using ngrok with</a><button aria-label="Expand sidebar category 'Using ngrok with'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/integrations/">Integrations</a><button aria-label="Expand sidebar category 'Integrations'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1"><div class="menu__section"></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/faq/">FAQ</a></li></ul></nav></div></div></aside><main class="docMainContainer_zgXV"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_SLg3"><div class="docItemContainer_LbGb"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Alpn" aria-label="Breadcrumbs"><ul class="breadcrumbs flex items-center" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item flex items-center justify-center"><a aria-label="Home page" class="breadcrumbs__link" href="/docs/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 256 256" class="size-4"><path d="M224,120v96a8,8,0,0,1-8,8H160a8,8,0,0,1-8-8V164a4,4,0,0,0-4-4H108a4,4,0,0,0-4,4v52a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120a16,16,0,0,1,4.69-11.31l80-80a16,16,0,0,1,22.62,0l80,80A16,16,0,0,1,224,120Z"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item relative breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Why ngrok?</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_YcJT theme-doc-toc-mobile tocMobile_udbX"><button type="button" class="clean-btn tocCollapsibleButton_D7pE">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Why ngrok?</h1></header><h2 class="anchor anchorWithStickyNavbar_Vexi" id="environment-independence">Environment Independence<a href="#environment-independence" class="hash-link" aria-label="Direct link to Environment Independence" title="Direct link to Environment Independence"></a></h2> <p>ngrok works everywhere. But more than that, it works <em>the same</em> everywhere.</p> <p>You can run your services in AWS, GCP or Azure. You can run services in your on-prem data centers or on IoT devices like a Raspberry Pi. You can run your services on hosted container platforms like Heroku, Render or Fly. You can even run services on your laptop. ngrok works the same in any environment and on any network.</p> <h2 class="anchor anchorWithStickyNavbar_Vexi" id="unified-ingress">Unified Ingress<a href="#unified-ingress" class="hash-link" aria-label="Direct link to Unified Ingress" title="Direct link to Unified Ingress"></a></h2> <p>ngrok consolidates the traditional pile of ingress tools into one platform.</p> <p>Traditionally, creating ingress for your application services requires stitching together multiple different software components. There's a reverse proxy, load balancer, API gateway, firewall, delivery network, WAF, application middleware, DDoS protection and more.</p> <p>ngrok <em>collapses</em> these components into a platform with unified configuration and observability.</p> <h2 class="anchor anchorWithStickyNavbar_Vexi" id="production-ready-sooner">Production-Ready Sooner<a href="#production-ready-sooner" class="hash-link" aria-label="Direct link to Production-Ready Sooner" title="Direct link to Production-Ready Sooner"></a></h2> <p>ngrok helps you deliver your app to production sooner.</p> <p>Making your app production-ready requires a lot of setup work to secure it with authentication, protect it from attacks and accelerate its traffic so that it's fast. ngrok does all of that automatically for you so you can focus on building your app and not networking configurations.</p> <h2 class="anchor anchorWithStickyNavbar_Vexi" id="reusable-app-scaffolding">Reusable App Scaffolding<a href="#reusable-app-scaffolding" class="hash-link" aria-label="Direct link to Reusable App Scaffolding" title="Direct link to Reusable App Scaffolding"></a></h2> <p>Don't build auth again. Or rate-limiting. Or other undifferentiated functionality. You can offload it to ngrok instead.</p> <p>ngrok's module system enables you to spend less time building table-stakes functionality and more time building new features for your app instead. You and your team won't need to rebuild the same scaffolding systems over and over again.</p> <h2 class="anchor anchorWithStickyNavbar_Vexi" id="application-layer-abstractions">Application-Layer Abstractions<a href="#application-layer-abstractions" class="hash-link" aria-label="Direct link to Application-Layer Abstractions" title="Direct link to Application-Layer Abstractions"></a></h2> <p>ngrok helps you stop working with the assembly language of networking.</p> <p>For as much as we've abstracted away developer complexity with high-level languages, we still expect software engineers to wrestle with arcane networking minutia. ngrok abstracts away the complexity of low-level concepts like CIDRs, ports and TLS Certificates and instead provides you with control over application primitives like authentication and request routing.</p> <h2 class="anchor anchorWithStickyNavbar_Vexi" id="contractual-safety">Contractual Safety<a href="#contractual-safety" class="hash-link" aria-label="Direct link to Contractual Safety" title="Direct link to Contractual Safety"></a></h2> <p>ngrok establishes contractual application control of your ingress platform.</p> <p>Great software is built on well-defined contracts between components. As more business logic is pushed to proxies in front of the application, the contract between the reverse proxy and the upstream application becomes critical. Unexpected changes in behavior between them cause incidents. Traditionally, that contract is <em>implicitly</em> defined in IT tickets.</p> <p>ngrok's Agent SDKs change that. Instead, the application itself defines via API exactly what operations it expects the ingress platform to perform on its behalf and how it expects to receive information about those behaviors.</p> <p>This is a new, safer programming model where developers can safely offload additional functionality to the ingress platform without fear of the contract being broken.</p> <h2 class="anchor anchorWithStickyNavbar_Vexi" id="pay-as-you-go">Pay as You Go<a href="#pay-as-you-go" class="hash-link" aria-label="Direct link to Pay as You Go" title="Direct link to Pay as You Go"></a></h2> <p>Get started without a huge bill.</p> <p>Unlike other networking software which has unpublished pricing that only enterprises can afford, anyone can get started using the paid features of ngrok with just a credit card. ngrok's pricing is public, predictable and you pay only for what you use.</p> <h2 class="anchor anchorWithStickyNavbar_Vexi" id="dev--prod-parity">Dev / Prod Parity<a href="#dev--prod-parity" class="hash-link" aria-label="Direct link to Dev / Prod Parity" title="Direct link to Dev / Prod Parity"></a></h2> <p>ngrok eliminates bugs that arise from differences between local dev and production environments.</p> <p>We've all felt the pain of something failing in production that worked while we were testing it locally. Because ngrok works everywhere, you can run it on your local development environment exactly the same way you run it to deliver your production service.</p> <h2 class="anchor anchorWithStickyNavbar_Vexi" id="as-a-service">As-a-Service<a href="#as-a-service" class="hash-link" aria-label="Direct link to As-a-Service" title="Direct link to As-a-Service"></a></h2> <p>ngrok reduces your operational burden by operating the global delivery network for you.</p> <p>A global delivery network accelerates your application, but it's a real pain to operate. Unlike deployable network software that you need to configure and run yourself, ngrok is a completely managed global service. You can spend less time operating networking infrastructure and puzzling over missing packets and more time building value for your customers.</p> <h2 class="anchor anchorWithStickyNavbar_Vexi" id="built-for-developers">Built for Developers<a href="#built-for-developers" class="hash-link" aria-label="Direct link to Built for Developers" title="Direct link to Built for Developers"></a></h2> <p>ngrok puts developers in control with best-in-class developer tooling.</p> <ul> <li>First-class CLI to all functionality</li> <li>Native-language Agent SDKs</li> <li>HTTP API to automate configuration tasks</li> <li>Extensive documentation</li> <li>Programmatic events for observability and automation</li> </ul> <h2 class="anchor anchorWithStickyNavbar_Vexi" id="global-acceleration">Global Acceleration<a href="#global-acceleration" class="hash-link" aria-label="Direct link to Global Acceleration" title="Direct link to Global Acceleration"></a></h2> <p>ngrok accelerates your apps for global clients.</p> <p>In addition to using its global server load balancing to improve speeds for your application's clients by reducing TCP and TLS setup round-trip times, ngrok also pushes any module behaviors you configure to its global edge as well so authentication, transformations, load balancing and more happen as close to your customers as possible.</p> <h2 class="anchor anchorWithStickyNavbar_Vexi" id="network-micro-segmentation">Network Micro-Segmentation<a href="#network-micro-segmentation" class="hash-link" aria-label="Direct link to Network Micro-Segmentation" title="Direct link to Network Micro-Segmentation"></a></h2> <p>ngrok finally achieves true per-workload layer 4 networking security.</p> <p>Traditional networking architectures often permit applications to speak to each other directly when they're colocated on the same network without going through the ingress gateways which enforce auth and policy. This is ultimately the same security risk that motivated Google to create its BeyondCorp zero-trust architecture model. ngrok achieves true network isolation for applications without any complex networking policy so that the only way to access them is via their endpoint URL, even if they're running next to each other.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/ngrok/ngrok-docs/edit/main/docs/why-ngrok.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Q4Po" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_f29A"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2025-04-10T20:01:10.000Z" itemprop="dateModified">Apr 10, 2025</time></b> by <b>Alice Lilith</b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/how-ngrok-works/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">How does ngrok work?</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/whats-new/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">What's new?</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_oQPh thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#environment-independence" class="table-of-contents__link toc-highlight">Environment Independence</a></li><li><a href="#unified-ingress" class="table-of-contents__link toc-highlight">Unified Ingress</a></li><li><a href="#production-ready-sooner" class="table-of-contents__link toc-highlight">Production-Ready Sooner</a></li><li><a href="#reusable-app-scaffolding" class="table-of-contents__link toc-highlight">Reusable App Scaffolding</a></li><li><a href="#application-layer-abstractions" class="table-of-contents__link toc-highlight">Application-Layer Abstractions</a></li><li><a href="#contractual-safety" class="table-of-contents__link toc-highlight">Contractual Safety</a></li><li><a href="#pay-as-you-go" class="table-of-contents__link toc-highlight">Pay as You Go</a></li><li><a href="#dev--prod-parity" class="table-of-contents__link toc-highlight">Dev / Prod Parity</a></li><li><a href="#as-a-service" class="table-of-contents__link toc-highlight">As-a-Service</a></li><li><a href="#built-for-developers" class="table-of-contents__link toc-highlight">Built for Developers</a></li><li><a href="#global-acceleration" class="table-of-contents__link toc-highlight">Global Acceleration</a></li><li><a href="#network-micro-segmentation" class="table-of-contents__link toc-highlight">Network Micro-Segmentation</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">ngrok Service</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/getting-started/">Get Started</a></li><li class="footer__item"><a href="https://dashboard.ngrok.com/signup" target="_blank" rel="noopener noreferrer" class="footer__link-item">Sign up</a></li><li class="footer__item"><a href="https://dashboard.ngrok.com/login" target="_blank" rel="noopener noreferrer" class="footer__link-item">Log in</a></li><li class="footer__item"><a href="https://download.ngrok.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Download</a></li><li class="footer__item"><a href="https://ngrok.com/docs" target="_blank" rel="noopener noreferrer" class="footer__link-item">Docs</a></li><li class="footer__item"><a href="https://status.ngrok.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Status</a></li></ul></div><div class="col footer__col"><div class="footer__title">ngrok.com</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://ngrok.com/product" target="_blank" rel="noopener noreferrer" class="footer__link-item">Product</a></li><li class="footer__item"><a href="https://ngrok.com/pricing" target="_blank" rel="noopener noreferrer" class="footer__link-item">Pricing</a></li><li class="footer__item"><a href="https://ngrok.com/customers" target="_blank" rel="noopener noreferrer" class="footer__link-item">Customers</a></li><li class="footer__item"><a href="https://ngrok.com/solutions" target="_blank" rel="noopener noreferrer" class="footer__link-item">Solutions</a></li><li class="footer__item"><a href="https://ngrok.com/partners" target="_blank" rel="noopener noreferrer" class="footer__link-item">Partners</a></li><li class="footer__item"><a href="https://trust.ngrok.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Trust Portal</a></li></ul></div><div class="col footer__col"><div class="footer__title">Legal</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://ngrok.com/abuse" target="_blank" rel="noopener noreferrer" class="footer__link-item">Abuse</a></li><li class="footer__item"><a href="https://ngrok.com/dpa" target="_blank" rel="noopener noreferrer" class="footer__link-item">DPA</a></li><li class="footer__item"><a href="https://ngrok.com/privacy" target="_blank" rel="noopener noreferrer" class="footer__link-item">Privacy</a></li><li class="footer__item"><a href="https://ngrok.com/security" target="_blank" rel="noopener noreferrer" class="footer__link-item">Security</a></li><li class="footer__item"><a href="https://ngrok.com/tos" target="_blank" rel="noopener noreferrer" class="footer__link-item">Terms of service</a></li><li class="footer__item"><a href="https://ngrok.com/privacy-preferences" target="_blank" rel="noopener noreferrer" class="footer__link-item">Privacy Preferences</a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://ngrok.com/careers" target="_blank" rel="noopener noreferrer" class="footer__link-item">Careers</a></li><li class="footer__item"><a href="https://blog.ngrok.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog</a></li><li class="footer__item"><a href="https://ngrok.com/slack" target="_blank" rel="noopener noreferrer" class="footer__link-item">Community</a></li><li class="footer__item"><a href="https://twitter.com/ngrokHQ" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter</a></li><li class="footer__item"><a href="https://www.linkedin.com/company/ngrok" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn</a></li><li class="footer__item"><a href="https://github.com/ngrok" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">© ngrok 2025</div></div></div></footer></div> </body> </html>