Port Forwarding
Local, remote, and dynamic SOCKS forwarding — same flags as the ssh CLI, with a touch UI and persistent rules.
📥 Local Forwarding (-L)
Forward a port on your phone to a port on the remote (or anywhere reachable from the remote).
Equivalent CLI: ssh -L 8080:localhost:80 user@host
- Useful when the remote service is firewalled or only listens on
127.0.0.1. - Type the local port, the remote target host:port, and TabSSH does the rest.
- Open
http://localhost:8080in your phone's browser to hit the forwarded service.
📤 Remote Forwarding (-R)
The reverse: a port on the remote forwards back to your phone (or anywhere reachable from it).
Equivalent CLI: ssh -R 8080:localhost:8080 user@host
- Useful for exposing a development server you're running on your phone to a remote debugging audience.
- Note: most servers require
GatewayPorts yesinsshd_configto bind a -R forward to non-loopback. - Bind-to-all-interfaces option available where supported.
🌐 Dynamic / SOCKS (-D)
Turns the SSH session into a SOCKS5 proxy.
Equivalent CLI: ssh -D 1080 user@host
- Point Firefox / Chrome / a SOCKS-aware app at
localhost:1080and all its traffic tunnels through your remote. - Effectively a personal jump-host VPN.
💾 Saved Rules per Host
- Each connection profile keeps its own list of port-forwarding rules.
- Rules auto-apply when you connect.
- Toggle individual rules on/off without deleting them.
- Edit rules from the connection edit screen, or per-tab from the toolbar menu while connected.
🪂 Background Tunnels (Wave 3.3)
- Port forwards no longer need a live terminal session — you can have just the forwards running, no shell.
- Useful for "always-on" SOCKS proxies or persistent local-port mappings.
- Foreground-service notification keeps the tunnel up; tap to stop.
🪜 Jump Hosts / ProxyJump
- TabSSH supports cascading jump hosts (the SSH
-J/ProxyJumpdirective). - Configure on a connection profile: jump host hostname, port, username, auth.
- The session opens by tunneling through the jump host first, transparently.
- Imported
~/.ssh/configentries withProxyJumpare honoured automatically.