The ssh manual pages states the following:
-L [bind_address:]port:host:hostport Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side. -R [bind_address:]port:host:hostport Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
Aren't those two descriptions mixed up?
When I use
ssh -L it takes a remote port and "binds" (or forwards) it to a port on my local machine so that I can talk to some remote machine by talking to myself (localhost:port).
When I use
ssh -R it takes a port from a computer on my local network and "binds" (or forwards) it to a port on the remote machine (ssh server). Then when I'm on the server, I can talk to the port of a computer on the same network as the computer that I just connected from using (localhost:port).
This also explains the use of L for local and R for remote (wherever the port is being bound to).
(I don't know if i'm using the word "bind" correctly. That't what I'm trying to imply with the quotes)