How to Reach a Private Service with SSH Port Forwarding on iPhone
Local forwarding listens on your device and sends traffic through the server to a target; remote forwarding makes the server listen and sends traffic back to your device. Configure forwards on the server, start and stop them from its Port Forwards screen. Dynamic (SOCKS) is not supported.
The problem
A database, an admin dashboard or an internal API is listening only on localhost or a private network. That’s correct for security, but it means your phone can’t reach it. Opening the port to the internet for five minutes to take a look is a bad trade. On a laptop you’d run ssh -L; on a phone it’s hard to know where to start.
How it works
An SSH tunnel carries a connection through a server you can already log in to.
- Local forward (like
ssh -L): the phone listens on a port and sends connections through the server to a target address the server can reach. Example: listen on127.0.0.1:5433, target127.0.0.1:5432on the server, so a Postgres client on the phone connects to the server’s Postgres. - Remote forward (like
ssh -R): the server listens on a port and sends connections back to a target the phone can reach. - Dynamic (SOCKS) forwarding appears in the UI but isn’t supported.
Each forward has a bound host/port and a target host/port, plus an optional note.
Set one up
- Edit the server → Port Forwarding → New forward.
- Choose Local or Remote and fill in the ports.
- Save, then open the server’s Port Forwards screen (long-press the server or use the card menu).
- Start the tunnel and point your client at the bound address.
- Stop it when you’re done.
Tips and cautions
- Bind to 127.0.0.1 (the default) so only this device can use the tunnel.
- Stop tunnels you’re not using. A forward is a door.
- A remote forward exposes something from your phone to the server. Be sure that’s what you want.
- Tunnels need the app running. iOS can suspend background apps, which can stop a tunnel.
- Premium.
FAQ
Is SOCKS (dynamic) forwarding supported? No. It appears in the list but isn’t available yet. Local and remote forwards work.
Where do I configure forwards? In the server editor under Port Forwarding. Start and stop them from the server’s Port Forwards screen (long-press the server or use the card menu).
Is it free? Port forwarding is a Premium feature.