Reach a localhost web UI with port forwarding

Plenty of what runs on a server has a web UI — a dashboard, a notebook, an admin panel — bound to localhost so it isn’t exposed to the network. dotMux gets you to it without exposing anything: a local port forward carried over the SSH connection you already have open.

Set one up

Forwards belong to the host record, so you configure them once, in the host editor. Each one is a local port, a remote host, and a remote port:

  1. Pick a local port above 1024 (iOS can’t bind privileged ports).
  2. Name the target as the server sees it — localhost means the server itself, and any name the server can resolve works, so you can reach a database box the server can see but your phone can’t.
  3. Save. The forward is established right after the next successful connect, and torn down when you disconnect.

The listener binds 127.0.0.1 only — device-local. Nothing else on your network can reach it, even on shared Wi-Fi.

The Forwards panel

Open Forwards from the session menu to see every forward on this connection and its state: connecting, active, or failed with the reason. Tap the Open button on an active row and dotMux opens http://127.0.0.1:port in an in-app browser — your dashboard, one tap from the terminal, no VPN and no port exposed.

A remote service dashboard open in dotMux's in-app browser on iPhone, served over an SSH port forward bound to 127.0.0.1.
A port can only be held once. If another connection already has that local port, the row says so and names the connection holding it — with a jump straight to it — instead of coming up "active" over a tunnel that quietly goes nowhere.

Reverse and dynamic (SOCKS) forwarding aren’t supported; this is the local leg only.

See also: SSH client for iPad

Still stuck? Email info@dotmux.app, or search every topic.