Secure Tunnels

Your connection to upstream services running anywhere

Unlike traditional proxies that require static IP addresses, ngrok enables your services to run anywhere—whether on your laptop, behind firewalls and NATs, within CI/CD environments, or on container platforms—without any need for complex networking configuration.

Just run a lightweight agent distributed as a standalone binary, open source SDK for your favorite programming languages, or a Kubernetes Operator to forward traffic from endpoints hosted on ngrok's global network to upstream services.

  Agent Secure Tunnel SDKs Kubernetes Operator SSH Reverse Tunnel
What is it? Agent Zero dependency executable CLI Secure Tunnel SDKs Programmable interface for embedding ngrok into applications Kubernetes Operator Support for Ingress Controller, Gateway API and cross-cluster connectivity SSH Reverse Tunnel A secure reverse tunnel created via SSH.
Best suited for Agent Interactive workflows Secure Tunnel SDKs Tight integration with apps and APIs for automated traffic management Kubernetes Operator Traffic management into and across Kubernetes environments SSH Reverse Tunnel Locked down environments or systems with limited resources where you can't run the agent

Agent

A single binary with zero runtime dependencies, available for all major platforms, allowing you to operate with a simple, intuitive CLI.

It runs on all platforms and operating systems and is packaged for distribution on the most popular package managers. You can run it as a system service so it starts when the machine boots up.

Secure Tunnel SDKs

Manage traffic to your apps and APIs programmatically by embedding ngrok with a single line of code.

Configure the connection directly within your application, allowing you to define precise, API-driven contracts that dictate how your applications interact with the delivery layer. This eliminates hidden dependencies between your app and its delivery infrastructure. Just like the ngrok agent, SDKs securely forward requests to your upstream services. Our SDKs are open source and available in Go, Python, Rust, and JavaScript.

This example shows a JavaScript app with an endpoint URL example.ngrok.dev that sends traffic to port 8001. Rate limiting traffic policy that allows only 30 requests per minute is also configured.

ngrok Kubernetes Operator

Connect to services running in Kubernetes with the Kubernetes Operator, our official open-source controller.

It supports both Ingress CRDs as well as the new Gateway API.  Just helm install the ngrok Kubernetes operator and you're online. You can also connect any service to your Kubernetes cluster in a secure, native fashion, making it appear local within your cluster. The operator is built on top of our SDKs so it works in any Kubernetes cluster running anywhere including on a device at the edge, on your laptop, in EKS, GKE, OpenShift, K3s, or Minikube, in development and production environments.

This example creates a domain example.ngrok.app that routes traffic to the Kubernetes service example-service running on port 80 using the Ingress Controller.

Try Secure Tunnels now

More Secure Tunnel capabilities

Custom Connect URLs

Customize the URL used by the agent to connect to the ngrok service for a more secure and branded experience. This is especially useful when connecting to external networks, such as customers’ networks or IoT devices in partner environments. You can also request dedicated IP addresses for your connect URLs that are unique to your account.

Agent API CLI

Explore and script the API using  ngrok api commands built into the ngrok agent to automate ngrok workflows.

SSH Reverse Tunnel Agent

Use ssh reverse tunneling (ssh -R) to deliver services via ngrok without the need to install or run an ngrok agent. This is especially useful when connecting to devices with limited system resources or in remote, locked-down environments where downloads or installs aren’t allowed, such as when triaging issues.

Agent observability

Obtain visibility into whether your agents are online or offline, and track how long they’ve been running. You can also stop, restart, and update all your agents directly from your ngrok dashboard.

Secure Tunnel ACLs

Control tunnel access with ACLs, enforcing corporate security and compliance policies. Apply ACLs to authtokens, restricting tunnel creation to those bound by specific security policies.

Remote Agent Management

Agents can be stopped, restarted, or upgraded via our dashboard or API, allowing you to manage them remotely. Agent SDKs can be configured to listen for remote requests and perform additional actions as needed.