Local vs Remote vs Dynamic in SSH tunneling
Local -- Forward local port to remote host.
Remote -- Forward remote port to local host.
Dynamic -- Use SOCKS.
Use local if you need to if you have a service running on a machine that can be reached from the remote machine, and you want to access it directly from the local machine. After setting up the tunneling you will be able to access the service using your local host IP (127.0.0.1)
Use remote if you have a service that can be reached from the local machine, and you need to make it available to the remote machine. It opens the listening socket on the machine you have used SSH to log into.
Dynamic is like local, but on the client side it behaves like a SOCKS proxy. Use it if you need to connect with a software that expects SOCKS forwarding.