ngrok Agent Changelog
ngrok Agent 3.3.1 - [2023-06-05]
- Fixed a bug where colons in request header and response header values were not allowed (e.g.
- Fixed a bug introduced in v3.3.0 where
--terminate-at edgewas not using the correct TLS certificate
ngrok Agent 3.3.0 - [2023-05-09]
- Added new default tunnel ingress names: the agent now connects to
connect.ngrok-agent.comwhen starting a session
ngrok diagnoseoutput to check that the DNS entry for
- Added the command
ngrok config add-server-addrfor configuring custom agent ingresses
- Re-wrote the tunnel and session backend to use the
ngrok Agent 3.2.2 - [2023-03-27]
- Fixed a bug introduced in v3.2.1 with tab complete for command line flags
ngrok Agent 3.2.1 - [2023-03-13]
- Deprecated the
- Updated all
--hostnameexamples to use
- Fixed a bug where the agent did not resolve local DNS correctly on macOS arm64
- Allow specifying ngrok
--region=autoto pick the closest region (defaults to auto)
- Support for the NGROK_API_KEY environment variable when using the ngrok api subcommand
--log-format=jsonnow results in more output being formatted as json
This version number was intentionally skipped.
ngrok Agent 3.1.1 - [2023-01-13]
- Expanded diagnosis coverage when running
ngrok diagnoseto include testing against all regions and additional debug information of the underlying system.
--configoption to be accepted in any position with cli command.
ngrok config add-authtoken <AUTHTOKEN>to also save the default version if it does not exist in the config file.
- Fixed rare race condition where agent would crash unexpectedly.
- Added DNS rebinding protection which includes
ngrok Agent 3.1.0 - [2022-09-14]
- Started signing Windows executables with a code signing certificate. Includes polish for Windows executable properties like description and icon.
- Updated the root CA recognized by new agent versions. Improves incident recovery and mitigation options.
ngrok Agent 3.0.7 - [2022-08-17]
--regionflag to the
ngrok diagnosecommand. Including support for
--region allto diagnose all regions.
- Ignore the
--configflag when passed to a command that does not support it.
ngrok Agent 3.0.6 - [2022-06-30]
- Fixed issues with replay not displaying requests in the ngrok Agent web UI, console UI, and API.
- Fixed null pointer issues with
ngrok Agent 3.0.5 - [2022-06-22]
- Fixed a formatting issue in the inspector web UI for the header navigation.
- Updated the start tunnel API to allow starting labeled tunnels using a list of strings as labels.
ngrok Agent 3.0.4 - [2022-05-27]
- Added the ability to provide messages to users via the agent console.
ngrok config editwill now allow you to edit an invalid configuration file.
- Updated the display of the latency number in the console UI to be more human readable.
ngrok Agent 3.0.3 - [2022-04-26]
- Fixed a bug on Windows where running the agent from explorer did not open a cmd prompt.
ngrok Agent 3.0.2 - [2022-04-11]
- Fixed a bug that was not allowing users to start tunnels via the API.
ngrok Agent 3.0.1 - [2022-04-04]
ngrok config editcommand to open the config file in your default editor.
- Removed invalid
--proxy-protoflag from the
- Added a migration to the
ngrok config upgradecommand to convert basic auth config parameters.
- The ngrok agent API will now error if invalid values are passed to it. Previously it ignored them.
ngrok Agent 3.0.0 - [2022-03-28]
For more information about upgrading from previous versions of the agent to v3.0, see our upgrade guide.
- Fixed an issue where an agent would not reconnect after removing a reserved domain from your account.
ngrok completionto enable autocomplete for the cli.
proxy_protooption for enabling and specifying the HAProxy's PROXY protocol version.
- Added the ability to set the
connect_interfacefor the agent.
- The agent UI now display ping time.
- Added the
ngrok diagnosecommand to the agent for troubleshooting connection issues.
- Added the
ngrok configcommand for managing the configuration file.
- Added the ability to call the ngrok API from the agent using
- Added the
ngrok servicecommand to manage the ngrok agent as a service.
- All ngrok agent configuration files must now include a version number to indicate the format.
- Added the ability to start Labeled Tunnels to the agent that work with the new Tunnel Group backend.
- Renamed the "Clear" button to "Clear Requests" in the inspect UI to make it clear as to what it's doing.
- Fixed an issue where running
ngrok authtokenwould make changes to your tunnel definitions.
- The inspect UI will now pretty-print content types ending in +json.
- Fixed an issue where the inspect UI was adding unwanted HTML tags to JSON bodies when replayed.
- The ngrok agent now logs to stdout by default when
- Command line arguments must use single hyphen for single letter options, and double hyphen for longer names.
- The ngrok agent now fails when there are keys in the config file it doesn't understand. Previously it ignored unknown options.
- Using the
--host-header rewriteoption puts the original host header value into the
X-Forwarded-Hostheader field instead of the
X-Original-Hostheader in an attempt to be more standard.
socks5_proxyconfiguration options into a single option (
Changes in 2.3
If asked to forward to port 443, ngrok will now automatically forward HTTPS traffic instead of HTTP. This change would only affect you if you previously ran a server accepting unencrypted HTTP on port 443. To workaround this, you may specify an explicit http URL if you need the old behavior:
ngrok http http://localhost:443.
If run under sudo, the ngrok agent previously consulted the sudo-ing user's home directory file when looking for its default configuration file. It now consults the home directory of the assumed user. To workaround this, you may specify an explicit configuration file location with the
Changes in 2.2
The ngrok agent API no longer accepts
application/x-www-form-urlencoded request bodies. In practice, this only affects the
/api/requests/http/:id endpoint because posting to the
/api/tunnels endpoint with this type of request body previously caused ngrok to crash.
This change was made to help protect against maliciously crafted web pages that could cause a user to inadvertently interact with their local ngrok API.
Changes in 2.1
Behavior changes for
tls tunnels defined in the configuration file or started via the API that do not have a
Given this example tunnel configuration, behavior will change in the following ways.
Starts a tunnel using the name of the tunnel as the subdomain resulting in the URL
Starts a tunnel with a random subdomain, for example a URL like
How to keep the old behavior
domain property with the same name as the tunnel: