Skip to content

SSH port forwarding

Assume you are on the client computer and want to ssh into server.example.com

Terminal window
$ ssh -L 10080:foo.example.com:80 server.example.com

Once you have connected, leave the ssh login window running.

At this point, on client, there is a port open on localhost:10080

If you access it, it will connect to foo.example.com from server.example.com.

Instead of binding to localhost on the client, you can specify the interface or listen to all using * e.g.

Terminal window
$ ssh -L '*:10080foo.example.com:80' server.example.com

Assume you are on the client computer and will ssh into server.example.com.

Terminal window
$ ssh -R 10080:foo.example.com:80 server.example.com

Once you have connected, leave the ssh login window running.

At this point, on the server, there is a port open on localhost:10080

If you access it (from the server), it will connect to foo.example.com, from the client.

Instead of binding to localhost on the server, you can specify the interface or listen to all using * e.g.

Terminal window
client$ ssh -R '*:10080:foo.example.com:80' server.example.com

Specifying the interface only works if the GatewayPorts option is enabled.