--- title: "Generating Tunneling URL" url: https://docs.catalyst.zoho.com/en/tools/tunneling/implementation/generate-tunneling-url/ description: "Catalyst Tunneling allows you to debug Non-HTTPS and Integration functions by routing function calls to your local system using a rever-proxy provider's tunneling URL." last_updated: 2026-08-17T12:16:04Z service: All Services type: general --- # Generating Tunneling URL [Tunneling URL](https://docs.catalyst.zoho.com/en/tools/tunneling/key-concepts/) is required, because you need it to associate with your tunneling-enabled functions when you enable Tunneling. When your tunneled functions are triggered, the calls made to this URL will be routed to your local system. Depending on the reverse proxy provider you have chosen, the steps to generate the Tunneling URL varies. For the purposes of this help documentation we will be covering the steps to generate Tunneling URL with some of the most popular and commonly used reverse proxy providers. ### Ngrok * Log in to **Ngrok** through their CLI and configure two-factor authentication (2FA) for Ngrok in your system. > **Note:** Steps on establishing 2FA for Ngrok is provided in their [official help documentation](https://ngrok.com/docs/getting-started/). * To generate a *Tunneling URL*, use the following CLI command: ```sh ngrok http tunnel-port-number ``` ![catalyst_tunneling_ngrok_tunneling_URL](https://catalyst-docs-development.zohostratus.in/images/catalyst-extension/tunneling/catalyst_tunneling_ngrok_tunneling_URL.webp) * Copy the Tunneling URL generated by Ngrok, and proceed to the Catalyst console to tunnel the functions using Catalyst. > **Note:** * The `tunnel-port-number` you use here will need to be the same you use to launch your function shell. * You can find more information on Ngrok in their [official help documentation](https://ngrok.com/docs/getting-started/). ### Localtunnel * Install **Localtunnel** in your local system by executing the following terminal command: ```sh npm install -g localtunnel ``` ![catalyst_tunneling_localtunnel_install](https://catalyst-docs-development.zohostratus.in/images/catalyst-extension/tunneling/catalyst_tunneling_localtunnel_install.webp) * Execute the command below in the Localtunnel CLI to generate a tunneling URL ```sh lt --port tunnel-port-number ``` ![catalyst_tunneling_localtunnel_tunneling_URL](https://catalyst-docs-development.zohostratus.in/images/catalyst-extension/tunneling/catalyst_tunneling_localtunnel_tunneling_URL.webp) * Copy the Tunneling URL generated by Localtunnel, and proceed to the Catalyst console to tunnel the functions using Catalyst. > **Note:** * The `tunnel-port-number` you use here will need to be the same you use to launch your function shell. * You can find more information on Localtunnel in their [official help documentation](https://localtunnel.github.io/www/). ### Serveo * Execute the following command in a new terminal window to generate a tunneling URL using **Serveo**. ```sh ssh -R 80:localhost:tunnel-port_number serveo.net ``` ![catalyst_tunneling_serveo_tunneling_URL](https://catalyst-docs-development.zohostratus.in/images/catalyst-extension/tunneling/catalyst_tunneling_serveo_tunneling_URL.webp) * Copy the Tunneling URL generated by Serveo, and proceed to the Catalyst console to tunnel the functions using Catalyst. > **Note:** * The `tunnel-port-number` you use here will need to be the same you use to launch your function shell. * You do not require any additional CLI commands to generate Tunneling URL using Serveo. You can find more information on Serveo in their [official help documentation](https://serveo.net/). ### Localhost.run * Execute the following command in a new terminal window to generate a tunneling URL using **Localhost.run** ```sh ssh -R 80:localhost:tunnel-port-number nokey@localhost.run ``` ![catalyst_tunneling_localhostrun_tunneling_URL](https://catalyst-docs-development.zohostratus.in/images/catalyst-extension/tunneling/catalyst_tunneling_localhostrun_tunneling_URL.webp) * Copy the Tunneling URL generated by Localhost.run and proceed to tunnel the functions using Catalyst. > **Note:** * The `tunnel-port-number` you use here will need to be the same you use to launch your function shell. * You do not require any additional CLI commands to generate Tunneling URL using Localhost.run. You can find more information on Localhost.run in their [official help documentation](https://localhost.run/). ### Pagekite * Execute the following commands in a new terminal window to generate a tunneling URL using **Pagekite**. ```sh ssh -R 80:localhost:tunnel-port-number nokey@localhost.run ``` ![catalyst_tunneling_pagekite_install](https://catalyst-docs-development.zohostratus.in/images/catalyst-extension/tunneling/catalyst_tunneling_pagekite_install.webp) This command will send a curl request to the Pagekite website and will ask you to download the `pagekite.py` file in your local system. > **Note:** You can use Pagekite to reverse proxy functions of any programming stack. However, to use Pagekite services, you need to ensure you have **Python 3** installed in your system. * Now execute the following command in your Pagekite terminal to generate the Tunneling URL ```sh python3 pagekite.py tunnel-port-number yourname.pagekite.me ``` ![catalyst_tunneling_pagekite_tunneling_URL](https://catalyst-docs-development.zohostratus.in/images/catalyst-extension/tunneling/catalyst_tunneling_pagekite_tunneling_URL.webp) Ensure that you provide a unique name for your Tunneling URL when you are prompted to do so. > **Note:** * The `tunnel-port-number` you use here will need to be the same you use to launch your function shell. * You can find more information on Pagekite in there [official help documentation](https://pagekite.net/).