Termius + Tailscale: SSH from your phone without open ports

Keep SSH off the public internet and reach the server through Tailscale. Instead of exposing port 22, use a virtual private network (VPN) like Tailscale (based on WireGuard) and access your machines from your phone with Termius on iOS or Android as the SSH client.

On cellular data, this setup can leave SSH sessions hanging after a silent drop.

The fix is in Termius, not Tailscale: adjust the session settings so mobile-network drops are detected and handled faster.

Termius configuration to prevent disconnects

Cell tower changes and carrier NAT cleanup can leave SSH sessions hanging.

To prevent this, you should enable Experimental Connection Process and reduce the Keepalive Interval to 500. Follow these steps in the app:

  1. Go to Profile, then Settings.
  2. Under the Sessions section, enable the Experimental Connection Process option.
  3. Look for Keepalive Interval and change it to a lower value than the default. A value of 500 worked in testing.
  4. Make sure to leave the Expect answer available option enabled. This makes Termius send keepalive probes and detect missing server responses sooner.

Why does this solution work?

By configuring a more frequent keepalive, Termius sends control packets more often. That keeps carrier NAT state active longer and detects a non-responsive server sooner. The Experimental Connection Process also improves connection setup through VPNs and mobile networks.

What this configuration cannot do

This does not recover a fully broken SSH session. What it does is mitigate micro-disconnects so Termius over Tailscale hangs less often during short cellular interruptions.

Published date:

Let's connect

Find me on GitHub and LinkedIn