SOCKS vs. SSH local port forwarding
What's the difference between using SOCKS (SSH -D) and local port forwarding (SSH -L)
Solution 1:
With -L
, SSH forwards all connections to a fixed destination. When you connect to the local port, all data you send goes straight to the remote host which you specified in -L
. This, obviously, requires you to know which host you want to forward connections to.
With -D
, the destination is "dynamic" – after connecting to the local port, you have to use the SOCKS proxy protocol to further connect to whatever remote host you want. This basically makes SSH a real proxy server, suitable for such activities as web browsing, where you cannot know in advance the destination.
Run ssh -D 1080
, for example, and configure Firefox to use a SOCKS 5 proxy at localhost:1080
.