Skip to main content

How to Enable Reverse Tunnel for UniFi Controllers Without Public IP

Rakesh M avatar
Written by Rakesh M
Updated over 3 weeks ago

If your UniFi controller, Cloud Key, UDM, or UDR doesn't have a public IP address—due to CGNAT, Starlink, or network restrictions—you can't use traditional external portal solutions. Spotipo's reverse tunnel creates an SSH connection from your controller to Spotipo's servers, enabling captive portal functionality without requiring a public IP or port forwarding.

This guide walks you through enabling SSH access on your UniFi device, installing autoSSH for persistent connections, generating SSH keys, and establishing the reverse tunnel. The setup requires command-line access and takes approximately 15-20 minutes.

What you'll accomplish:

  • Enable SSH access on your UniFi controller/Cloud Key/UDM/UDR

  • Install autoSSH for maintaining persistent reverse tunnel connections

  • Generate and share SSH keys with Spotipo support

  • Establish reverse tunnel connection using your assigned username

What you'll need:

  • UniFi controller without public IP (Cloud Key, UDM, UDR, or software controller)

  • SSH terminal access (Terminal on Mac/Linux, PuTTY on Windows)

  • Root access to your UniFi device

  • Active Spotipo account with support contact

When to use reverse tunnel: This solution is essential for controllers behind CGNAT (carrier-grade NAT), Starlink connections, corporate networks without public IPs, or any situation where port forwarding isn't possible.

Enable SSH access on your UDM/CK/UDR

If you are using a software controller, ie UniFi controller running on a server, skip this.

Make sure to login to your device by going to https://

, and navigate to Console Settings.

Enable Remote Access and SSH, use the Change Password option to set a password.

SSH into your controller

Using your favorite SSH terminal, log in to the UniFi controller. If you got a CK/UDM/UDR etc use root as username and the password you set above.

Install autoSSH

We will use autossh to keep the connection active, install the same using command below after logging into the controller.

apt install autossh

Generate SSH Keys

Check if you already have a set of SSH keys under /root/.ssh/id_rsa.pub if not create them using the command

ssh-keygen

And then copy the content of /root/.ssh/id_rsa.pub and send to us via chat. In return we will assign a USERNAME to you.

Proceed to the next steps once you have a USERNAME from support.

Login to the server again and execute below command, replace

with actual username

bash <(curl -L -s https://spotipo.sh/install.sh) <USERNAME>

You should be seeing something like below

Now you should be able to use

.spotipo.cloud as the Hostname for your server in the Settings tab.

Your Reverse Tunnel Is Now Active

Once you've executed the installation script with your assigned username, your reverse tunnel is established. You can now use <USERNAME>.spotipo.cloud as the hostname when configuring your UniFi controller in Spotipo's settings instead of requiring a public IP address.

What to do next:

  • Configure your UniFi controller in Spotipo using your <USERNAME>.spotipo.cloud hostname

  • Verify the tunnel connection is active and stable

  • Complete your captive portal setup following the standard UniFi configuration guide

Reverse tunnel advantages:

  • Works with CGNAT, Starlink, and other scenarios without public IPs

  • No port forwarding or router configuration required

  • autoSSH automatically reconnects if the connection drops

  • More reliable than DDNS for dynamic IP situations

Important notes:

  • Keep your SSH credentials secure; they provide root access to your controller

  • The reverse tunnel must remain active for the captive portal to function

  • Software controllers (not Cloud Key/UDM) can skip the SSH enablement step

Troubleshooting reverse tunnel:

  • Installation script fails: Ensure you're logged in as root with proper permissions

  • Connection drops frequently: autoSSH should auto-reconnect; check network stability

  • Can't SSH into device: Verify SSH is enabled in Console Settings and the password is correct

  • Username not working: Confirm you received the username from Spotipo support before running install script

Still having trouble enabling reverse tunnel? Contact Spotipo support via live chat or email us at [email protected], we'll assign your username and help troubleshoot the SSH tunnel setup.

Did this answer your question?